/wrfv2_fire/phys/module_surface_driver.F
FORTRAN Legacy | 4662 lines | 3098 code | 345 blank | 1219 comment | 27 complexity | 2cebd156424e3b0f3c100847e14ccdf1 MD5 | raw file
Possible License(s): AGPL-1.0
Large files files are truncated, but you can click here to view the full file
- !WRF:MEDIATION_LAYER:PHYSICS
- !
- MODULE module_surface_driver
- CONTAINS
- SUBROUTINE surface_driver( &
- & acgrdflx,achfx,aclhf &
- & ,acsnom,acsnow,akhs,akms,albedo,br,canwat &
- & ,chklowq,dt,dx,dz8w,dzs,glw &
- & ,grdflx,gsw,swdown,gz1oz0,hfx,ht,ifsnow,isfflx &
- & ,fractional_seaice,seaice_albedo_opt,tice2tsk_if2cold &
- & ,isltyp,itimestep,julian_in,ivgtyp,lowlyr,mavail,rmol &
- & ,num_soil_layers,p8w,pblh,pi_phy,pshltr,psih &
- #if (NMM_CORE==1)
- & ,psim,p_phy,q10,q2,qfx,taux,tauy,qsfc,qshltr,qz0 &
- #else
- & ,psim,p_phy,q10,q2,qfx,qsfc,qshltr,qz0 &
- #endif
- & ,raincv,rho,sfcevp,sfcexc,sfcrunoff &
- & ,smois,smstav,smstot,snoalb,snow,snowc,snowh,stepbl &
- & ,smcrel &
- & ,th10,th2,thz0,th_phy,tmn,tshltr,tsk,tslb &
- & ,tyr,tyra,tdly,tlag,lagday,nyear,nday,tmn_update,yr &
- & ,t_phy,u10,udrunoff,ust,uz0,u_frame,u_phy,v10,vegfra &
- & ,vz0,v_frame,v_phy,warm_rain,wspd,xice,xland,z,znt,zs &
- #if (NMM_CORE==1)
- & ,xicem,isice,iswater,ct,tke_pbl,sfenth &
- #else
- & ,xicem,isice,iswater,ct,tke_pbl &
- #endif
- & ,albbck,embck,lh,sh2o,shdmax,shdmin,z0 &
- & ,flqc,flhc,psfc,sst,sstsk,dtw,sst_update,sst_skin &
- & ,scm_force_skintemp,scm_force_flux,t2,emiss &
- & ,sf_sfclay_physics,sf_surface_physics,ra_lw_physics &
- & ,mosaic_lu,mosaic_soil &
- & ,landusef,soilctop,soilcbot,ra,rs,nlcat,nscat,vegf_px & ! PX-LSM
- & ,snowncv, anal_interval, lai, pxlsm_smois_init & ! PX-LSM
- & ,pxlsm_soil_nudge & ! PX-LSM
- & ,idveg, iopt_crs, iopt_btr, iopt_run, iopt_sfc, iopt_frz, iopt_inf &
- & ,iopt_rad ,iopt_alb ,iopt_snf ,iopt_tbot, iopt_stc &
- & ,isnowxy ,tvxy ,tgxy ,canicexy &
- & ,canliqxy ,eahxy ,tahxy ,cmxy ,chxy &
- & ,fwetxy ,sneqvoxy ,alboldxy ,qsnowxy ,wslakexy ,zwtxy ,waxy &
- & ,wtxy ,tsnoxy ,zsnsoxy ,snicexy ,snliqxy ,lfmassxy ,rtmassxy &
- & ,stmassxy ,woodxy ,stblcpxy ,fastcpxy ,xsaixy &
- & ,tradxy ,tsxy ,neexy ,gppxy ,nppxy ,fvegxy ,qinxy &
- & ,runsfxy ,runsbxy ,ecanxy ,edirxy ,etranxy ,fsaxy ,firaxy &
- & ,aparxy ,psnxy ,savxy ,sagxy &
- & ,fsnoxy &
- & ,t2mvxy ,t2mbxy ,chstarxy ,rssunxy ,rsshaxy ,bgapxy ,wgapxy &
- & ,gapxy ,tgvxy ,tgbxy ,q2mvxy ,q2mbxy ,chvxy ,chbxy &
- #if ( EM_CORE==1)
- & ,ch,tsq,qsq,cov & ! MYNN
- #endif
- ! Optional urban
- & ,slope_rad,topo_shading,shadowmask & !I solar
- & ,swnorm,slope,slp_azi & !I solar
- & ,declin,solcon,coszen,hrang,xlat_urb2d & !I solar/urban
- & ,num_roof_layers, num_wall_layers & !I urban
- & ,num_road_layers, dzr, dzb, dzg & !I urban
- & ,tr_urb2d,tb_urb2d,tg_urb2d,tc_urb2d,qc_urb2d & !H urban
- & ,uc_urb2d & !H urban
- & ,xxxr_urb2d,xxxb_urb2d,xxxg_urb2d,xxxc_urb2d & !H urban
- & ,trl_urb3d,tbl_urb3d,tgl_urb3d & !H urban
- & ,sh_urb2d,lh_urb2d,g_urb2d,rn_urb2d,ts_urb2d & !H urban
- & ,frc_urb2d, utype_urb2d & !H urban
- & ,cmr_sfcdif,chr_sfcdif,cmc_sfcdif,chc_sfcdif &
- !-----SSiB LSM (fds 06/2010)---------------------------------------------------
- & ,alswvisdir, alswvisdif, alswnirdir, alswnirdif & ! ssib
- & ,swvisdir, swvisdif, swnirdir, swnirdif & ! ssib
- & ,ssib_br ,ssib_fm ,ssib_fh ,ssib_cm ,ssibxdd & ! ssib
- & ,ssib_lhf ,ssib_shf ,ssib_ghf ,ssib_egs ,ssib_eci & ! ssib
- & ,ssib_ect ,ssib_egi ,ssib_egt ,ssib_sdn ,ssib_sup & ! ssib
- & ,ssib_ldn ,ssib_lup ,ssib_wat ,ssib_shc ,ssib_shg & ! ssib
- & ,ssib_lai ,ssib_vcf ,ssib_z00 ,ssib_veg & ! ssib
- & ,ISNOW ,SWE ,SNOWDEN ,SNOWDEPTH ,TKAIR & ! ssib-snow
- & ,DZO1 ,WO1 ,TSSN1 ,TSSNO1 ,BWO1 ,BTO1 & ! ssib-snow
- & ,CTO1 ,FIO1 ,FLO1 ,BIO1 ,BLO1 ,HO1 & ! ssib-snow
- & ,DZO2 ,WO2 ,TSSN2 ,TSSNO2 ,BWO2 ,BTO2 & ! ssib-snow
- & ,CTO2 ,FIO2 ,FLO2 ,BIO2 ,BLO2 ,HO2 & ! ssib-snow
- & ,DZO3 ,WO3 ,TSSN3 ,TSSNO3 ,BWO3 ,BTO3 & ! ssib-snow
- & ,CTO3 ,FIO3 ,FLO3 ,BIO3 ,BLO3 ,HO3 & ! ssib-snow
- & ,DZO4 ,WO4 ,TSSN4 ,TSSNO4 ,BWO4 ,BTO4 & ! ssib-snow
- & ,CTO4 ,FIO4 ,FLO4 ,BIO4 ,BLO4 ,HO4 & ! ssib-snow
- & ,ra_sw_physics & ! ssib
- !------------------------------------------------------------------------------
- & , ids,ide,jds,jde,kds,kde &
- & , ims,ime,jms,jme,kms,kme &
- & , i_start,i_end,j_start,j_end,kts,kte,num_tiles &
- ! Optional moisture tracers
- & ,qv_curr, qc_curr, qr_curr &
- & ,qi_curr, qs_curr, qg_curr &
- ! Optional moisture tracer flags
- & ,f_qv,f_qc,f_qr &
- & ,f_qi,f_qs,f_qg &
- ! Other optionals (more or less em specific)
- & ,capg,hol,mol &
- & ,rainncv,rainshv,rainbl,regime,thc &
- & ,qsg,qvg,qcg,soilt1,tsnav &
- & ,smfr3d,keepfr3dflag,dew &
- ! Other optionals (more or less nmm specific)
- & ,potevp,snopcx,soiltb,sr &
- ! Optional observation PX LSM surface nudging
- & ,t2_ndg_old, q2_ndg_old, t2_ndg_new, q2_ndg_new &
- & ,sn_ndg_old, sn_ndg_new &
- & ,t2obs, q2obs &
- ! OPTIONAL, Required by TEMF surface layer 1/7/09 WA
- & ,hd_temf,te_temf,fCor,exch_temf,wm_temf &
- ! Required by ideal SCM surface layer 1/6/10 WA
- & ,hfx_force,lh_force,tsk_force &
- & ,hfx_force_tend,lh_force_tend,tsk_force_tend &
- ! Optional observation nudging
- & ,uratx,vratx,tratx &
- ! Optional simple oml model
- & ,omlcall,oml_hml0,oml_gamma &
- & ,tml,t0ml,hml,h0ml,huml,hvml,f,tmoml &
- & ,ustm,ck,cka,cd,cda,isftcflx,iz0tlnd &
- & ,isurban, mminlu &
- & ,snotime &
- & ,rdlai2d &
- & ,usemonalb &
- & ,noahres &
- ! Optional adaptive time step
- & ,bldt,curr_secs,adapt_step_flag,bldtacttime &
- ! Optional urban with BEP
- & ,sf_urban_physics,gmt,xlat,xlong,julday &
- & ,num_urban_layers & !multi-layer urban
- & ,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d & !multi-layer urban
- & ,tlev_urb3d,qlev_urb3d & !multi-layer urban
- & ,tw1lev_urb3d,tw2lev_urb3d & !multi-layer urban
- & ,tglev_urb3d,tflev_urb3d & !multi-layer urban
- & ,sf_ac_urb3d,lf_ac_urb3d,cm_ac_urb3d & !multi-layer urban
- & ,sfvent_urb3d,lfvent_urb3d & !multi-layer urban
- & ,sfwin1_urb3d,sfwin2_urb3d & !multi-layer urban
- & ,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d & !multi-layer urban
- & ,a_u_bep,a_v_bep,a_t_bep,a_q_bep &
- & ,b_u_bep,b_v_bep,b_t_bep,b_q_bep &
- & ,sf_bep,vl_bep &
- & ,a_e_bep,b_e_bep,dlg_bep &
- & ,dl_u_bep &
- & ,cldfra & !ssib
- ! Optional urban Bep end
- & )
-
- #if ( ! NMM_CORE == 1 )
- USE module_state_description, ONLY : SFCLAYSCHEME &
- ,SFCLAYREVSCHEME &
- ,MYJSFCSCHEME &
- ,QNSESFCSCHEME &
- ,GFSSFCSCHEME &
- ,PXSFCSCHEME &
- ,NOAHMPSCHEME &
- ,TEMFSFCSCHEME &
- ,IDEALSCMSFCSCHEME &
- ,SLABSCHEME &
- ,LSMSCHEME &
- ,RUCLSMSCHEME &
- ,PXLSMSCHEME &
- ,SSIBSCHEME & !ssib
- ,MYNNSFCSCHEME
- #else
- USE module_state_description, ONLY : SFCLAYSCHEME &
- ,SFCLAYREVSCHEME &
- ,MYJSFCSCHEME &
- ,QNSESFCSCHEME &
- ,GFSSFCSCHEME &
- ,PXSFCSCHEME &
- ,NOAHMPSCHEME &
- ,SLABSCHEME &
- ,LSMSCHEME &
- ,RUCLSMSCHEME &
- ,PXLSMSCHEME &
- ,TEMFSFCSCHEME &
- ,GFDLSFCSCHEME &
- ,SSIBSCHEME & ! ssib
- ,GFDLSLAB
- #endif
- USE module_model_constants
- ! *** add new modules of schemes here
- USE module_sf_sfclay
- USE module_sf_myjsfc
- USE module_sf_qnsesfc
- USE module_sf_gfs
- USE module_sf_noahdrv, only : lsm
- USE module_sf_noahmpdrv, only : noahmplsm
- USE module_sf_noah_seaice_drv
- USE module_sf_ssib ! ssib
- USE module_sf_ruclsm
- USE module_sf_pxsfclay
- USE module_sf_pxlsm
- USE module_sf_temfsfclay
- USE module_sf_sfclayrev
- USE module_sf_noah_seaice_drv
- #if ( EM_CORE==1)
- USE module_sf_mynn
- USE module_sf_oml
- USE module_sf_idealscmsfclay
- #endif
- USE module_sf_scmflux
- USE module_sf_scmskintemp
- #if ( NMM_CORE == 1 )
- USE module_sf_gfdl
- #endif
- USE module_sf_slab
- !
- USE module_sf_sfcdiags
- USE module_sf_sfcdiags_ruclsm
- USE module_sf_sstskin
- USE module_sf_tmnupdate
- !
- ! This driver calls subroutines for the surface parameterizations.
- !
- ! surface layer: (between surface and pbl)
- ! 1. sfclay
- ! 2. myjsfc
- ! 7. Pleim surface layer
- ! 5. MYNN surface layer
- ! surface: ground temp/lsm scheme:
- ! 1. slab
- ! 2. Noah LSM
- ! 7. Pleim-Xiu LSM
- ! 11. Revised sfclay (option 1)
- !
- ! surface: ground temp/lsm scheme for urban:
- ! 2. BEP
- !
- ! ocean mixed layer model
- ! omlcall = 1
- !------------------------------------------------------------------
- IMPLICIT NONE
- !======================================================================
- ! Grid structure in physics part of WRF
- !----------------------------------------------------------------------
- ! The horizontal velocities used in the physics are unstaggered
- ! relative to temperature/moisture variables. All predicted
- ! variables are carried at half levels except w, which is at full
- ! levels. Some arrays with names (*8w) are at w (full) levels.
- !
- !----------------------------------------------------------------------
- ! In WRF, kms (smallest number) is the bottom level and kme (largest
- ! number) is the top level. In your scheme, if 1 is at the top level,
- ! then you have to reverse the order in the k direction.
- !
- ! kme - half level (no data at this level)
- ! kme ----- full level
- ! kme-1 - half level
- ! kme-1 ----- full level
- ! .
- ! kms+2 - half level
- ! kms+2 ----- full level
- ! kms+1 - half level
- ! kms+1 ----- full level
- ! kms - half level
- ! kms ----- full level
- !
- !======================================================================
- ! Definitions
- !-----------
- ! Theta potential temperature (K)
- ! Qv water vapor mixing ratio (kg/kg)
- ! Qc cloud water mixing ratio (kg/kg)
- ! Qr rain water mixing ratio (kg/kg)
- ! Qi cloud ice mixing ratio (kg/kg)
- ! Qs snow mixing ratio (kg/kg)
- !-----------------------------------------------------------------
- !-- itimestep number of time steps
- !-- GLW downward long wave flux at ground surface (W/m^2)
- !-- GSW net short wave flux at ground surface (W/m^2)
- !-- SWDOWN downward short wave flux at ground surface (W/m^2)
- !-- EMISS surface emissivity (between 0 and 1)
- !-- TSK surface temperature (K)
- !-- TMN soil temperature at lower boundary (K)
- !-- TYR annual mean surface temperature of previous year (K)
- !-- TYRA accumulated surface temperature in the current year (K)
- !-- TLAG mean surface temperature of previous 140 days (K)
- !-- TDLY accumulated daily mean surface temperature of the current day (K)
- !-- XLAND land mask (1 for land, 2 for water)
- !-- ZNT time-varying roughness length (m)
- !-- Z0 background roughness length (m)
- !-- MAVAIL surface moisture availability (between 0 and 1)
- !-- UST u* in similarity theory (m/s)
- !-- MOL T* (similarity theory) (K)
- !-- HOL PBL height over Monin-Obukhov length
- !-- PBLH PBL height (m)
- !-- CAPG heat capacity for soil (J/K/m^3)
- !-- THC thermal inertia (Cal/cm/K/s^0.5)
- !-- SNOWC flag indicating snow coverage (1 for snow cover)
- !-- HFX net upward heat flux at the surface (W/m^2)
- !-- QFX net upward moisture flux at the surface (kg/m^2/s)
- !-- TAUX RHO*U**2 for ocean coupling
- !-- TAUY RHO*U**2 for ocean coupling
- !-- LH net upward latent heat flux at surface (W/m^2)
- !-- REGIME flag indicating PBL regime (stable, unstable, etc.)
- !-- tke_pbl turbulence kinetic energy from PBL schemes (m^2/s^2)
- !-- akhs sfc exchange coefficient of heat/moisture from MYJ
- !-- akms sfc exchange coefficient of momentum from MYJ
- !-- thz0 potential temperature at roughness length (K)
- !-- uz0 u wind component at roughness length (m/s)
- !-- vz0 v wind component at roughness length (m/s)
- !-- qsfc specific humidity at lower boundary (kg/kg)
- !-- uratx ratio of u over u10 (Added for obs-nudging)
- !-- vratx ratio of v over v10 (Added for obs-nudging)
- !-- tratx ratio of t over th2 (Added for obs-nudging)
- !-- u10 diagnostic 10-m u component from surface layer
- !-- v10 diagnostic 10-m v component from surface layer
- !-- th2 diagnostic 2-m theta from surface layer and lsm
- !-- t2 diagnostic 2-m temperature from surface layer and lsm
- !-- q2 diagnostic 2-m mixing ratio from surface layer and lsm
- !-- tshltr diagnostic 2-m theta from MYJ
- !-- th10 diagnostic 10-m theta from MYJ
- !-- qshltr diagnostic 2-m specific humidity from MYJ
- !-- q10 diagnostic 10-m specific humidity from MYJ
- !-- lowlyr index of lowest model layer above ground
- !-- rr dry air density (kg/m^3)
- !-- u_phy u-velocity interpolated to theta points (m/s)
- !-- v_phy v-velocity interpolated to theta points (m/s)
- !-- th_phy potential temperature (K)
- !-- moist moisture array (4D - last index is species) (kg/kg)
- !-- p_phy pressure (Pa)
- !-- pi_phy exner function (dimensionless)
- !-- pshltr diagnostic shelter (2m) pressure from MYJ (Pa)
- !-- p8w pressure at full levels (Pa)
- !-- t_phy temperature (K)
- !-- dz8w dz between full levels (m)
- !-- z height above sea level (m)
- !-- DX horizontal space interval (m)
- !-- DT time step (second)
- !-- PSFC pressure at the surface (Pa)
- !-- SST sea-surface temperature (K)
- !-- SSTSK skin sea-surface temperature (K)
- !-- DTW warm layer temp diff (K)
- !-- TSLB
- !-- ZS
- !-- DZS
- !-- num_soil_layers number of soil layer
- !-- IFSNOW ifsnow=1 for snow-cover effects
- !-- omlcall whether to call simple ocean mixed layer model from slab (1 = use oml)
- !-- oml_hml0 initial mixed layer depth (if real-data not available, default 50 m)
- !-- oml_gamma lapse rate below mixed layer in ocean (default 0.14 K m-1)
- !-- ck enthalpy exchange coeff at 10 meters
- !-- cd momentum exchange coeff at 10 meters
- !-- cka enthalpy exchange coeff at the lowest model level
- !-- cda momentum exchange coeff at the lowest model level
- !!!!!!!!!!!!!!
- !
- !
- !-- LANDUSEF Landuse fraction ! P-X LSM
- !-- SOILCTOP Top soil fraction ! P-X LSM
- !-- SOILCBOT Bottom soil fraction ! P-X LSM
- !-- RA Aerodynamic resistence ! P-X LSM
- !-- RS Stomatal resistence ! P-X LSM
- !-- NLCAT Number of landuse categories ! P-X LSM
- !-- NSCAT Number of soil categories ! P-X LSM
- !-- ch - drag coefficient for heat/moisture ! MYNN LSM
- !
- !-- ids start index for i in domain
- !-- ide end index for i in domain
- !-- jds start index for j in domain
- !-- jde end index for j in domain
- !-- kds start index for k in domain
- !-- kde end index for k in domain
- !-- ims start index for i in memory
- !-- ime end index for i in memory
- !-- jms start index for j in memory
- !-- jme end index for j in memory
- !-- kms start index for k in memory
- !-- kme end index for k in memory
- !-- its start index for i in tile
- !-- ite end index for i in tile
- !-- jts start index for j in tile
- !-- jte end index for j in tile
- !-- kts start index for k in tile
- !-- kte end index for k in tile
- !
- !******************************************************************
- !------------------------------------------------------------------
- INTEGER, INTENT(IN) :: &
- & ids,ide,jds,jde,kds,kde &
- & ,ims,ime,jms,jme,kms,kme &
- & ,kts,kte,num_tiles
- INTEGER, INTENT(IN):: FRACTIONAL_SEAICE
- INTEGER, INTENT(IN):: SEAICE_ALBEDO_OPT
- INTEGER, INTENT(IN):: NLCAT, mosaic_lu, mosaic_soil
- INTEGER, INTENT(IN):: NSCAT
- INTEGER, INTENT(IN) :: sf_sfclay_physics, sf_surface_physics, &
- sf_urban_physics,ra_lw_physics,sst_update, &
- ra_sw_physics
- INTEGER, INTENT(IN),OPTIONAL :: sst_skin, tmn_update, &
- scm_force_skintemp, scm_force_flux
- INTEGER, DIMENSION(num_tiles), INTENT(IN) :: &
- & i_start,i_end,j_start,j_end
- INTEGER, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ):: ISLTYP
- INTEGER, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: IVGTYP
- INTEGER, DIMENSION( ims:ime , jms:jme ), INTENT(IN ):: LOWLYR
- INTEGER, INTENT(IN ):: IFSNOW
- INTEGER, INTENT(IN ):: ISFFLX
- INTEGER, INTENT(IN ):: ITIMESTEP
- INTEGER, INTENT(IN ):: NUM_SOIL_LAYERS
- REAL, INTENT(IN ),OPTIONAL :: JULIAN_in
- INTEGER, INTENT(IN ):: LAGDAY
- INTEGER, INTENT(IN ):: STEPBL
- INTEGER, INTENT(IN ):: ISICE
- INTEGER, INTENT(IN ):: ISWATER
- INTEGER, INTENT(IN ), OPTIONAL :: ISURBAN
- CHARACTER(LEN=*), INTENT(IN ), OPTIONAL :: MMINLU
- LOGICAL, INTENT(IN ):: WARM_RAIN
- LOGICAL, INTENT(IN):: tice2tsk_if2cold
- INTEGER, INTENT(INOUT ),OPTIONAL :: NYEAR
- REAL , INTENT(INOUT ),OPTIONAL :: NDAY
- INTEGER, INTENT(IN ),OPTIONAL :: YR
- REAL , INTENT(IN ):: U_FRAME
- REAL , INTENT(IN ):: V_FRAME
- #if (NMM_CORE==1)
- real , intent(IN ):: SFENTH
- #endif
- REAL, DIMENSION( ims:ime , 1:num_soil_layers, jms:jme ), INTENT(INOUT):: SMOIS
- REAL, DIMENSION( ims:ime , 1:num_soil_layers, jms:jme ), INTENT(INOUT):: TSLB
- REAL, DIMENSION( ims:ime , 1:num_soil_layers, jms:jme ), INTENT(OUT) :: SMCREL
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(IN ):: GLW
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: GSW,SWDOWN
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(IN ):: HT
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(IN ):: RAINCV
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: SST
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ),OPTIONAL :: SSTSK
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ),OPTIONAL :: DTW
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: TMN
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ),OPTIONAL :: TYR
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ),OPTIONAL :: TYRA
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ),OPTIONAL :: TDLY
- REAL, DIMENSION( ims:ime , 1:lagday , jms:jme ), INTENT(INOUT ),OPTIONAL :: TLAG
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: VEGFRA
- !------fds (06/2010)--------------------------
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: XICE
- !---------------------------------------------
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: XLAND
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: XICEM
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: MAVAIL
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: SNOALB
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: ACSNOW
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SNOTIME
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: AKHS
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: AKMS
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: ALBEDO
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: CANWAT
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: GRDFLX
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: HFX
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: RMOL
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: PBLH
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: Q2
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: QFX
- #if (NMM_CORE==1)
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(OUT):: TAUX
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(OUT):: TAUY
- #endif
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: QSFC
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: QZ0
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: SFCRUNOFF
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: SMSTAV
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: SMSTOT
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: SNOW
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: SNOWC
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: SNOWH
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: TH2
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: THZ0
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: TSK
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: UDRUNOFF
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: UST
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: UZ0
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: VZ0
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: WSPD
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT):: ZNT
- !-----fds (06/2010)---------------------------------------------
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_LHF ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_SHF ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_GHF ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_EGS ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_ECI ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_ECT ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_EGI ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_EGT ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_SDN ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_SUP ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_LDN ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_LUP ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_WAT ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_SHC ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_SHG ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_LAI ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_VCF ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_Z00 ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: SSIB_VEG ! SSiB output
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: ALSWVISDIR! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: ALSWVISDIF! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: ALSWNIRDIR! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(OUT):: ALSWNIRDIF! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(IN):: SWVISDIR! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(IN):: SWVISDIF! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(IN):: SWNIRDIR! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(IN):: SWNIRDIF! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SSiB_BR ! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SSiB_FM ! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SSiB_FH ! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SSiB_CM ! SSiB
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SSiBXDD ! SSiB
- INTEGER, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: ISNOW ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SWE ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SNOWDEN ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: SNOWDEPTH ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TKAIR ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: DZO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: WO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSN1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSNO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BWO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BTO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: CTO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FIO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FLO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BIO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BLO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: HO1 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: DZO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: WO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSN2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSNO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BWO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BTO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: CTO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FIO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FLO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BIO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BLO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: HO2 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: DZO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: WO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSN3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSNO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BWO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BTO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: CTO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FIO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FLO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BIO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BLO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: HO3 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: DZO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: WO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSN4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: TSSNO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BWO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BTO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: CTO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FIO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: FLO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BIO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: BLO4 ! ssib-snow
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: HO4 ! ssib-snow
- !----------------------------------------------------------
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: BR
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: CHKLOWQ
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: GZ1OZ0
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: PSHLTR
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: PSIH
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: PSIM
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: Q10
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: QSHLTR
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: TH10
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: TSHLTR
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: U10
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: V10
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT):: PSFC
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT):: ACSNOM
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT):: SFCEVP
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT),OPTIONAL :: ACHFX
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT),OPTIONAL :: ACLHF
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(INOUT),OPTIONAL :: ACGRDFLX
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT):: SFCEXC
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT):: FLHC
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT):: FLQC
- REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: CT
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: DZ8W
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: P8W
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: PI_PHY
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: P_PHY
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: RHO
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: TH_PHY
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: T_PHY
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: U_PHY
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: V_PHY
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ):: Z
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) :: TKE_PBL
- REAL, DIMENSION(1:num_soil_layers), INTENT(IN):: DZS
- REAL, DIMENSION(1:num_soil_layers), INTENT(IN):: ZS
- REAL, INTENT(IN ):: DT
- REAL, INTENT(IN ):: DX
- REAL, INTENT(IN ),OPTIONAL :: bldt
- REAL, INTENT(IN ),OPTIONAL :: curr_secs
- LOGICAL, INTENT(IN ),OPTIONAL :: adapt_step_flag
- REAL, INTENT(INOUT),OPTIONAL :: bldtacttime
- ! arguments for NCAR surface physics
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ):: ALBBCK ! INOUT needed for NMM
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ):: EMBCK
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ):: LH
- REAL, DIMENSION( ims:ime , 1:num_soil_layers, jms:jme ), INTENT(INOUT):: SH2O
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(IN ):: SHDMAX
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(IN ):: SHDMIN
- REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ):: Z0
- INTEGER, OPTIONAL, INTENT(IN) :: idveg, iopt_crs, iopt_btr, iopt_run, iopt_sfc, iopt_frz, iopt_inf, iopt_rad, iopt_alb, iopt_snf, iopt_tbot, iopt_stc
- INTEGER, OPTIONAL, DIMENSION(ims:ime , jms:jme), INTENT(INOUT) :: ISNOWXY
- REAL, OPTIONAL, DIMENSION(ims:ime ,-2:num_soil_layers, jms:jme), INTENT(INOUT) :: zsnsoxy
- REAL, OPTIONAL, DIMENSION(ims:ime ,-2:0, jms:jme), INTENT(INOUT) :: tsnoxy, snicexy, snliqxy
- REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme), INTENT(INOUT) :: tvxy, tgxy, canicexy, canliqxy, eahxy, tahxy, cmxy, chxy, &
- fwetxy, sneqvoxy, alboldxy, qsnowxy, wslakexy, zwtxy, waxy, wtxy, lfmassxy, rtmassxy, stmassxy, woodxy, stblcpxy, fastcpxy, &
- xsaixy, tradxy, tsxy, neexy, gppxy, nppxy, fvegxy, qinxy, runsfxy, runsbxy, ecanxy, edirxy, etranxy, fsaxy, firaxy, &
- aparxy, psnxy, savxy, sagxy, fsnoxy, q2mvxy, q2mbxy
- REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme), INTENT(INOUT) :: t2mvxy ,t2mbxy ,chstarxy, rssunxy, rsshaxy, bgapxy,wgapxy,gapxy , &
- tgvxy ,tgbxy, chvxy, chbxy
- ! Variables for multi-layer UCM
- REAL, OPTIONAL, INTENT(IN ) :: GMT
- INTEGER, OPTIONAL, INTENT(IN ) :: JULDAY
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN ) ::XLAT, XLONG
- INTEGER, INTENT(IN ):: NUM_URBAN_LAYERS
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: trb_urb4d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw1_urb4d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw2_urb4d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tgb_urb4d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tlev_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: qlev_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw1lev_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw2lev_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tglev_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tflev_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: lf_ac_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: sf_ac_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: cm_ac_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: sfvent_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: lfvent_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: sfwin1_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: sfwin2_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: sfw1_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: sfw2_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: sfr_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: sfg_urb3d
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::a_u_bep !Implicit momemtum component X-direction
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::a_v_bep !Implicit momemtum component Y-direction
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::a_t_bep !Implicit component pot. temperature
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::a_e_bep !Implicit component TKE
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::a_q_bep !Implicit component TKE
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::b_u_bep !Explicit momentum component X-direction
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::b_v_bep !Explicit momentum component Y-direction
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::b_t_bep !Explicit component pot. temperature
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::b_e_bep !Explicit component TKE
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::b_q_bep !Explicit component TKE
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::vl_bep !Fraction air volume in grid cell
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::dlg_bep !Height above ground
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::sf_bep !Fraction air at the face of grid cell
- REAL, OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) ::dl_u_bep !Length scale
- ! Optional
- !
- ! arguments for Ocean Mixed Layer Model
- REAL, DIMENSION( ims:ime , jms:jme ), OPTIONAL, INTENT(INOUT ):: TML, T0ML, HML, H0ML, HUML, HVML
- REAL, DIMENSION( ims:ime , jms:jme ), OPTIONAL, INTENT(IN ):: F, TMOML
- REAL, DIMENSION( ims:ime , jms:jme ), OPTIONAL, INTENT(OUT ):: CK, CKA, CD, CDA, USTM
- #if ( EM_CORE==1)
- REAL, DIMENSION( ims:ime , jms:jme ), &
- &OPTIONAL, INTENT(INOUT ):: ch
-
- REAL, DIMENSION( ims:ime , kms:kme, jms:jme ), &
- &OPTIONAL, INTENT(IN ):: tsq,qsq,cov
- #endif
- INTEGER, OPTIONAL, INTENT(IN ):: slope_rad, topo_shading
- INTEGER, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(IN):: shadowmask
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: swnorm
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(IN):: slope,slp_azi
- INTEGER, OPTIONAL, INTENT(IN ):: ISFTCFLX,IZ0TLND
- INTEGER, OPTIONAL, INTENT(IN ):: OMLCALL
- REAL , OPTIONAL, INTENT(IN ):: OML_HML0
- REAL , OPTIONAL, INTENT(IN ):: OML_GAMMA
- !
- ! Observation nudging
- !
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(OUT):: uratx !Added for obs-nudging
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(OUT):: vratx !Added for obs-nudging
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(OUT):: tratx !Added for obs-nudging
- !
- ! PX LSM Surface Grid Analysis nudging
- !
- INTEGER, OPTIONAL, INTENT(IN) :: pxlsm_smois_init, pxlsm_soil_nudge, ANAL_INTERVAL
- REAL, DIMENSION( ims:ime, NLCAT, jms:jme ) , OPTIONAL, INTENT(INOUT):: LANDUSEF
- REAL, DIMENSION( ims:ime, NSCAT, jms:jme ) , OPTIONAL, INTENT(INOUT):: SOILCTOP, SOILCBOT
- REAL, DIMENSION( ims:ime , jms:jme ), OPTIONAL, INTENT(INOUT):: VEGF_PX
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: RA
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: RS
- REAL, DIMENSION( ims:ime, jms:jme ) , OPTIONAL, INTENT(INOUT):: LAI
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(OUT):: T2OBS
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(OUT):: Q2OBS
- REAL, DIMENSION( ims:ime, jms:jme ), &
- OPTIONAL, INTENT(INOUT) :: t2_ndg_old, &
- q2_ndg_old, &
- t2_ndg_new, &
- q2_ndg_new, &
- sn_ndg_old, &
- sn_ndg_new
- !
- !
- ! Flags relating to the optional tendency arrays declared above
- ! Models that carry the optional tendencies will provdide the
- ! optional arguments at compile time; these flags all the model
- ! to determine at run-time whether a particular tracer is in
- ! use or not.
- !
- LOGICAL, INTENT(IN), OPTIONAL :: &
- f_qv &
- ,f_qc &
- ,f_qr &
- ,f_qi &
- ,f_qs &
- ,f_qg
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), &
- OPTIONAL, INTENT(INOUT) :: &
- ! optional moisture tracers
- ! 2 time levels; if only one then use CURR
- qv_curr, qc_curr, qr_curr &
- ,qi_curr, qs_curr, qg_curr
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(IN) :: snowncv
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: capg
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: emiss
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: hol
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: mol
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: regime
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(IN ):: rainncv
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(IN ):: rainshv
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: RAINBL
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: t2
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(IN ):: thc
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: qsg
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: qvg
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: qcg
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: dew
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: soilt1
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: tsnav
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: potevp ! NMM LSM
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: snopcx ! NMM LSM
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: soiltb ! NMM LSM
- REAL, DIMENSION( ims:ime, jms:jme ), OPTIONAL, INTENT(INOUT):: sr ! NMM and RUC LSM
- REAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), OPTIONAL, INTENT(INOUT):: smfr3d
- REAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), OPTIONAL, INTENT(INOUT):: keepfr3dflag
- REAL, DIMENSION( ims:ime, jms:jme ) , INTENT(OUT), OPTIONAL :: NOAHRES
- ! Variables for TEMF surface layer
- REAL,OPTIONAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT) :: te_temf
- REAL,OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: hd_temf, exch_temf, wm_temf
- REAL,OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN ) :: fCor
- ! Variables for ideal SCM surface layer
- REAL,OPTIONAL, INTENT(INOUT) :: hfx_force,lh_force,tsk_force
- REAL,OPTIONAL, INTENT(IN ) :: hfx_force_tend,lh_force_tend,tsk_force_tend
- ! LOCAL VAR
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ) ::v_phytmp
- REAL, DIMENSION( ims:ime, kms:kme, jms:jme ) ::u_phytmp
- REAL, DIMENSION( ims:ime, jms:jme ) :: ZOL
- REAL, DIMENSION( ims:ime, jms:jme ) :: &
- QGH, &
- CHS, &
- CPM, &
- CHS2, &
- CQS2
- ! SSIB local variables
- REAL ZDIFF
- !
- REAL :: DTMIN,DTBL
- !
- INTEGER :: i,J,K,NK,jj,ij
- INTEGER :: gfdl_ntsflg
- LOGICAL :: radiation, myj, frpcpn, isisfc
- LOGICAL, INTENT(in), OPTIONAL :: rdlai2d
- LOGICAL, INTENT(in), OPTIONAL :: usemonalb
- REAL :: total_depth,mid_point_depth
- REAL :: tconst,tprior,tnew,yrday,deltat
- REAL :: SWSAVE
- REAL, DIMENSION( ims:ime, jms:jme ) :: GSWSAVE
- !-------------------------------------------------
- ! urban related variables are added to declaration
- !-------------------------------------------------
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: CMR_SFCDIF
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: CHR_SFCDIF
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: CMC_SFCDIF
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: CHC_SFCDIF
- REAL, OPTIONAL, INTENT(IN) :: DECLIN, SOLCON
- REAL, OPTIONAL , DIMENSION( ims:ime, jms:jme ), INTENT(IN) :: COSZEN
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN) :: HRANG
- REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN) :: XLAT_URB2D !urban
- INTEGER, INTENT(IN) :: num_roof_layers !urban
- INTEGER, INTENT(IN) :: num_wall_layers …
Large files files are truncated, but you can click here to view the full file