- Timestamp:
- Mar 14, 2011, 12:11:24 PM (14 years ago)
- Location:
- trunk/mesoscale
- Files:
-
- 2 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mesoscale/LMD_LES_MARS/LMD_LES_MARS_install
r34 r94 35 35 ln -sf ../modif_mars/module_em.F . 36 36 ln -sf ../modif_mars/module_diffusion_em.F . 37 ln -sf ../modif_mars/Makefile_dyn_em Makefile 37 38 cd .. 38 39 … … 50 51 ln -sf ../modif_mars/module_lmd_driver.F . 51 52 ln -sf ../modif_mars/module_physics_addtendc.F . 53 ln -sf ../modif_mars/module_physics_init.F . 52 54 cd .. 53 55 -
trunk/mesoscale/LMD_LES_MARS/modif_mars/Makefile
r17 r94 7 7 8 8 MODULES = \ 9 module_bl_ysu.o \10 module_bl_mrf.o \11 module_bl_gfs.o \12 module_bl_myjpbl.o \13 module_bl_acm.o \14 module_cu_g3.o \15 module_cu_kf.o \16 module_cu_bmj.o \17 module_cu_kfeta.o \18 module_cu_gd.o \19 module_cu_sas.o \20 module_mp_kessler.o \21 module_mp_lin.o \22 module_mp_wsm3.o \23 module_mp_wsm5.o \24 module_mp_wsm6.o \25 module_mp_etanew.o \26 module_mp_thompson.o \27 module_mp_gsfcgce.o \28 module_mp_morr_two_moment.o \29 module_ra_sw.o \30 module_ra_gsfcsw.o \31 module_ra_rrtm.o \32 module_ra_cam_support.o \33 module_ra_cam.o \34 module_ra_gfdleta.o \35 module_ra_hs.o \36 module_sf_sfclay.o \37 module_sf_gfs.o \38 module_sf_slab.o \39 module_sf_noahdrv.o \40 module_sf_noahlsm.o \41 module_sf_urban.o \42 module_sf_lsm_nmm.o \43 module_sf_pxlsm.o \44 module_sf_ruclsm.o \45 module_sf_sfcdiags.o \46 module_sf_myjsfc.o \47 module_sf_pxsfclay.o \48 9 module_physics_addtendc.o \ 49 10 module_physics_init.o \ 50 module_gfs_machine.o \51 module_gfs_funcphys.o \52 module_gfs_physcons.o \53 module_progtm.o \54 module_pbl_driver.o \55 module_data_gocart_dust.o \56 module_cumulus_driver.o \57 module_microphysics_driver.o \58 module_microphysics_zero_out.o \59 module_mixactivate.o \60 module_radiation_driver.o \61 module_surface_driver.o \62 module_diagnostics.o \63 module_fdda_psufddagd.o \64 module_fddagd_driver.o \65 module_fddaobs_rtfdda.o \66 module_fddaobs_driver.o \67 11 module_lmd_driver.o 68 12 … … 94 38 # DEPENDENCIES : only dependencies after this line (don't remove the word DEPENDENCIES) 95 39 96 module_bl_myjpbl.o: ../share/module_model_constants.o97 98 module_bl_gfs.o: module_gfs_machine.o \99 module_gfs_physcons.o100 101 module_cu_bmj.o: ../share/module_model_constants.o102 103 module_cu_kf.o: ../frame/module_wrf_error.o104 105 module_cu_kfeta.o: ../frame/module_wrf_error.o106 107 module_cu_gd.o:108 109 module_gfs_physcons.o: module_gfs_machine.o110 111 module_gfs_funcphys.o: module_gfs_machine.o \112 module_gfs_physcons.o113 114 module_cu_sas.o: module_gfs_machine.o \115 module_gfs_funcphys.o \116 module_gfs_physcons.o117 118 module_ra_gfdleta.o: ../frame/module_dm.o119 120 module_ra_rrtm.o: ../frame/module_wrf_error.o \121 ../frame/module_dm.o122 123 module_ra_cam_support.o: ../frame/module_wrf_error.o124 125 module_ra_cam.o: module_ra_cam_support.o \126 ../frame/module_wrf_error.o127 128 module_mp_lin.o : ../frame/module_wrf_error.o129 130 module_sf_lsm_nmm.o: ../share/module_model_constants.o \131 ../share/module_MPP.o132 133 module_sf_myjsfc.o: ../share/module_model_constants.o134 135 module_sf_gfs.o: module_gfs_machine.o \136 module_gfs_funcphys.o \137 module_gfs_physcons.o \138 module_progtm.o139 140 module_sf_noahdrv.o: module_sf_noahlsm.o module_data_gocart_dust.o \141 module_sf_urban.o142 143 module_sf_noahlsm.o: ../share/module_model_constants.o144 145 module_sf_ruclsm.o: ../frame/module_wrf_error.o module_data_gocart_dust.o146 147 module_sf_pxlsm.o: ../share/module_model_constants.o148 149 40 module_physics_addtendc.o: \ 150 module_cu_kf.o \151 module_cu_kfeta.o \152 41 ../frame/module_state_description.o \ 153 42 ../frame/module_configure.o 154 43 155 44 module_physics_init.o : \ 156 module_ra_rrtm.o \157 module_ra_cam.o \158 module_ra_cam_support.o \159 module_ra_sw.o \160 module_ra_gsfcsw.o \161 module_ra_gfdleta.o \162 module_ra_hs.o \163 module_sf_sfclay.o \164 module_sf_slab.o \165 module_sf_myjsfc.o \166 module_sf_pxsfclay.o \167 module_sf_noahlsm.o \168 module_sf_noahdrv.o \169 module_sf_ruclsm.o \170 module_sf_pxlsm.o \171 module_bl_ysu.o \172 module_bl_mrf.o \173 module_bl_gfs.o \174 module_bl_acm.o \175 module_bl_myjpbl.o \176 module_cu_kf.o \177 module_cu_g3.o \178 module_cu_kfeta.o \179 module_cu_bmj.o \180 module_cu_gd.o \181 module_cu_sas.o \182 module_mp_wsm3.o \183 module_mp_wsm5.o \184 module_mp_wsm6.o \185 module_mp_etanew.o \186 module_fdda_psufddagd.o \187 module_fddaobs_rtfdda.o \188 module_mp_thompson.o \189 module_mp_gsfcgce.o \190 module_mp_morr_two_moment.o \191 45 ../frame/module_state_description.o \ 192 46 ../frame/module_configure.o \ 193 47 ../frame/module_wrf_error.o \ 194 48 ../frame/module_dm.o \ 195 ../share/module_model_constants.o \196 module_sf_lsm_nmm.o197 198 module_microphysics_driver.o: \199 module_mixactivate.o \200 module_mp_kessler.o module_mp_lin.o \201 module_mp_wsm3.o module_mp_wsm5.o \202 module_mp_wsm6.o module_mp_etanew.o \203 module_mp_thompson.o \204 module_mp_gsfcgce.o \205 module_mp_morr_two_moment.o \206 ../frame/module_driver_constants.o \207 ../frame/module_state_description.o \208 ../frame/module_wrf_error.o \209 ../frame/module_configure.o \210 49 ../share/module_model_constants.o 211 212 module_cumulus_driver.o: \213 module_cu_kf.o \214 module_cu_g3.o \215 module_cu_kfeta.o \216 module_cu_bmj.o \217 module_cu_gd.o \218 module_cu_sas.o \219 ../frame/module_state_description.o \220 ../frame/module_configure.o \221 ../share/module_model_constants.o222 223 module_pbl_driver.o: \224 module_bl_myjpbl.o \225 module_bl_acm.o \226 module_bl_ysu.o \227 module_bl_mrf.o \228 module_bl_gfs.o \229 ../frame/module_state_description.o \230 ../frame/module_configure.o \231 ../share/module_model_constants.o232 233 module_data_gocart_dust.o:234 235 module_mixactivate.o: \236 module_radiation_driver.o237 238 module_radiation_driver.o: \239 module_ra_sw.o \240 module_ra_gsfcsw.o \241 module_ra_rrtm.o \242 module_ra_cam.o \243 module_ra_gfdleta.o \244 module_ra_hs.o \245 ../frame/module_driver_constants.o \246 ../frame/module_state_description.o \247 ../frame/module_dm.o \248 ../frame/module_domain.o \249 ../frame/module_wrf_error.o \250 ../frame/module_configure.o \251 ../share/module_bc.o \252 ../share/module_model_constants.o253 254 module_surface_driver.o: \255 module_sf_sfclay.o \256 module_sf_slab.o \257 module_sf_myjsfc.o \258 module_sf_pxsfclay.o \259 module_sf_gfs.o \260 module_sf_noahdrv.o \261 module_sf_ruclsm.o \262 module_sf_pxlsm.o \263 module_sf_sfcdiags.o \264 ../frame/module_state_description.o \265 ../frame/module_configure.o \266 ../share/module_model_constants.o \267 module_sf_lsm_nmm.o268 269 module_diagnostics.o: ../frame/module_dm.o270 271 272 module_mixactivate.o: \273 module_radiation_driver.o274 275 module_fddagd_driver.o: \276 ../frame/module_state_description.o \277 ../frame/module_configure.o \278 ../share/module_model_constants.o \279 module_fdda_psufddagd.o280 281 module_fddaobs_driver.o: \282 ../frame/module_domain.o \283 ../share/module_bc.o \284 ../share/module_model_constants.o \285 module_fddaobs_rtfdda.o286 50 287 51 module_lmd_driver.o: \ -
trunk/mesoscale/LMD_LES_MARS/modif_mars/module_first_rk_step_part1.F
r92 r94 32 32 USE module_domain, ONLY : domain 33 33 USE module_configure, ONLY : grid_config_rec_type, model_config_rec 34 USE module_radiation_driver, ONLY : pre_radiation_driver, radiation_driver 35 USE module_surface_driver, ONLY : surface_driver 36 USE module_cumulus_driver, ONLY : cumulus_driver 37 USE module_pbl_driver, ONLY : pbl_driver 38 USE module_fddagd_driver, ONLY : fddagd_driver 34 !!!!****MARS MARS 35 !!!!****MARS MARS 36 ! USE module_radiation_driver, ONLY : pre_radiation_driver, radiation_driver 37 ! USE module_surface_driver, ONLY : surface_driver 38 ! USE module_cumulus_driver, ONLY : cumulus_driver 39 ! USE module_pbl_driver, ONLY : pbl_driver 40 ! USE module_fddagd_driver, ONLY : fddagd_driver 39 41 USE module_em, ONLY : init_zero_tendency 40 42 !!MARS … … 172 174 BENCH_END(phy_prep_tim) 173 175 174 ! radiation 175 176 ! this driver is only needed to handle non-local shadowing effects 177 CALL pre_radiation_driver ( grid, config_flags & 178 & ,itimestep=grid%itimestep, ra_call_offset=grid%ra_call_offset & 179 & ,XLAT=grid%xlat, XLONG=grid%xlong, GMT=grid%gmt & 180 & ,julian=grid%julian, xtime=grid%xtime, RADT=grid%radt & 181 & ,STEPRA=grid%stepra & 182 & ,ht=grid%ht,dx=grid%dx,dy=grid%dy,sina=grid%sina,cosa=grid%cosa & 183 & ,shadowmask=shadowmask,slope_rad=config_flags%slope_rad & 184 & ,topo_shading=config_flags%topo_shading & 185 & ,shadlen=config_flags%shadlen,ht_shad=grid%ht_shad,ht_loc=ht_loc & 186 & ,ht_shad_bxs=grid%ht_shad_bxs, ht_shad_bxe=grid%ht_shad_bxe & 187 & ,ht_shad_bys=grid%ht_shad_bys, ht_shad_bye=grid%ht_shad_bye & 188 & ,nested=config_flags%nested, min_ptchsz=grid%min_ptchsz & 189 & ,spec_bdy_width=config_flags%spec_bdy_width & 190 ! indexes 191 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 192 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 193 & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 194 & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 195 & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 196 & ,kts=k_start, kte=min(k_end,kde-1) & 197 & ,num_tiles=grid%num_tiles ) 198 199 CALL wrf_debug ( 200 , ' call radiation_driver' ) 200 BENCH_START(rad_driver_tim) 201 202 CALL radiation_driver( & 203 & ACFRCV=grid%acfrcv ,ACFRST=grid%acfrst ,ALBEDO=grid%albedo & 204 & ,CFRACH=grid%cfrach ,CFRACL=grid%cfracl ,CFRACM=grid%cfracm & 205 & ,CUPPT=grid%cuppt ,CZMEAN=grid%czmean ,DT=grid%dt & 206 & ,DZ8W=dz8w ,EMISS=grid%emiss ,GLW=grid%glw & 207 & ,GMT=grid%gmt ,GSW=grid%gsw ,HBOT=grid%hbot & 208 & ,HTOP=grid%htop ,HBOTR=grid%hbotr ,HTOPR=grid%htopr & 209 & ,ICLOUD=config_flags%icloud & 210 & ,ITIMESTEP=grid%itimestep,JULDAY=grid%julday , JULIAN=grid%julian & 211 & ,JULYR=grid%julyr ,LW_PHYSICS=config_flags%ra_lw_physics & 212 & ,NCFRCV=grid%ncfrcv ,NCFRST=grid%ncfrst ,NPHS=1 & 213 & ,P8W=p8w ,P=p_phy ,PI=pi_phy & 214 & ,RADT=grid%radt ,RA_CALL_OFFSET=grid%ra_call_offset & 215 & ,RHO=rho ,RLWTOA=grid%rlwtoa & 216 & ,RSWTOA=grid%rswtoa ,RTHRATEN=grid%rthraten & 217 & ,RTHRATENLW=grid%rthratenlw ,RTHRATENSW=grid%rthratensw & 218 & ,SNOW=grid%snow ,STEPRA=grid%stepra ,SWDOWN=grid%swdown & 219 & ,SWDOWNC=grid%swdownc ,SW_PHYSICS=config_flags%ra_sw_physics & 220 & ,T8W=t8w ,T=t_phy ,TAUCLDC=grid%taucldc & 221 & ,TAUCLDI=grid%taucldi ,TSK=grid%tsk ,VEGFRA=grid%vegfra & 222 & ,WARM_RAIN=grid%warm_rain ,XICE=grid%xice ,XLAND=grid%xland & 223 & ,XLAT=grid%xlat ,XLONG=grid%xlong & 224 !Optional urban 225 & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & 226 & ,OMG_URB2D=grid%omg_urb2d & 227 ! 228 & ,Z=grid%z & 229 & ,LEVSIZ=grid%levsiz, N_OZMIXM=num_ozmixm & 230 & ,N_AEROSOLC=num_aerosolc & 231 & ,PAERLEV=grid%paerlev & 232 & ,CAM_ABS_DIM1=grid%cam_abs_dim1, CAM_ABS_DIM2=grid%cam_abs_dim2 & 233 & ,CAM_ABS_FREQ_S=grid%cam_abs_freq_s & 234 & ,XTIME=grid%xtime & 235 ,CURR_SECS=curr_secs, ADAPT_STEP_FLAG=adapt_step_flag & 236 ! indexes 237 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 238 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 239 & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 240 & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 241 & ,kts=k_start, kte=min(k_end,kde-1) & 242 & ,num_tiles=grid%num_tiles & 243 ! Optional 244 & , CLDFRA=grid%cldfra & 245 & , PB=grid%pb & 246 & , F_ICE_PHY=grid%f_ice_phy,F_RAIN_PHY=grid%f_rain_phy & 247 & , QV=moist(ims,kms,jms,P_QV), F_QV=F_QV & 248 & , QC=moist(ims,kms,jms,P_QC), F_QC=F_QC & 249 & , QR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 250 & , QI=moist(ims,kms,jms,P_QI), F_QI=F_QI & 251 & , QS=moist(ims,kms,jms,P_QS), F_QS=F_QS & 252 & , QG=moist(ims,kms,jms,P_QG), F_QG=F_QG & 253 & , QNDROP=scalar(ims,kms,jms,P_QNDROP), F_QNDROP=F_QNDROP & 254 #ifdef ACFLUX 255 & ,ACSWUPT=acswupt ,ACSWUPTC=acswuptc & 256 & ,ACSWDNT=acswdnt ,ACSWDNTC=acswdntc & 257 & ,ACSWUPB=acswupb ,ACSWUPBC=acswupbc & 258 & ,ACSWDNB=acswdnb ,ACSWDNBC=acswdnbc & 259 & ,ACLWUPT=aclwupt ,ACLWUPTC=aclwuptc & 260 & ,ACLWDNT=aclwdnt ,ACLWDNTC=aclwdntc & 261 & ,ACLWUPB=aclwupb ,ACLWUPBC=aclwupbc & 262 & ,ACLWDNB=aclwdnb ,ACLWDNBC=aclwdnbc & 263 & ,SWUPT=swupt ,SWUPTC=swuptc & 264 & ,SWDNT=swdnt ,SWDNTC=swdntc & 265 & ,SWUPB=swupb ,SWUPBC=swupbc & 266 & ,SWDNB=swdnb ,SWDNBC=swdnbc & 267 & ,LWUPT=lwupt ,LWUPTC=lwuptc & 268 & ,LWDNT=lwdnt ,LWDNTC=lwdntc & 269 & ,LWUPB=lwupb ,LWUPBC=lwupbc & 270 & ,LWDNB=lwdnb ,LWDNBC=lwdnbc & 271 #endif 272 & ,LWCF=grid%lwcf & 273 & ,SWCF=grid%swcf & 274 & ,OLR=grid%olr & 275 & ,OZMIXM=grid%ozmixm, PIN=grid%pin & 276 & ,M_PS_1=grid%m_ps_1, M_PS_2=grid%m_ps_2, AEROSOLC_1=grid%aerosolc_1 & 277 & ,AEROSOLC_2=grid%aerosolc_2, M_HYBI0=grid%m_hybi & 278 & ,ABSTOT=grid%abstot, ABSNXT=grid%absnxt, EMSTOT=grid%emstot & 279 #ifdef WRF_CHEM 280 & ,CU_RAD_FEEDBACK=config_flags%cu_rad_feedback & 281 & ,AER_RA_FEEDBACK=config_flags%aer_ra_feedback & 282 & ,QC_ADJUST=grid%GD_CLOUD_B , QI_ADJUST=grid%GD_CLOUD2_B & 283 & ,PM2_5_DRY=grid%pm2_5_dry, PM2_5_WATER=grid%pm2_5_water & 284 & ,PM2_5_DRY_EC=grid%pm2_5_dry_ec & 285 & ,TAUAER300=grid%tauaer1, TAUAER400=grid%tauaer2 & ! jcb 286 & ,TAUAER600=grid%tauaer3, TAUAER999=grid%tauaer4 & ! jcb 287 & ,GAER300=grid%gaer1, GAER400=grid%gaer2, GAER600=grid%gaer3, GAER999=grid%gaer4 & ! jcb 288 & ,WAER300=grid%waer1, WAER400=grid%waer2, WAER600=grid%waer3, WAER999=grid%waer4 & ! jcb 289 #endif 290 & ,slope_rad=config_flags%slope_rad,topo_shading=config_flags%topo_shading & 291 & ,shadowmask=shadowmask,ht=grid%ht,dx=grid%dx,dy=grid%dy,sina=grid%sina,cosa=grid%cosa ) 292 293 BENCH_END(rad_driver_tim) 294 295 !********* Surface driver 296 ! surface 297 298 BENCH_START(surf_driver_tim) 299 300 !----------------------------------------------------------------- 301 ! urban related variable are added to arguments of surface_driver 302 !----------------------------------------------------------------- 303 num_roof_layers = grid%num_soil_layers !urban 304 num_wall_layers = grid%num_soil_layers !urban 305 num_road_layers = grid%num_soil_layers !urban 306 CALL nl_get_iswater(grid%id, iswater) 307 308 CALL wrf_debug ( 200 , ' call surface_driver' ) 309 310 CALL surface_driver( & 311 & ACSNOM=grid%acsnom ,ACSNOW=grid%acsnow ,AKHS=grid%akhs & 312 & ,AKMS=grid%akms ,ALBBCK=grid%albbck ,ALBEDO=grid%albedo & 313 & ,EMBCK=grid%embck & 314 & ,BR=br ,CANWAT=grid%canwat ,CHKLOWQ=chklowq & 315 & ,CT=grid%ct ,DT=grid%dt ,DX=grid%dx & 316 & ,DZ8W=dz8w ,DZS=grid%dzs ,FLHC=grid%flhc & 317 & ,FLQC=grid%flqc ,GLW=grid%glw ,GRDFLX=grid%grdflx & 318 & ,GSW=grid%gsw ,SWDOWN=grid%swdown ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx & 319 & ,HT=grid%ht ,IFSNOW=config_flags%ifsnow ,ISFFLX=config_flags%isfflx & 320 & ,ISLTYP=grid%isltyp ,ITIMESTEP=grid%itimestep & 321 & ,IVGTYP=grid%ivgtyp ,LH=grid%lh ,LOWLYR=grid%lowlyr & 322 & ,MAVAIL=grid%mavail ,NUM_SOIL_LAYERS=config_flags%num_soil_layers & 323 & ,P8W=p8w ,PBLH=grid%pblh ,PI_PHY=pi_phy & 324 & ,PSFC=grid%psfc ,PSHLTR=grid%pshltr ,PSIH=psih & 325 & ,BLDT=grid%bldt ,CURR_SECS=curr_secs, ADAPT_STEP_FLAG=adapt_step_flag & 326 & ,PSIM=psim ,P_PHY=p_phy ,Q10=grid%q10 & 327 & ,Q2=grid%q2 ,QFX=grid%qfx ,QSFC=grid%qsfc & 328 & ,QSHLTR=grid%qshltr ,QZ0=grid%qz0 ,RAINCV=grid%raincv & 329 & ,RA_LW_PHYSICS=config_flags%ra_lw_physics ,RHO=rho & 330 & ,RMOL=grid%rmol ,SFCEVP=grid%sfcevp ,SFCEXC=grid%sfcexc & 331 & ,SFCRUNOFF=grid%sfcrunoff & 332 & ,SF_SFCLAY_PHYSICS=config_flags%sf_sfclay_physics & 333 & ,SF_SURFACE_PHYSICS=config_flags%sf_surface_physics ,SH2O=grid%sh2o & 334 & ,SHDMAX=grid%shdmax ,SHDMIN=grid%shdmin ,SMOIS=grid%smois & 335 & ,SMSTAV=grid%smstav ,SMSTOT=grid%smstot ,SNOALB=grid%snoalb & 336 & ,SNOW=grid%snow ,SNOWC=grid%snowc ,SNOWH=grid%snowh & 337 & ,SST=grid%sst ,SST_UPDATE=grid%sst_update & 338 & ,STEPBL=grid%stepbl ,TH10=grid%th10 ,TH2=grid%th2 & 339 & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 340 & ,TMN=grid%tmn ,TSHLTR=grid%tshltr ,TSK=grid%tsk & 341 & ,TSLB=grid%tslb ,T_PHY=t_phy ,U10=grid%u10 & 342 & ,URATX=grid%uratx ,VRATX=grid%vratx ,TRATX=grid%tratx & 343 & ,UDRUNOFF=grid%udrunoff ,UST=grid%ust ,UZ0=grid%uz0 & 344 & ,U_FRAME=grid%u_frame ,U_PHY=u_phy ,V10=grid%v10 & 345 & ,VEGFRA=grid%vegfra ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame & 346 & ,V_PHY=v_phy ,WARM_RAIN=grid%warm_rain & 347 & ,WSPD=wspd ,XICE=grid%xice ,XLAND=grid%xland & 348 & ,Z0=grid%z0 ,Z=grid%z ,ZNT=grid%znt & 349 & ,ZS=grid%zs ,XICEM=grid%xicem ,ISICE=grid%landuse_isice& 350 & ,USTM=grid%ustm ,CK=grid%ck ,CKA=grid%cka & 351 & ,CD=grid%cd ,CDA=grid%cda & 352 & ,ISFTCFLX=config_flags%isftcflx & 353 & ,OMLCALL=config_flags%omlcall ,OML_HML0=config_flags%oml_hml0 ,OML_GAMMA=config_flags%oml_gamma & 354 & ,TML=grid%tml, T0ML=grid%t0ml, HML=grid%hml, H0ML=grid%h0ml, HUML=grid%huml, HVML=grid%hvml, F=grid%f & 355 & ,ISWATER=iswater & 356 & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & !I urban 357 & ,OMG_URB2D=grid%omg_urb2d ,xlat_urb2d=grid%XLAT & !I urban 358 & ,NUM_ROOF_LAYERS=num_roof_layers & !I urban 359 & ,NUM_WALL_LAYERS=num_wall_layers & !I urban 360 & ,NUM_ROAD_LAYERS=num_road_layers & 361 & ,DZR=grid%dzr ,DZB=grid%dzb ,DZG=grid%dzg & !I urban 362 & ,TR_URB2D=grid%tr_urb2d ,TB_URB2D=grid%tb_urb2d & 363 & ,TG_URB2D=grid%tg_urb2d & !H urban 364 & ,TC_URB2D=grid%tc_urb2d ,QC_URB2D=grid%qc_urb2d & !H urban 365 & ,UC_URB2D=grid%uc_urb2d & !H urban 366 & ,XXXR_URB2D=grid%xxxr_urb2d & 367 & ,XXXB_URB2D=grid%xxxb_urb2d & !H urban 368 & ,XXXG_URB2D=grid%xxxg_urb2d & 369 & ,XXXC_URB2D=grid%xxxc_urb2d & !H urban 370 & ,TRL_URB3D=grid%trl_urb3d ,TBL_URB3D=grid%tbl_urb3d & !H urban 371 & ,TGL_URB3D=grid%tgl_urb3d & !H urban 372 & ,SH_URB2D=grid%sh_urb2d ,LH_URB2D=grid%lh_urb2d & 373 & ,G_URB2D=grid%g_urb2d & !H urban 374 & ,RN_URB2D=grid%rn_urb2d , TS_URB2D=grid%ts_urb2d & !H urban 375 & ,FRC_URB2D=grid%frc_urb2d & !H urban 376 & ,UTYPE_URB2D=grid%utype_urb2d & !H urban 377 & ,ucmcall=grid%ucmcall & !H urban 378 ! P-X LSM Variables 379 & ,LANDUSEF=grid%landusef, SOILCTOP=grid%soilctop & ! P-X LSM 380 & ,SOILCBOT=grid%soilcbot & ! P-X LSM 381 & ,RA=grid%ra, RS=grid%rs, LAI=grid%lai & ! P-X LSM 382 & ,NLCAT=grid%num_land_cat, NSCAT=grid%num_soil_cat & ! P-X LSM 383 & ,VEGF_PX=grid%vegf_px, SNOWNCV=grid%snowncv & ! P-X LSM 384 & ,ANAL_INTERVAL=config_flags%interval_seconds & ! P-X LSM 385 & ,PXLSM_SMOIS_INIT=config_flags%pxlsm_smois_init & ! P-X LSM 386 & ,PXLSM_SOIL_NUDGE=config_flags%grid_fdda & ! P-X LSM 387 ! Optional PX LSM nudging 388 & ,t2_ndg_old=fdda2d(ims,1,jms,P_t2_ndg_old) & 389 & ,q2_ndg_old=fdda2d(ims,1,jms,P_q2_ndg_old) & 390 & ,t2_ndg_new=fdda2d(ims,1,jms,P_t2_ndg_new) & 391 & ,q2_ndg_new=fdda2d(ims,1,jms,P_q2_ndg_new) & 392 & ,sn_ndg_old=fdda2d(ims,1,jms,P_sn_ndg_old) & 393 & ,sn_ndg_new=fdda2d(ims,1,jms,P_sn_ndg_new) & 394 ! Indexes 395 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 396 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 397 & , I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 398 & , J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 399 & , KTS=k_start, KTE=min(k_end,kde-1) & 400 & , NUM_TILES=grid%num_tiles & 401 ! Optional 402 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 403 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 404 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 405 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 406 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 407 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 408 & ,CAPG=grid%capg, EMISS=grid%emiss, HOL=hol,MOL=grid%mol & 409 & ,T2OBS=grid%t2obs, Q2OBS=grid%q2obs & 410 & ,RAINBL=grid%rainbl,SR=grid%sr & 411 & ,RAINNCV=grid%rainncv,REGIME=grid%regime,T2=grid%t2,THC=grid%thc & 412 & ,QSG=grid%qsg,QVG=grid%qvg,QCG=grid%qcg,SOILT1=grid%soilt1,TSNAV=grid%tsnav & ! ruc lsm 413 & ,SMFR3D=grid%smfr3d,KEEPFR3DFLAG=grid%keepfr3dflag & ! ruc lsm 414 & ,POTEVP=grid%POTEVP, SNOPCX=grid%SNOPCX, SOILTB=grid%SOILTB & ! ruc lsm 415 & ) 416 BENCH_END(surf_driver_tim) 417 418 !********* 419 ! pbl 420 421 CALL wrf_debug ( 200 , ' call pbl_driver' ) 422 BENCH_START(pbl_driver_tim) 423 CALL pbl_driver( & 424 & AKHS=grid%akhs ,AKMS=grid%akms & 425 & ,BL_PBL_PHYSICS=config_flags%bl_pbl_physics & 426 & ,BLDT=grid%bldt, CURR_SECS=curr_secs, ADAPT_STEP_FLAG=adapt_step_flag & 427 & ,BR=br ,CHKLOWQ=chklowq ,CT=grid%ct & 428 & ,DT=grid%dt ,DX=grid%dx ,DZ8W=dz8w & 429 & ,EL_MYJ=grid%el_myj ,EXCH_H=grid%exch_h ,GRDFLX=grid%grdflx & 430 & ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx ,HT=grid%ht & 431 & ,ITIMESTEP=grid%itimestep ,KPBL=grid%kpbl & 432 & ,LH=grid%lh ,LOWLYR=grid%lowlyr ,P8W=p8w & 433 & ,PBLH=grid%pblh ,PI_PHY=pi_phy ,PSIH=psih & 434 & ,PSIM=psim ,P_PHY=p_phy ,QFX=grid%qfx & 435 & ,QSFC=grid%qsfc ,QZ0=grid%qz0 & 436 & ,RA_LW_PHYSICS=config_flags%ra_lw_physics & 437 & ,RHO=rho ,RQCBLTEN=grid%rqcblten ,RQIBLTEN=grid%rqiblten & 438 & ,RQVBLTEN=grid%rqvblten ,RTHBLTEN=grid%rthblten ,RUBLTEN=grid%rublten & 439 & ,RVBLTEN=grid%rvblten ,SNOW=grid%snow ,STEPBL=grid%stepbl & 440 & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 441 & ,TSK=grid%tsk ,T_PHY=t_phy ,UST=grid%ust & 442 & ,U10=grid%u10 ,UZ0=grid%uz0 ,U_FRAME=grid%u_frame ,U_PHY=u_phy & 443 & ,V10=grid%v10 ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame ,V_PHY=v_phy & 444 & ,WARM_RAIN=grid%warm_rain ,WSPD=wspd & 445 & ,XICE=grid%xice ,XLAND=grid%xland ,Z=grid%z & 446 & ,ZNT=grid%znt & 447 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 448 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 449 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 450 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 451 & ,KTS=k_start, KTE=min(k_end,kde-1) & 452 & ,NUM_TILES=grid%num_tiles & 453 ! Variables Required by ACM PBL - jp 454 & ,ZNU=grid%znu,ZNW=grid%znw,MUT=grid%mut,P_TOP=grid%p_top & 455 ! optional 456 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 457 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 458 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 459 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 460 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 461 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 462 & ,HOL=HOL, MOL=grid%mol, REGIME=grid%REGIME & 463 & ) 464 465 BENCH_END(pbl_driver_tim) 466 467 ! cumulus para. 468 469 CALL wrf_debug ( 200 , ' call cumulus_driver' ) 470 471 472 BENCH_START(cu_driver_tim) 473 CALL cumulus_driver(grid & 474 ! Prognostic variables 475 & ,U=u_phy ,V=v_phy ,TH=th_phy ,T=t_phy & 476 & ,W=grid%w_2 ,P=p_phy ,PI=pi_phy ,RHO=rho & 477 ! Other arguments 478 & ,ITIMESTEP=grid%itimestep ,DT=grid%dt ,DX=grid%dx & 479 & ,CUDT=grid%cudt,CURR_SECS=curr_secs,ADAPT_STEP_FLAG=adapt_step_flag & 480 & ,RAINC=grid%rainc ,RAINCV=grid%raincv ,PRATEC=grid%pratec & 481 & , NCA=grid%nca & 482 & ,HTOP=grid%cutop ,HBOT=grid%cubot ,KPBL=grid%kpbl & 483 & ,DZ8W=dz8w ,P8W=p8w & 484 & ,W0AVG=grid%w0avg ,STEPCU=grid%stepcu & 485 & ,CLDEFI=grid%cldefi ,LOWLYR=grid%lowlyr ,XLAND=grid%xland & 486 & ,APR_GR=grid%apr_gr ,APR_W=grid%apr_w ,APR_MC=grid%apr_mc & 487 & ,APR_ST=grid%apr_st ,APR_AS=grid%apr_as ,APR_CAPMA=grid%apr_capma & 488 & ,APR_CAPME=grid%apr_capme ,APR_CAPMI=grid%apr_capmi & 489 & ,MASS_FLUX=grid%mass_flux ,XF_ENS=grid%xf_ens & 490 & ,PR_ENS=grid%pr_ens ,HT=grid%ht,EDT_OUT=grid%edt_out & 491 & ,imomentum=grid%imomentum,clos_choice=grid%clos_choice & 492 & ,cugd_tten=grid%cugd_tten,cugd_qvten=grid%cugd_qvten,cugd_qcten=grid%cugd_qcten & 493 & ,cugd_ttens=grid%cugd_ttens,cugd_qvtens=grid%cugd_qvtens & 494 & ,ENSDIM=config_flags%ensdim ,MAXIENS=config_flags%maxiens ,MAXENS=config_flags%maxens & 495 & ,MAXENS2=config_flags%maxens2 ,MAXENS3=config_flags%maxens3 & 496 & ,CU_ACT_FLAG=cu_act_flag ,WARM_RAIN=grid%warm_rain & 497 & ,GSW=grid%gsw,cugd_avedx=config_flags%cugd_avedx & 498 & ,PERIODIC_X=(config_flags%polar .OR. config_flags%periodic_x) & 499 & ,PERIODIC_Y=config_flags%periodic_y & 500 ! Selection flag 501 & ,CU_PHYSICS=config_flags%cu_physics & 502 ! Dimension arguments 503 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 504 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 505 & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 506 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 507 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 508 & ,KTS=k_start, KTE=min(k_end,kde-1) & 509 & ,NUM_TILES=grid%num_tiles & 510 ! Moisture tendency arguments 511 & ,RQVCUTEN=grid%rqvcuten , RQCCUTEN=grid%rqccuten & 512 & ,RQSCUTEN=grid%rqscuten , RQICUTEN=grid%rqicuten & 513 & ,RQRCUTEN=grid%rqrcuten , RQVBLTEN=grid%rqvblten & 514 & ,RQVFTEN=grid%rqvften & 515 ! Other tendency arguments 516 & ,RTHRATEN=grid%rthraten , RTHBLTEN=grid%rthblten & 517 & ,RTHCUTEN=grid%rthcuten , RTHFTEN=grid%rthften & 518 ! Moisture tracer arguments 519 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 520 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 521 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 522 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 523 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 524 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 525 #ifdef WRF_CHEM 526 & ,GD_CLOUD=grid%GD_CLOUD,GD_CLOUD2=grid%GD_CLOUD2 & 527 #endif 528 & ) 529 BENCH_END(cu_driver_tim) 530 531 CALL wrf_debug ( 200 , ' call fddagd_driver' ) 532 533 BENCH_START(fdda_driver_tim) 534 CALL fddagd_driver(itimestep=grid%itimestep,dt=grid%dt,xtime=grid%XTIME, & 535 id=grid%id, & 536 RUNDGDTEN=grid%rundgdten,RVNDGDTEN=grid%rvndgdten, & 537 RTHNDGDTEN=grid%rthndgdten,RQVNDGDTEN=grid%rqvndgdten, & 538 RMUNDGDTEN=grid%rmundgdten, & 539 u_ndg_old=fdda3d(ims,kms,jms,P_u_ndg_old), & 540 v_ndg_old=fdda3d(ims,kms,jms,P_v_ndg_old), & 541 t_ndg_old=fdda3d(ims,kms,jms,P_t_ndg_old), & 542 q_ndg_old=fdda3d(ims,kms,jms,P_q_ndg_old), & 543 mu_ndg_old=fdda2d(ims,1,jms,P_mu_ndg_old), & 544 u_ndg_new=fdda3d(ims,kms,jms,P_u_ndg_new), & 545 v_ndg_new=fdda3d(ims,kms,jms,P_v_ndg_new), & 546 t_ndg_new=fdda3d(ims,kms,jms,P_t_ndg_new), & 547 q_ndg_new=fdda3d(ims,kms,jms,P_q_ndg_new), & 548 mu_ndg_new=fdda2d(ims,1,jms,P_mu_ndg_new), & 549 u3d=grid%u_2,v3d=grid%v_2,th_phy=th_phy,rho=rho,moist=moist, & 550 p_phy=p_phy,pi_phy=pi_phy,p8w=p8w,t_phy=t_phy, & 551 dz8w=dz8w,z=grid%z,z_at_w=z_at_w, & 552 config_flags=config_flags,dx=grid%DX,n_moist=num_moist, & 553 STEPFG=grid%STEPFG, & 554 pblh=grid%pblh,ht=grid%ht, & 555 IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 556 ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 557 ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 558 ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 559 ,KTS=k_start, KTE=min(k_end,kde-1) & 560 , num_tiles=grid%num_tiles ) 561 BENCH_END(fdda_driver_tim) 176 !!!!****MARS MARS 177 !!!!****MARS MARS 178 179 !! radiation 180 ! 181 !! this driver is only needed to handle non-local shadowing effects 182 ! CALL pre_radiation_driver ( grid, config_flags & 183 ! & ,itimestep=grid%itimestep, ra_call_offset=grid%ra_call_offset & 184 ! & ,XLAT=grid%xlat, XLONG=grid%xlong, GMT=grid%gmt & 185 ! & ,julian=grid%julian, xtime=grid%xtime, RADT=grid%radt & 186 ! & ,STEPRA=grid%stepra & 187 ! & ,ht=grid%ht,dx=grid%dx,dy=grid%dy,sina=grid%sina,cosa=grid%cosa & 188 ! & ,shadowmask=shadowmask,slope_rad=config_flags%slope_rad & 189 ! & ,topo_shading=config_flags%topo_shading & 190 ! & ,shadlen=config_flags%shadlen,ht_shad=grid%ht_shad,ht_loc=ht_loc & 191 ! & ,ht_shad_bxs=grid%ht_shad_bxs, ht_shad_bxe=grid%ht_shad_bxe & 192 ! & ,ht_shad_bys=grid%ht_shad_bys, ht_shad_bye=grid%ht_shad_bye & 193 ! & ,nested=config_flags%nested, min_ptchsz=grid%min_ptchsz & 194 ! & ,spec_bdy_width=config_flags%spec_bdy_width & 195 ! ! indexes 196 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 197 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 198 ! & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 199 ! & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 200 ! & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 201 ! & ,kts=k_start, kte=min(k_end,kde-1) & 202 ! & ,num_tiles=grid%num_tiles ) 203 ! 204 ! CALL wrf_debug ( 200 , ' call radiation_driver' ) 205 !BENCH_START(rad_driver_tim) 206 ! 207 ! CALL radiation_driver( & 208 ! & ACFRCV=grid%acfrcv ,ACFRST=grid%acfrst ,ALBEDO=grid%albedo & 209 ! & ,CFRACH=grid%cfrach ,CFRACL=grid%cfracl ,CFRACM=grid%cfracm & 210 ! & ,CUPPT=grid%cuppt ,CZMEAN=grid%czmean ,DT=grid%dt & 211 ! & ,DZ8W=dz8w ,EMISS=grid%emiss ,GLW=grid%glw & 212 ! & ,GMT=grid%gmt ,GSW=grid%gsw ,HBOT=grid%hbot & 213 ! & ,HTOP=grid%htop ,HBOTR=grid%hbotr ,HTOPR=grid%htopr & 214 ! & ,ICLOUD=config_flags%icloud & 215 ! & ,ITIMESTEP=grid%itimestep,JULDAY=grid%julday , JULIAN=grid%julian & 216 ! & ,JULYR=grid%julyr ,LW_PHYSICS=config_flags%ra_lw_physics & 217 ! & ,NCFRCV=grid%ncfrcv ,NCFRST=grid%ncfrst ,NPHS=1 & 218 ! & ,P8W=p8w ,P=p_phy ,PI=pi_phy & 219 ! & ,RADT=grid%radt ,RA_CALL_OFFSET=grid%ra_call_offset & 220 ! & ,RHO=rho ,RLWTOA=grid%rlwtoa & 221 ! & ,RSWTOA=grid%rswtoa ,RTHRATEN=grid%rthraten & 222 ! & ,RTHRATENLW=grid%rthratenlw ,RTHRATENSW=grid%rthratensw & 223 ! & ,SNOW=grid%snow ,STEPRA=grid%stepra ,SWDOWN=grid%swdown & 224 ! & ,SWDOWNC=grid%swdownc ,SW_PHYSICS=config_flags%ra_sw_physics & 225 ! & ,T8W=t8w ,T=t_phy ,TAUCLDC=grid%taucldc & 226 ! & ,TAUCLDI=grid%taucldi ,TSK=grid%tsk ,VEGFRA=grid%vegfra & 227 ! & ,WARM_RAIN=grid%warm_rain ,XICE=grid%xice ,XLAND=grid%xland & 228 ! & ,XLAT=grid%xlat ,XLONG=grid%xlong & 229 !!Optional urban 230 ! & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & 231 ! & ,OMG_URB2D=grid%omg_urb2d & 232 !! 233 ! & ,Z=grid%z & 234 ! & ,LEVSIZ=grid%levsiz, N_OZMIXM=num_ozmixm & 235 ! & ,N_AEROSOLC=num_aerosolc & 236 ! & ,PAERLEV=grid%paerlev & 237 ! & ,CAM_ABS_DIM1=grid%cam_abs_dim1, CAM_ABS_DIM2=grid%cam_abs_dim2 & 238 ! & ,CAM_ABS_FREQ_S=grid%cam_abs_freq_s & 239 ! & ,XTIME=grid%xtime & 240 ! ,CURR_SECS=curr_secs, ADAPT_STEP_FLAG=adapt_step_flag & 241 ! ! indexes 242 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 243 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 244 ! & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 245 ! & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 246 ! & ,kts=k_start, kte=min(k_end,kde-1) & 247 ! & ,num_tiles=grid%num_tiles & 248 ! ! Optional 249 ! & , CLDFRA=grid%cldfra & 250 ! & , PB=grid%pb & 251 ! & , F_ICE_PHY=grid%f_ice_phy,F_RAIN_PHY=grid%f_rain_phy & 252 ! & , QV=moist(ims,kms,jms,P_QV), F_QV=F_QV & 253 ! & , QC=moist(ims,kms,jms,P_QC), F_QC=F_QC & 254 ! & , QR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 255 ! & , QI=moist(ims,kms,jms,P_QI), F_QI=F_QI & 256 ! & , QS=moist(ims,kms,jms,P_QS), F_QS=F_QS & 257 ! & , QG=moist(ims,kms,jms,P_QG), F_QG=F_QG & 258 ! & , QNDROP=scalar(ims,kms,jms,P_QNDROP), F_QNDROP=F_QNDROP & 259 !#ifdef ACFLUX 260 ! & ,ACSWUPT=acswupt ,ACSWUPTC=acswuptc & 261 ! & ,ACSWDNT=acswdnt ,ACSWDNTC=acswdntc & 262 ! & ,ACSWUPB=acswupb ,ACSWUPBC=acswupbc & 263 ! & ,ACSWDNB=acswdnb ,ACSWDNBC=acswdnbc & 264 ! & ,ACLWUPT=aclwupt ,ACLWUPTC=aclwuptc & 265 ! & ,ACLWDNT=aclwdnt ,ACLWDNTC=aclwdntc & 266 ! & ,ACLWUPB=aclwupb ,ACLWUPBC=aclwupbc & 267 ! & ,ACLWDNB=aclwdnb ,ACLWDNBC=aclwdnbc & 268 ! & ,SWUPT=swupt ,SWUPTC=swuptc & 269 ! & ,SWDNT=swdnt ,SWDNTC=swdntc & 270 ! & ,SWUPB=swupb ,SWUPBC=swupbc & 271 ! & ,SWDNB=swdnb ,SWDNBC=swdnbc & 272 ! & ,LWUPT=lwupt ,LWUPTC=lwuptc & 273 ! & ,LWDNT=lwdnt ,LWDNTC=lwdntc & 274 ! & ,LWUPB=lwupb ,LWUPBC=lwupbc & 275 ! & ,LWDNB=lwdnb ,LWDNBC=lwdnbc & 276 !#endif 277 ! & ,LWCF=grid%lwcf & 278 ! & ,SWCF=grid%swcf & 279 ! & ,OLR=grid%olr & 280 ! & ,OZMIXM=grid%ozmixm, PIN=grid%pin & 281 ! & ,M_PS_1=grid%m_ps_1, M_PS_2=grid%m_ps_2, AEROSOLC_1=grid%aerosolc_1 & 282 ! & ,AEROSOLC_2=grid%aerosolc_2, M_HYBI0=grid%m_hybi & 283 ! & ,ABSTOT=grid%abstot, ABSNXT=grid%absnxt, EMSTOT=grid%emstot & 284 !#ifdef WRF_CHEM 285 ! & ,CU_RAD_FEEDBACK=config_flags%cu_rad_feedback & 286 ! & ,AER_RA_FEEDBACK=config_flags%aer_ra_feedback & 287 ! & ,QC_ADJUST=grid%GD_CLOUD_B , QI_ADJUST=grid%GD_CLOUD2_B & 288 ! & ,PM2_5_DRY=grid%pm2_5_dry, PM2_5_WATER=grid%pm2_5_water & 289 ! & ,PM2_5_DRY_EC=grid%pm2_5_dry_ec & 290 ! & ,TAUAER300=grid%tauaer1, TAUAER400=grid%tauaer2 & ! jcb 291 ! & ,TAUAER600=grid%tauaer3, TAUAER999=grid%tauaer4 & ! jcb 292 ! & ,GAER300=grid%gaer1, GAER400=grid%gaer2, GAER600=grid%gaer3, GAER999=grid%gaer4 & ! jcb 293 ! & ,WAER300=grid%waer1, WAER400=grid%waer2, WAER600=grid%waer3, WAER999=grid%waer4 & ! jcb 294 !#endif 295 ! & ,slope_rad=config_flags%slope_rad,topo_shading=config_flags%topo_shading & 296 ! & ,shadowmask=shadowmask,ht=grid%ht,dx=grid%dx,dy=grid%dy,sina=grid%sina,cosa=grid%cosa ) 297 ! 298 !BENCH_END(rad_driver_tim) 299 ! 300 !!********* Surface driver 301 !! surface 302 ! 303 !BENCH_START(surf_driver_tim) 304 ! 305 !!----------------------------------------------------------------- 306 !! urban related variable are added to arguments of surface_driver 307 !!----------------------------------------------------------------- 308 ! num_roof_layers = grid%num_soil_layers !urban 309 ! num_wall_layers = grid%num_soil_layers !urban 310 ! num_road_layers = grid%num_soil_layers !urban 311 ! CALL nl_get_iswater(grid%id, iswater) 312 ! 313 ! CALL wrf_debug ( 200 , ' call surface_driver' ) 314 ! 315 ! CALL surface_driver( & 316 ! & ACSNOM=grid%acsnom ,ACSNOW=grid%acsnow ,AKHS=grid%akhs & 317 ! & ,AKMS=grid%akms ,ALBBCK=grid%albbck ,ALBEDO=grid%albedo & 318 ! & ,EMBCK=grid%embck & 319 ! & ,BR=br ,CANWAT=grid%canwat ,CHKLOWQ=chklowq & 320 ! & ,CT=grid%ct ,DT=grid%dt ,DX=grid%dx & 321 ! & ,DZ8W=dz8w ,DZS=grid%dzs ,FLHC=grid%flhc & 322 ! & ,FLQC=grid%flqc ,GLW=grid%glw ,GRDFLX=grid%grdflx & 323 ! & ,GSW=grid%gsw ,SWDOWN=grid%swdown ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx & 324 ! & ,HT=grid%ht ,IFSNOW=config_flags%ifsnow ,ISFFLX=config_flags%isfflx & 325 ! & ,ISLTYP=grid%isltyp ,ITIMESTEP=grid%itimestep & 326 ! & ,IVGTYP=grid%ivgtyp ,LH=grid%lh ,LOWLYR=grid%lowlyr & 327 ! & ,MAVAIL=grid%mavail ,NUM_SOIL_LAYERS=config_flags%num_soil_layers & 328 ! & ,P8W=p8w ,PBLH=grid%pblh ,PI_PHY=pi_phy & 329 ! & ,PSFC=grid%psfc ,PSHLTR=grid%pshltr ,PSIH=psih & 330 ! & ,BLDT=grid%bldt ,CURR_SECS=curr_secs, ADAPT_STEP_FLAG=adapt_step_flag & 331 ! & ,PSIM=psim ,P_PHY=p_phy ,Q10=grid%q10 & 332 ! & ,Q2=grid%q2 ,QFX=grid%qfx ,QSFC=grid%qsfc & 333 ! & ,QSHLTR=grid%qshltr ,QZ0=grid%qz0 ,RAINCV=grid%raincv & 334 ! & ,RA_LW_PHYSICS=config_flags%ra_lw_physics ,RHO=rho & 335 ! & ,RMOL=grid%rmol ,SFCEVP=grid%sfcevp ,SFCEXC=grid%sfcexc & 336 ! & ,SFCRUNOFF=grid%sfcrunoff & 337 ! & ,SF_SFCLAY_PHYSICS=config_flags%sf_sfclay_physics & 338 ! & ,SF_SURFACE_PHYSICS=config_flags%sf_surface_physics ,SH2O=grid%sh2o & 339 ! & ,SHDMAX=grid%shdmax ,SHDMIN=grid%shdmin ,SMOIS=grid%smois & 340 ! & ,SMSTAV=grid%smstav ,SMSTOT=grid%smstot ,SNOALB=grid%snoalb & 341 ! & ,SNOW=grid%snow ,SNOWC=grid%snowc ,SNOWH=grid%snowh & 342 ! & ,SST=grid%sst ,SST_UPDATE=grid%sst_update & 343 ! & ,STEPBL=grid%stepbl ,TH10=grid%th10 ,TH2=grid%th2 & 344 ! & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 345 ! & ,TMN=grid%tmn ,TSHLTR=grid%tshltr ,TSK=grid%tsk & 346 ! & ,TSLB=grid%tslb ,T_PHY=t_phy ,U10=grid%u10 & 347 ! & ,URATX=grid%uratx ,VRATX=grid%vratx ,TRATX=grid%tratx & 348 ! & ,UDRUNOFF=grid%udrunoff ,UST=grid%ust ,UZ0=grid%uz0 & 349 ! & ,U_FRAME=grid%u_frame ,U_PHY=u_phy ,V10=grid%v10 & 350 ! & ,VEGFRA=grid%vegfra ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame & 351 ! & ,V_PHY=v_phy ,WARM_RAIN=grid%warm_rain & 352 ! & ,WSPD=wspd ,XICE=grid%xice ,XLAND=grid%xland & 353 ! & ,Z0=grid%z0 ,Z=grid%z ,ZNT=grid%znt & 354 ! & ,ZS=grid%zs ,XICEM=grid%xicem ,ISICE=grid%landuse_isice& 355 ! & ,USTM=grid%ustm ,CK=grid%ck ,CKA=grid%cka & 356 ! & ,CD=grid%cd ,CDA=grid%cda & 357 ! & ,ISFTCFLX=config_flags%isftcflx & 358 ! & ,OMLCALL=config_flags%omlcall ,OML_HML0=config_flags%oml_hml0 ,OML_GAMMA=config_flags%oml_gamma & 359 ! & ,TML=grid%tml, T0ML=grid%t0ml, HML=grid%hml, H0ML=grid%h0ml, HUML=grid%huml, HVML=grid%hvml, F=grid%f & 360 ! & ,ISWATER=iswater & 361 ! & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & !I urban 362 ! & ,OMG_URB2D=grid%omg_urb2d ,xlat_urb2d=grid%XLAT & !I urban 363 ! & ,NUM_ROOF_LAYERS=num_roof_layers & !I urban 364 ! & ,NUM_WALL_LAYERS=num_wall_layers & !I urban 365 ! & ,NUM_ROAD_LAYERS=num_road_layers & 366 ! & ,DZR=grid%dzr ,DZB=grid%dzb ,DZG=grid%dzg & !I urban 367 ! & ,TR_URB2D=grid%tr_urb2d ,TB_URB2D=grid%tb_urb2d & 368 ! & ,TG_URB2D=grid%tg_urb2d & !H urban 369 ! & ,TC_URB2D=grid%tc_urb2d ,QC_URB2D=grid%qc_urb2d & !H urban 370 ! & ,UC_URB2D=grid%uc_urb2d & !H urban 371 ! & ,XXXR_URB2D=grid%xxxr_urb2d & 372 ! & ,XXXB_URB2D=grid%xxxb_urb2d & !H urban 373 ! & ,XXXG_URB2D=grid%xxxg_urb2d & 374 ! & ,XXXC_URB2D=grid%xxxc_urb2d & !H urban 375 ! & ,TRL_URB3D=grid%trl_urb3d ,TBL_URB3D=grid%tbl_urb3d & !H urban 376 ! & ,TGL_URB3D=grid%tgl_urb3d & !H urban 377 ! & ,SH_URB2D=grid%sh_urb2d ,LH_URB2D=grid%lh_urb2d & 378 ! & ,G_URB2D=grid%g_urb2d & !H urban 379 ! & ,RN_URB2D=grid%rn_urb2d , TS_URB2D=grid%ts_urb2d & !H urban 380 ! & ,FRC_URB2D=grid%frc_urb2d & !H urban 381 ! & ,UTYPE_URB2D=grid%utype_urb2d & !H urban 382 ! & ,ucmcall=grid%ucmcall & !H urban 383 ! ! P-X LSM Variables 384 ! & ,LANDUSEF=grid%landusef, SOILCTOP=grid%soilctop & ! P-X LSM 385 ! & ,SOILCBOT=grid%soilcbot & ! P-X LSM 386 ! & ,RA=grid%ra, RS=grid%rs, LAI=grid%lai & ! P-X LSM 387 ! & ,NLCAT=grid%num_land_cat, NSCAT=grid%num_soil_cat & ! P-X LSM 388 ! & ,VEGF_PX=grid%vegf_px, SNOWNCV=grid%snowncv & ! P-X LSM 389 ! & ,ANAL_INTERVAL=config_flags%interval_seconds & ! P-X LSM 390 ! & ,PXLSM_SMOIS_INIT=config_flags%pxlsm_smois_init & ! P-X LSM 391 ! & ,PXLSM_SOIL_NUDGE=config_flags%grid_fdda & ! P-X LSM 392 ! ! Optional PX LSM nudging 393 ! & ,t2_ndg_old=fdda2d(ims,1,jms,P_t2_ndg_old) & 394 ! & ,q2_ndg_old=fdda2d(ims,1,jms,P_q2_ndg_old) & 395 ! & ,t2_ndg_new=fdda2d(ims,1,jms,P_t2_ndg_new) & 396 ! & ,q2_ndg_new=fdda2d(ims,1,jms,P_q2_ndg_new) & 397 ! & ,sn_ndg_old=fdda2d(ims,1,jms,P_sn_ndg_old) & 398 ! & ,sn_ndg_new=fdda2d(ims,1,jms,P_sn_ndg_new) & 399 ! ! Indexes 400 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 401 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 402 ! & , I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 403 ! & , J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 404 ! & , KTS=k_start, KTE=min(k_end,kde-1) & 405 ! & , NUM_TILES=grid%num_tiles & 406 ! ! Optional 407 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 408 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 409 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 410 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 411 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 412 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 413 ! & ,CAPG=grid%capg, EMISS=grid%emiss, HOL=hol,MOL=grid%mol & 414 ! & ,T2OBS=grid%t2obs, Q2OBS=grid%q2obs & 415 ! & ,RAINBL=grid%rainbl,SR=grid%sr & 416 ! & ,RAINNCV=grid%rainncv,REGIME=grid%regime,T2=grid%t2,THC=grid%thc & 417 ! & ,QSG=grid%qsg,QVG=grid%qvg,QCG=grid%qcg,SOILT1=grid%soilt1,TSNAV=grid%tsnav & ! ruc lsm 418 ! & ,SMFR3D=grid%smfr3d,KEEPFR3DFLAG=grid%keepfr3dflag & ! ruc lsm 419 ! & ,POTEVP=grid%POTEVP, SNOPCX=grid%SNOPCX, SOILTB=grid%SOILTB & ! ruc lsm 420 ! & ) 421 !BENCH_END(surf_driver_tim) 422 ! 423 !!********* 424 !! pbl 425 ! 426 ! CALL wrf_debug ( 200 , ' call pbl_driver' ) 427 !BENCH_START(pbl_driver_tim) 428 ! CALL pbl_driver( & 429 ! & AKHS=grid%akhs ,AKMS=grid%akms & 430 ! & ,BL_PBL_PHYSICS=config_flags%bl_pbl_physics & 431 ! & ,BLDT=grid%bldt, CURR_SECS=curr_secs, ADAPT_STEP_FLAG=adapt_step_flag & 432 ! & ,BR=br ,CHKLOWQ=chklowq ,CT=grid%ct & 433 ! & ,DT=grid%dt ,DX=grid%dx ,DZ8W=dz8w & 434 ! & ,EL_MYJ=grid%el_myj ,EXCH_H=grid%exch_h ,GRDFLX=grid%grdflx & 435 ! & ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx ,HT=grid%ht & 436 ! & ,ITIMESTEP=grid%itimestep ,KPBL=grid%kpbl & 437 ! & ,LH=grid%lh ,LOWLYR=grid%lowlyr ,P8W=p8w & 438 ! & ,PBLH=grid%pblh ,PI_PHY=pi_phy ,PSIH=psih & 439 ! & ,PSIM=psim ,P_PHY=p_phy ,QFX=grid%qfx & 440 ! & ,QSFC=grid%qsfc ,QZ0=grid%qz0 & 441 ! & ,RA_LW_PHYSICS=config_flags%ra_lw_physics & 442 ! & ,RHO=rho ,RQCBLTEN=grid%rqcblten ,RQIBLTEN=grid%rqiblten & 443 ! & ,RQVBLTEN=grid%rqvblten ,RTHBLTEN=grid%rthblten ,RUBLTEN=grid%rublten & 444 ! & ,RVBLTEN=grid%rvblten ,SNOW=grid%snow ,STEPBL=grid%stepbl & 445 ! & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 446 ! & ,TSK=grid%tsk ,T_PHY=t_phy ,UST=grid%ust & 447 ! & ,U10=grid%u10 ,UZ0=grid%uz0 ,U_FRAME=grid%u_frame ,U_PHY=u_phy & 448 ! & ,V10=grid%v10 ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame ,V_PHY=v_phy & 449 ! & ,WARM_RAIN=grid%warm_rain ,WSPD=wspd & 450 ! & ,XICE=grid%xice ,XLAND=grid%xland ,Z=grid%z & 451 ! & ,ZNT=grid%znt & 452 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 453 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 454 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 455 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 456 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 457 ! & ,NUM_TILES=grid%num_tiles & 458 ! ! Variables Required by ACM PBL - jp 459 ! & ,ZNU=grid%znu,ZNW=grid%znw,MUT=grid%mut,P_TOP=grid%p_top & 460 ! ! optional 461 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 462 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 463 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 464 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 465 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 466 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 467 ! & ,HOL=HOL, MOL=grid%mol, REGIME=grid%REGIME & 468 ! & ) 469 ! 470 !BENCH_END(pbl_driver_tim) 471 ! 472 !! cumulus para. 473 ! 474 ! CALL wrf_debug ( 200 , ' call cumulus_driver' ) 475 ! 476 ! 477 !BENCH_START(cu_driver_tim) 478 ! CALL cumulus_driver(grid & 479 ! ! Prognostic variables 480 ! & ,U=u_phy ,V=v_phy ,TH=th_phy ,T=t_phy & 481 ! & ,W=grid%w_2 ,P=p_phy ,PI=pi_phy ,RHO=rho & 482 ! ! Other arguments 483 ! & ,ITIMESTEP=grid%itimestep ,DT=grid%dt ,DX=grid%dx & 484 ! & ,CUDT=grid%cudt,CURR_SECS=curr_secs,ADAPT_STEP_FLAG=adapt_step_flag & 485 ! & ,RAINC=grid%rainc ,RAINCV=grid%raincv ,PRATEC=grid%pratec & 486 ! & , NCA=grid%nca & 487 ! & ,HTOP=grid%cutop ,HBOT=grid%cubot ,KPBL=grid%kpbl & 488 ! & ,DZ8W=dz8w ,P8W=p8w & 489 ! & ,W0AVG=grid%w0avg ,STEPCU=grid%stepcu & 490 ! & ,CLDEFI=grid%cldefi ,LOWLYR=grid%lowlyr ,XLAND=grid%xland & 491 ! & ,APR_GR=grid%apr_gr ,APR_W=grid%apr_w ,APR_MC=grid%apr_mc & 492 ! & ,APR_ST=grid%apr_st ,APR_AS=grid%apr_as ,APR_CAPMA=grid%apr_capma & 493 ! & ,APR_CAPME=grid%apr_capme ,APR_CAPMI=grid%apr_capmi & 494 ! & ,MASS_FLUX=grid%mass_flux ,XF_ENS=grid%xf_ens & 495 ! & ,PR_ENS=grid%pr_ens ,HT=grid%ht,EDT_OUT=grid%edt_out & 496 ! & ,imomentum=grid%imomentum,clos_choice=grid%clos_choice & 497 ! & ,cugd_tten=grid%cugd_tten,cugd_qvten=grid%cugd_qvten,cugd_qcten=grid%cugd_qcten & 498 ! & ,cugd_ttens=grid%cugd_ttens,cugd_qvtens=grid%cugd_qvtens & 499 ! & ,ENSDIM=config_flags%ensdim ,MAXIENS=config_flags%maxiens ,MAXENS=config_flags%maxens & 500 ! & ,MAXENS2=config_flags%maxens2 ,MAXENS3=config_flags%maxens3 & 501 ! & ,CU_ACT_FLAG=cu_act_flag ,WARM_RAIN=grid%warm_rain & 502 ! & ,GSW=grid%gsw,cugd_avedx=config_flags%cugd_avedx & 503 ! & ,PERIODIC_X=(config_flags%polar .OR. config_flags%periodic_x) & 504 ! & ,PERIODIC_Y=config_flags%periodic_y & 505 ! ! Selection flag 506 ! & ,CU_PHYSICS=config_flags%cu_physics & 507 ! ! Dimension arguments 508 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 509 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 510 ! & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 511 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 512 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 513 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 514 ! & ,NUM_TILES=grid%num_tiles & 515 ! ! Moisture tendency arguments 516 ! & ,RQVCUTEN=grid%rqvcuten , RQCCUTEN=grid%rqccuten & 517 ! & ,RQSCUTEN=grid%rqscuten , RQICUTEN=grid%rqicuten & 518 ! & ,RQRCUTEN=grid%rqrcuten , RQVBLTEN=grid%rqvblten & 519 ! & ,RQVFTEN=grid%rqvften & 520 ! ! Other tendency arguments 521 ! & ,RTHRATEN=grid%rthraten , RTHBLTEN=grid%rthblten & 522 ! & ,RTHCUTEN=grid%rthcuten , RTHFTEN=grid%rthften & 523 ! ! Moisture tracer arguments 524 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 525 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 526 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 527 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 528 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 529 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 530 !#ifdef WRF_CHEM 531 ! & ,GD_CLOUD=grid%GD_CLOUD,GD_CLOUD2=grid%GD_CLOUD2 & 532 !#endif 533 ! & ) 534 !BENCH_END(cu_driver_tim) 535 ! 536 ! CALL wrf_debug ( 200 , ' call fddagd_driver' ) 537 ! 538 !BENCH_START(fdda_driver_tim) 539 ! CALL fddagd_driver(itimestep=grid%itimestep,dt=grid%dt,xtime=grid%XTIME, & 540 ! id=grid%id, & 541 ! RUNDGDTEN=grid%rundgdten,RVNDGDTEN=grid%rvndgdten, & 542 ! RTHNDGDTEN=grid%rthndgdten,RQVNDGDTEN=grid%rqvndgdten, & 543 ! RMUNDGDTEN=grid%rmundgdten, & 544 ! u_ndg_old=fdda3d(ims,kms,jms,P_u_ndg_old), & 545 ! v_ndg_old=fdda3d(ims,kms,jms,P_v_ndg_old), & 546 ! t_ndg_old=fdda3d(ims,kms,jms,P_t_ndg_old), & 547 ! q_ndg_old=fdda3d(ims,kms,jms,P_q_ndg_old), & 548 ! mu_ndg_old=fdda2d(ims,1,jms,P_mu_ndg_old), & 549 ! u_ndg_new=fdda3d(ims,kms,jms,P_u_ndg_new), & 550 ! v_ndg_new=fdda3d(ims,kms,jms,P_v_ndg_new), & 551 ! t_ndg_new=fdda3d(ims,kms,jms,P_t_ndg_new), & 552 ! q_ndg_new=fdda3d(ims,kms,jms,P_q_ndg_new), & 553 ! mu_ndg_new=fdda2d(ims,1,jms,P_mu_ndg_new), & 554 ! u3d=grid%u_2,v3d=grid%v_2,th_phy=th_phy,rho=rho,moist=moist, & 555 ! p_phy=p_phy,pi_phy=pi_phy,p8w=p8w,t_phy=t_phy, & 556 ! dz8w=dz8w,z=grid%z,z_at_w=z_at_w, & 557 ! config_flags=config_flags,dx=grid%DX,n_moist=num_moist, & 558 ! STEPFG=grid%STEPFG, & 559 ! pblh=grid%pblh,ht=grid%ht, & 560 ! IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 561 ! ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 562 ! ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 563 ! ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 564 ! ,KTS=k_start, KTE=min(k_end,kde-1) & 565 ! , num_tiles=grid%num_tiles ) 566 !BENCH_END(fdda_driver_tim) 562 567 563 568 !!****MARS -
trunk/mesoscale/LMD_LES_MARS/modif_mars/module_first_rk_step_part2.F
r17 r94 37 37 tke_rhs 38 38 USE module_em, ONLY : calculate_phy_tend 39 USE module_fddaobs_driver, ONLY : fddaobs_driver 39 !!!!****MARS MARS 40 ! USE module_fddaobs_driver, ONLY : fddaobs_driver 40 41 USE module_bc, ONLY : set_physical_bc3d, set_physical_bc2d 41 42 USE module_physics_addtendc, ONLY : update_phy_ten … … 540 541 ENDIF 541 542 542 IF ( grid%obs_nudge_opt .EQ. 1 ) THEN 543 # ifdef DM_PARALLEL 544 # include "HALO_OBS_NUDGE.inc" 545 #endif 546 !*********************************************************************** 547 ! This section for obs nudging 548 !$OMP PARALLEL DO & 549 !$OMP PRIVATE ( ij ) 550 551 DO ij = 1 , grid%num_tiles 552 553 CALL fddaobs_driver (grid%grid_id, model_config_rec%grid_id, & 554 model_config_rec%parent_id, config_flags%restart, & 555 grid%obs_nudge_opt, & 556 grid%obs_ipf_errob, & 557 grid%obs_ipf_nudob, & 558 grid%fdda_start, & 559 grid%fdda_end, & 560 grid%obs_nudge_wind, & 561 grid%obs_nudge_temp, & 562 grid%obs_nudge_mois, & 563 grid%obs_nudge_pstr, & 564 grid%obs_coef_wind, & 565 grid%obs_coef_temp, & 566 grid%obs_coef_mois, & 567 grid%obs_coef_pstr, & 568 grid%obs_rinxy, & 569 grid%obs_rinsig, & 570 grid%obs_npfi, & 571 grid%obs_ionf, & 572 grid%obs_nobs_prt, & 573 grid%obs_idynin, & 574 grid%obs_dtramp, & 575 model_config_rec%cen_lat(1), & 576 model_config_rec%cen_lon(1), & 577 config_flags%truelat1, & 578 config_flags%truelat2, & 579 config_flags%map_proj, & 580 model_config_rec%i_parent_start, & 581 model_config_rec%j_parent_start, & 582 grid%parent_grid_ratio, & 583 grid%max_dom, grid%itimestep, & 584 grid%dt, grid%gmt, grid%julday, grid%fdob, & 585 grid%max_obs, & 586 model_config_rec%nobs_ndg_vars, & 587 model_config_rec%nobs_err_flds, & 588 grid%fdob%nstat, grid%fdob%varobs, grid%fdob%errf, & 589 grid%dx, grid%KPBL,grid%HT, & 590 grid%mut, grid%muu, grid%muv, & 591 grid%msftx, grid%msfty, grid%msfux, grid%msfuy, grid%msfvx, grid%msfvy, & 592 p_phy, t_tendf, t0, & 593 grid%u_2, grid%v_2, grid%t_2, & 594 moist(ims,kms,jms,P_QV), & 595 grid%pb, grid%p_top, grid%p, & 596 grid%uratx, grid%vratx, grid%tratx, & 597 ru_tendf, rv_tendf, & 598 moist_tend(ims,kms,jms,P_QV), grid%obs_savwt, & 599 ids,ide, jds,jde, kds,kde, & 600 ims,ime, jms,jme, kms,kme, & 601 grid%i_start(ij), min(grid%i_end(ij),ide-1), & 602 grid%j_start(ij), min(grid%j_end(ij),jde-1), & 603 k_start , min(k_end,kde-1) ) 604 605 ENDDO 606 !$OMP END PARALLEL DO 607 ENDIF ! obs_nudge_opt .eq. 1 543 !!!!****MARS MARS 544 !!!!****MARS MARS 545 546 ! IF ( grid%obs_nudge_opt .EQ. 1 ) THEN 547 !# ifdef DM_PARALLEL 548 !# include "HALO_OBS_NUDGE.inc" 549 !#endif 550 !!*********************************************************************** 551 !! This section for obs nudging 552 ! !$OMP PARALLEL DO & 553 ! !$OMP PRIVATE ( ij ) 554 ! 555 ! DO ij = 1 , grid%num_tiles 556 ! 557 ! CALL fddaobs_driver (grid%grid_id, model_config_rec%grid_id, & 558 ! model_config_rec%parent_id, config_flags%restart, & 559 ! grid%obs_nudge_opt, & 560 ! grid%obs_ipf_errob, & 561 ! grid%obs_ipf_nudob, & 562 ! grid%fdda_start, & 563 ! grid%fdda_end, & 564 ! grid%obs_nudge_wind, & 565 ! grid%obs_nudge_temp, & 566 ! grid%obs_nudge_mois, & 567 ! grid%obs_nudge_pstr, & 568 ! grid%obs_coef_wind, & 569 ! grid%obs_coef_temp, & 570 ! grid%obs_coef_mois, & 571 ! grid%obs_coef_pstr, & 572 ! grid%obs_rinxy, & 573 ! grid%obs_rinsig, & 574 ! grid%obs_npfi, & 575 ! grid%obs_ionf, & 576 ! grid%obs_nobs_prt, & 577 ! grid%obs_idynin, & 578 ! grid%obs_dtramp, & 579 ! model_config_rec%cen_lat(1), & 580 ! model_config_rec%cen_lon(1), & 581 ! config_flags%truelat1, & 582 ! config_flags%truelat2, & 583 ! config_flags%map_proj, & 584 ! model_config_rec%i_parent_start, & 585 ! model_config_rec%j_parent_start, & 586 ! grid%parent_grid_ratio, & 587 ! grid%max_dom, grid%itimestep, & 588 ! grid%dt, grid%gmt, grid%julday, grid%fdob, & 589 ! grid%max_obs, & 590 ! model_config_rec%nobs_ndg_vars, & 591 ! model_config_rec%nobs_err_flds, & 592 ! grid%fdob%nstat, grid%fdob%varobs, grid%fdob%errf, & 593 ! grid%dx, grid%KPBL,grid%HT, & 594 ! grid%mut, grid%muu, grid%muv, & 595 ! grid%msftx, grid%msfty, grid%msfux, grid%msfuy, grid%msfvx, grid%msfvy, & 596 ! p_phy, t_tendf, t0, & 597 ! grid%u_2, grid%v_2, grid%t_2, & 598 ! moist(ims,kms,jms,P_QV), & 599 ! grid%pb, grid%p_top, grid%p, & 600 ! grid%uratx, grid%vratx, grid%tratx, & 601 ! ru_tendf, rv_tendf, & 602 ! moist_tend(ims,kms,jms,P_QV), grid%obs_savwt, & 603 ! ids,ide, jds,jde, kds,kde, & 604 ! ims,ime, jms,jme, kms,kme, & 605 ! grid%i_start(ij), min(grid%i_end(ij),ide-1), & 606 ! grid%j_start(ij), min(grid%j_end(ij),jde-1), & 607 ! k_start , min(k_end,kde-1) ) 608 608 ! 609 !*********************************************************************** 609 ! ENDDO 610 ! !$OMP END PARALLEL DO 611 ! ENDIF ! obs_nudge_opt .eq. 1 612 !! 613 !!*********************************************************************** 610 614 611 615 END SUBROUTINE first_rk_step_part2 -
trunk/mesoscale/LMD_LES_MARS/modif_mars/module_physics_addtendc.F
r17 r94 788 788 !---------------------------------------------------------------------- 789 789 USE module_state_description 790 USE module_cu_kf 791 USE module_cu_kfeta 790 !!!******MARS MARS 791 !!!******MARS MARS 792 ! USE module_cu_kf 793 ! USE module_cu_kfeta 792 794 !---------------------------------------------------------------------- 793 795 IMPLICIT NONE -
trunk/mesoscale/LMD_LES_MARS/modif_mars/solve_em.F
r17 r94 32 32 USE module_diffusion_em 33 33 USE module_polarfft 34 USE module_microphysics_driver 35 USE module_microphysics_zero_out 36 USE module_fddaobs_driver 37 USE module_diagnostics 34 !!!!****MARS MARS 35 !!!!****MARS MARS 36 ! USE module_microphysics_driver 37 ! USE module_microphysics_zero_out 38 ! USE module_fddaobs_driver 39 ! USE module_diagnostics 38 40 #ifdef WRF_CHEM 39 41 USE module_input_chem_data … … 2638 2640 ENDIF 2639 2641 2640 IF (config_flags%mp_physics /= 0) then 2641 2642 !$OMP PARALLEL DO & 2643 !$OMP PRIVATE ( ij, its, ite, jts, jte ) 2644 2645 scalar_tile_loop_1a: DO ij = 1 , grid%num_tiles 2646 2647 IF ( config_flags%periodic_x ) THEN 2648 its = max(grid%i_start(ij),ids) 2649 ite = min(grid%i_end(ij),ide-1) 2650 ELSE 2651 its = max(grid%i_start(ij),ids+sz) 2652 ite = min(grid%i_end(ij),ide-1-sz) 2653 ENDIF 2654 jts = max(grid%j_start(ij),jds+sz) 2655 jte = min(grid%j_end(ij),jde-1-sz) 2656 2657 CALL wrf_debug ( 200 , ' call moist_physics_prep' ) 2658 BENCH_START(moist_physics_prep_tim) 2659 CALL moist_physics_prep_em( grid%t_2, grid%t_1, t0, rho, & 2660 grid%al, grid%alb, grid%p, p8w, p0, grid%pb, & 2661 grid%ph_2, grid%phb, th_phy, pi_phy, p_phy, & 2662 grid%z, z_at_w, dz8w, & 2663 dtm, grid%h_diabatic, & 2664 config_flags,grid%fnm, grid%fnp, & 2665 ids, ide, jds, jde, kds, kde, & 2666 ims, ime, jms, jme, kms, kme, & 2667 its, ite, jts, jte, & 2668 k_start , k_end ) 2669 BENCH_END(moist_physics_prep_tim) 2670 END DO scalar_tile_loop_1a 2671 !$OMP END PARALLEL DO 2672 2673 CALL wrf_debug ( 200 , ' call microphysics_driver' ) 2674 2675 grid%sr = 0. 2676 specified_bdy = config_flags%specified .OR. config_flags%nested 2677 channel_bdy = config_flags%specified .AND. config_flags%periodic_x 2678 2679 BENCH_START(micro_driver_tim) 2680 2681 CALL microphysics_driver( & 2682 & DT=dtm ,DX=grid%dx ,DY=grid%dy & 2683 & ,DZ8W=dz8w ,F_ICE_PHY=grid%f_ice_phy & 2684 & ,ITIMESTEP=grid%itimestep ,LOWLYR=grid%lowlyr & 2685 & ,P8W=p8w ,P=p_phy ,PI_PHY=pi_phy & 2686 & ,RHO=rho ,SPEC_ZONE=grid%spec_zone & 2687 & ,SR=grid%sr ,TH=th_phy & 2688 & ,WARM_RAIN=grid%warm_rain & 2689 & ,T8W=t8w & 2690 & ,CLDFRA=grid%cldfra, EXCH_H=grid%exch_h & 2691 & ,NSOURCE=grid%qndropsource & 2692 #ifdef WRF_CHEM 2693 & ,QLSINK=grid%qlsink,CLDFRA_OLD=grid%cldfra_old & 2694 & ,PRECR=grid%precr, PRECI=grid%preci, PRECS=grid%precs, PRECG=grid%precg & 2695 & ,CHEM_OPT=config_flags%chem_opt, PROGN=config_flags%progn & 2696 #endif 2697 & ,XLAND=grid%xland & 2698 & ,SPECIFIED=specified_bdy, CHANNEL_SWITCH=channel_bdy & 2699 & ,F_RAIN_PHY=grid%f_rain_phy & 2700 & ,F_RIMEF_PHY=grid%f_rimef_phy & 2701 & ,MP_PHYSICS=config_flags%mp_physics & 2702 & ,ID=grid%id & 2703 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 2704 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 2705 #ifdef RUN_ON_GPU 2706 & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 2707 #endif 2708 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 2709 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 2710 & ,KTS=k_start, KTE=min(k_end,kde-1) & 2711 & ,NUM_TILES=grid%num_tiles & 2712 & ,NAER=grid%naer & 2713 ! Optional 2714 & , RAINNC=grid%rainnc, RAINNCV=grid%rainncv & 2715 & , SNOWNC=grid%snownc, SNOWNCV=grid%snowncv & 2716 & , GRAUPELNC=grid%graupelnc, GRAUPELNCV=grid%graupelncv & 2717 & , W=grid%w_2, Z=grid%z, HT=grid%ht & 2718 & , MP_RESTART_STATE=grid%mp_restart_state & 2719 & , TBPVS_STATE=grid%tbpvs_state & ! etampnew 2720 & , TBPVS0_STATE=grid%tbpvs0_state & ! etampnew 2721 & , QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 2722 & , QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 2723 & , QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 2724 & , QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 2725 & , QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 2726 & , QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 2727 & , QNDROP_CURR=scalar(ims,kms,jms,P_QNDROP), F_QNDROP=F_QNDROP & 2728 & , QNI_CURR=scalar(ims,kms,jms,P_QNI), F_QNI=F_QNI & 2729 & , QT_CURR=scalar(ims,kms,jms,P_QT), F_QT=F_QT & 2730 & , QNS_CURR=scalar(ims,kms,jms,P_QNS), F_QNS=F_QNS & 2731 & , QNR_CURR=scalar(ims,kms,jms,P_QNR), F_QNR=F_QNR & 2732 & , QNG_CURR=scalar(ims,kms,jms,P_QNG), F_QNG=F_QNG & 2733 & , qrcuten=grid%rqrcuten, qscuten=grid%rqscuten & 2734 & , qicuten=grid%rqicuten,mu=grid%mut & 2735 & , HAIL=config_flags%gsfcgce_hail & ! for gsfcgce 2736 & , ICE2=config_flags%gsfcgce_2ice & ! for gsfcgce 2737 ) 2738 BENCH_END(micro_driver_tim) 2739 2740 #if 0 2741 BENCH_START(microswap_2) 2742 ! for load balancing; communication to redistribute the points 2743 IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 2744 #include "SWAP_ETAMP_NEW.inc" 2745 ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 2746 #include "SWAP_WSM3.inc" 2747 ENDIF 2748 BENCH_END(microswap_2) 2749 #endif 2750 2751 CALL wrf_debug ( 200 , ' call moist_physics_finish' ) 2752 BENCH_START(moist_phys_end_tim) 2753 2754 !$OMP PARALLEL DO & 2755 !$OMP PRIVATE ( ij, its, ite, jts, jte, im, ii, jj, kk ) 2756 2757 DO ij = 1 , grid%num_tiles 2758 2759 IF ( config_flags%periodic_x ) THEN 2760 its = max(grid%i_start(ij),ids) 2761 ite = min(grid%i_end(ij),ide-1) 2762 ELSE 2763 its = max(grid%i_start(ij),ids+sz) 2764 ite = min(grid%i_end(ij),ide-1-sz) 2765 ENDIF 2766 jts = max(grid%j_start(ij),jds+sz) 2767 jte = min(grid%j_end(ij),jde-1-sz) 2768 2769 CALL microphysics_zero_out ( & 2770 moist , num_moist , config_flags , & 2771 ids, ide, jds, jde, kds, kde, & 2772 ims, ime, jms, jme, kms, kme, & 2773 its, ite, jts, jte, & 2774 k_start , k_end ) 2775 2776 2777 CALL moist_physics_finish_em( grid%t_2, grid%t_1, t0, grid%muts, th_phy, & 2778 grid%h_diabatic, dtm, config_flags, & 2779 ids, ide, jds, jde, kds, kde, & 2780 ims, ime, jms, jme, kms, kme, & 2781 its, ite, jts, jte, & 2782 k_start , k_end ) 2783 2784 END DO 2785 !$OMP END PARALLEL DO 2786 2787 ENDIF ! microphysics test 2642 !!!!****MARS MARS 2643 !!!!****MARS MARS 2644 2645 ! IF (config_flags%mp_physics /= 0) then 2646 ! 2647 ! !$OMP PARALLEL DO & 2648 ! !$OMP PRIVATE ( ij, its, ite, jts, jte ) 2649 ! 2650 ! scalar_tile_loop_1a: DO ij = 1 , grid%num_tiles 2651 ! 2652 ! IF ( config_flags%periodic_x ) THEN 2653 ! its = max(grid%i_start(ij),ids) 2654 ! ite = min(grid%i_end(ij),ide-1) 2655 ! ELSE 2656 ! its = max(grid%i_start(ij),ids+sz) 2657 ! ite = min(grid%i_end(ij),ide-1-sz) 2658 ! ENDIF 2659 ! jts = max(grid%j_start(ij),jds+sz) 2660 ! jte = min(grid%j_end(ij),jde-1-sz) 2661 ! 2662 ! CALL wrf_debug ( 200 , ' call moist_physics_prep' ) 2663 !BENCH_START(moist_physics_prep_tim) 2664 ! CALL moist_physics_prep_em( grid%t_2, grid%t_1, t0, rho, & 2665 ! grid%al, grid%alb, grid%p, p8w, p0, grid%pb, & 2666 ! grid%ph_2, grid%phb, th_phy, pi_phy, p_phy, & 2667 ! grid%z, z_at_w, dz8w, & 2668 ! dtm, grid%h_diabatic, & 2669 ! config_flags,grid%fnm, grid%fnp, & 2670 ! ids, ide, jds, jde, kds, kde, & 2671 ! ims, ime, jms, jme, kms, kme, & 2672 ! its, ite, jts, jte, & 2673 ! k_start , k_end ) 2674 !BENCH_END(moist_physics_prep_tim) 2675 ! END DO scalar_tile_loop_1a 2676 ! !$OMP END PARALLEL DO 2677 ! 2678 ! CALL wrf_debug ( 200 , ' call microphysics_driver' ) 2679 ! 2680 ! grid%sr = 0. 2681 ! specified_bdy = config_flags%specified .OR. config_flags%nested 2682 ! channel_bdy = config_flags%specified .AND. config_flags%periodic_x 2683 ! 2684 !BENCH_START(micro_driver_tim) 2685 ! 2686 ! CALL microphysics_driver( & 2687 ! & DT=dtm ,DX=grid%dx ,DY=grid%dy & 2688 ! & ,DZ8W=dz8w ,F_ICE_PHY=grid%f_ice_phy & 2689 ! & ,ITIMESTEP=grid%itimestep ,LOWLYR=grid%lowlyr & 2690 ! & ,P8W=p8w ,P=p_phy ,PI_PHY=pi_phy & 2691 ! & ,RHO=rho ,SPEC_ZONE=grid%spec_zone & 2692 ! & ,SR=grid%sr ,TH=th_phy & 2693 ! & ,WARM_RAIN=grid%warm_rain & 2694 ! & ,T8W=t8w & 2695 ! & ,CLDFRA=grid%cldfra, EXCH_H=grid%exch_h & 2696 ! & ,NSOURCE=grid%qndropsource & 2697 !#ifdef WRF_CHEM 2698 ! & ,QLSINK=grid%qlsink,CLDFRA_OLD=grid%cldfra_old & 2699 ! & ,PRECR=grid%precr, PRECI=grid%preci, PRECS=grid%precs, PRECG=grid%precg & 2700 ! & ,CHEM_OPT=config_flags%chem_opt, PROGN=config_flags%progn & 2701 !#endif 2702 ! & ,XLAND=grid%xland & 2703 ! & ,SPECIFIED=specified_bdy, CHANNEL_SWITCH=channel_bdy & 2704 ! & ,F_RAIN_PHY=grid%f_rain_phy & 2705 ! & ,F_RIMEF_PHY=grid%f_rimef_phy & 2706 ! & ,MP_PHYSICS=config_flags%mp_physics & 2707 ! & ,ID=grid%id & 2708 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 2709 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 2710 !#ifdef RUN_ON_GPU 2711 ! & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 2712 !#endif 2713 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 2714 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 2715 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 2716 ! & ,NUM_TILES=grid%num_tiles & 2717 ! & ,NAER=grid%naer & 2718 ! ! Optional 2719 ! & , RAINNC=grid%rainnc, RAINNCV=grid%rainncv & 2720 ! & , SNOWNC=grid%snownc, SNOWNCV=grid%snowncv & 2721 ! & , GRAUPELNC=grid%graupelnc, GRAUPELNCV=grid%graupelncv & 2722 ! & , W=grid%w_2, Z=grid%z, HT=grid%ht & 2723 ! & , MP_RESTART_STATE=grid%mp_restart_state & 2724 ! & , TBPVS_STATE=grid%tbpvs_state & ! etampnew 2725 ! & , TBPVS0_STATE=grid%tbpvs0_state & ! etampnew 2726 ! & , QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 2727 ! & , QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 2728 ! & , QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 2729 ! & , QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 2730 ! & , QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 2731 ! & , QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 2732 ! & , QNDROP_CURR=scalar(ims,kms,jms,P_QNDROP), F_QNDROP=F_QNDROP & 2733 ! & , QNI_CURR=scalar(ims,kms,jms,P_QNI), F_QNI=F_QNI & 2734 ! & , QT_CURR=scalar(ims,kms,jms,P_QT), F_QT=F_QT & 2735 ! & , QNS_CURR=scalar(ims,kms,jms,P_QNS), F_QNS=F_QNS & 2736 ! & , QNR_CURR=scalar(ims,kms,jms,P_QNR), F_QNR=F_QNR & 2737 ! & , QNG_CURR=scalar(ims,kms,jms,P_QNG), F_QNG=F_QNG & 2738 ! & , qrcuten=grid%rqrcuten, qscuten=grid%rqscuten & 2739 ! & , qicuten=grid%rqicuten,mu=grid%mut & 2740 ! & , HAIL=config_flags%gsfcgce_hail & ! for gsfcgce 2741 ! & , ICE2=config_flags%gsfcgce_2ice & ! for gsfcgce 2742 ! ) 2743 !BENCH_END(micro_driver_tim) 2744 ! 2745 !#if 0 2746 !BENCH_START(microswap_2) 2747 !! for load balancing; communication to redistribute the points 2748 ! IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 2749 !#include "SWAP_ETAMP_NEW.inc" 2750 ! ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 2751 !#include "SWAP_WSM3.inc" 2752 ! ENDIF 2753 !BENCH_END(microswap_2) 2754 !#endif 2755 ! 2756 ! CALL wrf_debug ( 200 , ' call moist_physics_finish' ) 2757 !BENCH_START(moist_phys_end_tim) 2758 ! 2759 ! !$OMP PARALLEL DO & 2760 ! !$OMP PRIVATE ( ij, its, ite, jts, jte, im, ii, jj, kk ) 2761 ! 2762 ! DO ij = 1 , grid%num_tiles 2763 ! 2764 ! IF ( config_flags%periodic_x ) THEN 2765 ! its = max(grid%i_start(ij),ids) 2766 ! ite = min(grid%i_end(ij),ide-1) 2767 ! ELSE 2768 ! its = max(grid%i_start(ij),ids+sz) 2769 ! ite = min(grid%i_end(ij),ide-1-sz) 2770 ! ENDIF 2771 ! jts = max(grid%j_start(ij),jds+sz) 2772 ! jte = min(grid%j_end(ij),jde-1-sz) 2773 ! 2774 ! CALL microphysics_zero_out ( & 2775 ! moist , num_moist , config_flags , & 2776 ! ids, ide, jds, jde, kds, kde, & 2777 ! ims, ime, jms, jme, kms, kme, & 2778 ! its, ite, jts, jte, & 2779 ! k_start , k_end ) 2780 ! 2781 ! 2782 ! CALL moist_physics_finish_em( grid%t_2, grid%t_1, t0, grid%muts, th_phy, & 2783 ! grid%h_diabatic, dtm, config_flags, & 2784 ! ids, ide, jds, jde, kds, kde, & 2785 ! ims, ime, jms, jme, kms, kme, & 2786 ! its, ite, jts, jte, & 2787 ! k_start , k_end ) 2788 ! 2789 ! END DO 2790 ! !$OMP END PARALLEL DO 2791 ! 2792 ! ENDIF ! microphysics test 2788 2793 2789 2794 !----------------------------------------------------------- … … 3131 3136 ENDIF 3132 3137 3133 ! calculate some model diagnostics. 3134 3135 CALL wrf_debug ( 200 , ' call diagnostic_driver' ) 3136 3137 CALL diagnostic_output_calc( & 3138 & DPSDT=grid%dpsdt ,DMUDT=grid%dmudt & 3139 & ,P8W=p8w ,PK1M=grid%pk1m & 3140 & ,MU_2=grid%mu_2 ,MU_2M=grid%mu_2m & 3141 & ,U=grid%u_2 ,V=grid%v_2 & 3142 & ,RAINCV=grid%raincv ,RAINNCV=grid%rainncv & 3143 & ,RAINC=grid%rainc ,RAINNC=grid%rainnc & 3144 & ,HFX=grid%hfx ,SFCEVP=grid%sfcevp ,LH=grid%lh & 3145 & ,DT=grid%dt ,SBW=config_flags%spec_bdy_width & 3146 & ,XTIME=grid%xtime & 3147 ! Selection flag 3148 & ,DIAG_PRINT=config_flags%diag_print & 3149 ! Dimension arguments 3150 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3151 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3152 & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 3153 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3154 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3155 & ,KTS=k_start, KTE=min(k_end,kde-1) & 3156 & ,NUM_TILES=grid%num_tiles & 3157 & ) 3138 !!!!****MARS MARS 3139 !!!!****MARS MARS 3140 3141 !! calculate some model diagnostics. 3142 ! 3143 ! CALL wrf_debug ( 200 , ' call diagnostic_driver' ) 3144 ! 3145 ! CALL diagnostic_output_calc( & 3146 ! & DPSDT=grid%dpsdt ,DMUDT=grid%dmudt & 3147 ! & ,P8W=p8w ,PK1M=grid%pk1m & 3148 ! & ,MU_2=grid%mu_2 ,MU_2M=grid%mu_2m & 3149 ! & ,U=grid%u_2 ,V=grid%v_2 & 3150 ! & ,RAINCV=grid%raincv ,RAINNCV=grid%rainncv & 3151 ! & ,RAINC=grid%rainc ,RAINNC=grid%rainnc & 3152 ! & ,HFX=grid%hfx ,SFCEVP=grid%sfcevp ,LH=grid%lh & 3153 ! & ,DT=grid%dt ,SBW=config_flags%spec_bdy_width & 3154 ! & ,XTIME=grid%xtime & 3155 ! ! Selection flag 3156 ! & ,DIAG_PRINT=config_flags%diag_print & 3157 ! ! Dimension arguments 3158 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3159 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3160 ! & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 3161 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3162 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3163 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 3164 ! & ,NUM_TILES=grid%num_tiles & 3165 ! & ) 3158 3166 3159 3167 #ifdef DM_PARALLEL -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/Makefile
r11 r94 198 198 ../share/module_model_constants.o \ 199 199 ../share/module_bc.o \ 200 ../phys/module_radiation_driver.o \201 200 ../phys/module_lmd_driver.o \ 202 ../phys/module_surface_driver.o \203 ../phys/module_cumulus_driver.o \204 ../phys/module_microphysics_driver.o \205 ../phys/module_microphysics_zero_out.o \206 ../phys/module_pbl_driver.o \207 ../phys/module_fddagd_driver.o \208 ../phys/module_fddaobs_driver.o \209 201 ../phys/module_physics_addtendc.o 210 202 -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F
r76 r94 27 27 ! Registry generated module 28 28 USE module_state_description 29 USE module_radiation_driver 30 USE module_surface_driver 31 USE module_cumulus_driver 32 USE module_microphysics_driver 33 USE module_microphysics_zero_out 34 USE module_pbl_driver 35 USE module_fddagd_driver 36 USE module_fddaobs_driver 37 USE module_diagnostics 29 !!!******MARS MARS 30 !!!******MARS MARS 31 !!!******MARS MARS 32 ! USE module_radiation_driver 33 ! USE module_surface_driver 34 ! USE module_cumulus_driver 35 ! USE module_microphysics_driver 36 ! USE module_microphysics_zero_out 37 ! USE module_pbl_driver 38 ! USE module_fddagd_driver 39 ! USE module_fddaobs_driver 40 ! USE module_diagnostics 38 41 !****MARS 39 42 ! in the dyn_em folder physics driver are only used here … … 480 483 !----------------------------------------------------------------- 481 484 482 CALL wrf_debug ( 200 , ' call radiation_driver' ) 483 BENCH_START(rad_driver_tim) 484 485 CALL radiation_driver( & 486 & ACFRCV=grid%acfrcv ,ACFRST=grid%acfrst ,ALBEDO=grid%albedo & 487 & ,CFRACH=grid%cfrach ,CFRACL=grid%cfracl ,CFRACM=grid%cfracm & 488 & ,CUPPT=grid%cuppt ,CZMEAN=grid%czmean ,DT=grid%dt & 489 & ,DZ8W=dz8w ,EMISS=grid%emiss ,GLW=grid%glw & 490 & ,GMT=grid%gmt ,GSW=grid%gsw ,HBOT=grid%hbot & 491 & ,HTOP=grid%htop ,HBOTR=grid%hbotr, HTOPR=grid%htopr ,ICLOUD=config_flags%icloud & 492 & ,ITIMESTEP=grid%itimestep,JULDAY=grid%julday, JULIAN=grid%julian & 493 & ,JULYR=grid%julyr ,LW_PHYSICS=config_flags%ra_lw_physics & 494 & ,NCFRCV=grid%ncfrcv ,NCFRST=grid%ncfrst ,NPHS=1 & 495 & ,P8W=p8w ,P=p_phy ,PI=pi_phy & 496 & ,RADT=grid%radt ,RA_CALL_OFFSET=grid%ra_call_offset & 497 & ,RHO=rho ,RLWTOA=grid%rlwtoa & 498 & ,RSWTOA=grid%rswtoa ,RTHRATEN=grid%rthraten & 499 & ,RTHRATENLW=grid%rthratenlw & 500 & ,RTHRATENSW=grid%rthratensw ,SNOW=grid%snow & 501 & ,STEPRA=grid%stepra ,SWDOWN=grid%swdown ,SWDOWNC=grid%swdownc & 502 & ,SW_PHYSICS=config_flags%ra_sw_physics ,T8W=t8w & 503 & ,T=t_phy ,TAUCLDC=grid%taucldc ,TAUCLDI=grid%taucldi & 504 & ,TSK=grid%tsk ,VEGFRA=grid%vegfra ,WARM_RAIN=grid%warm_rain & 505 & ,XICE=grid%xice & 506 & ,XLAND=grid%xland ,XLAT=grid%xlat ,XLONG=grid%xlong & 507 !Optional urban 508 & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & 509 & ,OMG_URB2D=grid%omg_urb2d & 510 ! 511 & ,Z=grid%em_z & 512 & ,LEVSIZ=grid%levsiz, N_OZMIXM=num_ozmixm & 513 & ,N_AEROSOLC=num_aerosolc & 514 & ,PAERLEV=grid%paerlev & 515 & ,CAM_ABS_DIM1=grid%cam_abs_dim1, CAM_ABS_DIM2=grid%cam_abs_dim2 & 516 & ,CAM_ABS_FREQ_S=grid%cam_abs_freq_s & 517 & ,XTIME=grid%xtime & 518 ! indexes 519 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 520 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 521 & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 522 & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 523 & ,kts=k_start, kte=min(k_end,kde-1) & 524 & ,num_tiles=grid%num_tiles & 525 ! Optional 526 & , CLDFRA=grid%cldfra & 527 & , PB=grid%em_pb & 528 & , F_ICE_PHY=grid%f_ice_phy,F_RAIN_PHY=grid%f_rain_phy & 529 & , QV=moist(ims,kms,jms,P_QV), F_QV=F_QV & 530 & , QC=moist(ims,kms,jms,P_QC), F_QC=F_QC & 531 & , QR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 532 & , QI=moist(ims,kms,jms,P_QI), F_QI=F_QI & 533 & , QS=moist(ims,kms,jms,P_QS), F_QS=F_QS & 534 & , QG=moist(ims,kms,jms,P_QG), F_QG=F_QG & 535 #ifdef ACFLUX 536 & ,ACSWUPT=acswupt ,ACSWUPTC=acswuptc & 537 & ,ACSWDNT=acswdnt ,ACSWDNTC=acswdntc & 538 & ,ACSWUPB=acswupb ,ACSWUPBC=acswupbc & 539 & ,ACSWDNB=acswdnb ,ACSWDNBC=acswdnbc & 540 & ,ACLWUPT=aclwupt ,ACLWUPTC=aclwuptc & 541 & ,ACLWDNT=aclwdnt ,ACLWDNTC=aclwdntc & 542 & ,ACLWUPB=aclwupb ,ACLWUPBC=aclwupbc & 543 & ,ACLWDNB=aclwdnb ,ACLWDNBC=aclwdnbc & 544 & ,SWUPT=swupt ,SWUPTC=swuptc & 545 & ,SWDNT=swdnt ,SWDNTC=swdntc & 546 & ,SWUPB=swupb ,SWUPBC=swupbc & 547 & ,SWDNB=swdnb ,SWDNBC=swdnbc & 548 & ,LWUPT=lwupt ,LWUPTC=lwuptc & 549 & ,LWDNT=lwdnt ,LWDNTC=lwdntc & 550 & ,LWUPB=lwupb ,LWUPBC=lwupbc & 551 & ,LWDNB=lwdnb ,LWDNBC=lwdnbc & 552 #endif 553 & ,LWCF=grid%lwcf & 554 & ,SWCF=grid%swcf & 555 & ,OLR=grid%olr & 556 & ,OZMIXM=grid%ozmixm, PIN=grid%pin & 557 & ,M_PS_1=grid%m_ps_1, M_PS_2=grid%m_ps_2, AEROSOLC_1=grid%aerosolc_1 & 558 & ,AEROSOLC_2=grid%aerosolc_2, M_HYBI0=grid%m_hybi & 559 & ,ABSTOT=grid%abstot, ABSNXT=grid%absnxt, EMSTOT=grid%emstot & 560 #ifdef WRF_CHEM 561 & ,QC_ADJUST=grid%GD_CLOUD , QI_ADJUST=grid%GD_CLOUD2 & 562 & ,PM2_5_DRY=grid%pm2_5_dry, PM2_5_WATER=grid%pm2_5_water & 563 & ,PM2_5_DRY_EC=grid%pm2_5_dry_ec & 564 & ,TAUAER300=grid%tauaer1, TAUAER400=grid%tauaer2 & ! jcb 565 & ,TAUAER600=grid%tauaer3, TAUAER999=grid%tauaer4 & ! jcb 566 & ,GAER300=grid%gaer1, GAER400=grid%gaer2, GAER600=grid%gaer3, GAER999=grid%gaer4 & ! jcb 567 & ,WAER300=grid%waer1, WAER400=grid%waer2, WAER600=grid%waer3, WAER999=grid%waer4 & ! jcb 568 #endif 569 & ) 570 571 BENCH_END(rad_driver_tim) 572 573 !********* Surface driver 574 ! surface 575 576 BENCH_START(surf_driver_tim) 577 578 !----------------------------------------------------------------- 579 ! urban related variable are added to arguments of surface_driver 580 !----------------------------------------------------------------- 581 NUM_ROOF_LAYERS = grid%num_soil_layers !urban 582 NUM_WALL_LAYERS = grid%num_soil_layers !urban 583 NUM_ROAD_LAYERS = grid%num_soil_layers !urban 584 585 CALL wrf_debug ( 200 , ' call surface_driver' ) 586 CALL surface_driver( & 587 & ACSNOM=grid%acsnom ,ACSNOW=grid%acsnow ,AKHS=grid%akhs & 588 & ,AKMS=grid%akms ,ALBBCK=grid%albbck ,ALBEDO=grid%albedo & 589 & ,BR=br ,CANWAT=grid%canwat ,CHKLOWQ=chklowq & 590 & ,CT=grid%ct ,DT=grid%dt ,DX=grid%dx & 591 & ,DZ8W=dz8w ,DZS=grid%dzs ,FLHC=grid%flhc & 592 & ,FLQC=grid%flqc ,GLW=grid%glw ,GRDFLX=grid%grdflx & 593 & ,GSW=grid%gsw ,SWDOWN=grid%swdown ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx & 594 & ,HT=grid%ht ,IFSNOW=config_flags%ifsnow ,ISFFLX=config_flags%isfflx & 595 & ,ISLTYP=grid%isltyp ,ITIMESTEP=grid%itimestep & 596 & ,IVGTYP=grid%ivgtyp ,LH=grid%lh ,LOWLYR=grid%lowlyr & 597 & ,MAVAIL=grid%mavail ,NUM_SOIL_LAYERS=config_flags%num_soil_layers & 598 & ,P8W=p8w ,PBLH=grid%pblh ,PI_PHY=pi_phy & 599 & ,PSFC=grid%psfc ,PSHLTR=pshltr ,PSIH=psih & 600 & ,PSIM=psim ,P_PHY=p_phy ,Q10=q10 & 601 & ,Q2=grid%q2 ,QFX=grid%qfx ,QSFC=grid%qsfc & 602 & ,QSHLTR=qshltr ,QZ0=grid%qz0 ,RAINCV=grid%raincv & 603 & ,RA_LW_PHYSICS=config_flags%ra_lw_physics ,RHO=rho & 604 & ,RMOL=grid%rmol ,SFCEVP=grid%sfcevp ,SFCEXC=grid%sfcexc & 605 & ,SFCRUNOFF=grid%sfcrunoff & 606 & ,SF_SFCLAY_PHYSICS=config_flags%sf_sfclay_physics & 607 & ,SF_SURFACE_PHYSICS=config_flags%sf_surface_physics ,SH2O=grid%sh2o & 608 & ,SHDMAX=grid%shdmax ,SHDMIN=grid%shdmin ,SMOIS=grid%smois & 609 & ,SMSTAV=grid%smstav ,SMSTOT=grid%smstot ,SNOALB=grid%snoalb & 610 & ,SNOW=grid%snow ,SNOWC=grid%snowc ,SNOWH=grid%snowh & 611 & ,SST=grid%sst ,SST_UPDATE=grid%sst_update & 612 & ,STEPBL=grid%stepbl ,TH10=th10 ,TH2=grid%th2 & 613 & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 614 & ,TMN=grid%tmn ,TSHLTR=tshltr ,TSK=grid%tsk & 615 & ,TSLB=grid%tslb ,T_PHY=t_phy ,U10=grid%u10 & 616 & ,URATX=grid%uratx ,VRATX=grid%vratx ,TRATX=grid%tratx & 617 & ,UDRUNOFF=grid%udrunoff ,UST=grid%ust ,UZ0=grid%uz0 & 618 & ,U_FRAME=grid%u_frame ,U_PHY=u_phy ,V10=grid%v10 & 619 & ,VEGFRA=grid%vegfra ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame & 620 & ,V_PHY=v_phy ,WARM_RAIN=grid%warm_rain & 621 & ,WSPD=wspd ,XICE=grid%xice ,XLAND=grid%xland & 622 & ,Z0=grid%z0 ,Z=grid%em_z ,ZNT=grid%znt & 623 & ,ZS=grid%zs & 624 & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & !I urban 625 & ,OMG_URB2D=grid%omg_urb2d ,xlat_urb2d=grid%XLAT & !I urban 626 & ,NUM_ROOF_LAYERS=num_roof_layers & !I urban 627 & ,NUM_WALL_LAYERS=num_wall_layers & !I urban 628 & ,NUM_ROAD_LAYERS=num_road_layers & 629 & ,DZR=grid%dzr ,DZB=grid%dzb ,DZG=grid%dzg & !I urban 630 & ,TR_URB2D=grid%tr_urb2d ,TB_URB2D=grid%tb_urb2d & 631 & ,TG_URB2D=grid%tg_urb2d & !H urban 632 & ,TC_URB2D=grid%tc_urb2d ,QC_URB2D=grid%qc_urb2d & !H urban 633 & ,UC_URB2D=grid%uc_urb2d & !H urban 634 & ,XXXR_URB2D=grid%xxxr_urb2d & 635 & ,XXXB_URB2D=grid%xxxb_urb2d & !H urban 636 & ,XXXG_URB2D=grid%xxxg_urb2d & 637 & ,XXXC_URB2D=grid%xxxc_urb2d & !H urban 638 & ,TRL_URB3D=grid%trl_urb3d ,TBL_URB3D=grid%tbl_urb3d & !H urban 639 & ,TGL_URB3D=grid%tgl_urb3d & !H urban 640 & ,SH_URB2D=grid%sh_urb2d ,LH_URB2D=grid%lh_urb2d & 641 & ,G_URB2D=grid%g_urb2d & !H urban 642 & ,RN_URB2D=grid%rn_urb2d , TS_URB2D=grid%ts_urb2d & !H urban 643 & ,FRC_URB2D=grid%frc_urb2d & !H urban 644 & ,UTYPE_URB2D=grid%utype_urb2d & !H urban 645 & ,ucmcall=grid%ucmcall & !H urban 646 ! Indexes 647 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 648 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 649 & , I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 650 & , J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 651 & , KTS=k_start, KTE=min(k_end,kde-1) & 652 & , NUM_TILES=grid%num_tiles & 653 ! Optional 654 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 655 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 656 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 657 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 658 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 659 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 660 & ,CAPG=grid%capg, EMISS=grid%emiss, HOL=hol,MOL=grid%mol & 661 & ,RAINBL=grid%rainbl,SR=grid%em_sr & 662 & ,RAINNCV=grid%rainncv,REGIME=regime,T2=grid%t2,THC=grid%thc & 663 & ,QSG=grid%qsg,QVG=grid%qvg,QCG=grid%qcg,SOILT1=grid%soilt1,TSNAV=grid%tsnav & ! ruc lsm 664 & ,SMFR3D=grid%smfr3d,KEEPFR3DFLAG=grid%keepfr3dflag & ! ruc lsm 665 & ,POTEVP=grid%em_POTEVP, SNOPCX=grid%em_SNOPCX, SOILTB=grid%em_SOILTB & ! ruc lsm 666 & ) 667 BENCH_END(surf_driver_tim) 668 669 !********* 670 ! pbl 671 672 CALL wrf_debug ( 200 , ' call pbl_driver' ) 673 BENCH_START(pbl_driver_tim) 674 CALL pbl_driver( & 675 & AKHS=grid%akhs ,AKMS=grid%akms & 676 & ,BL_PBL_PHYSICS=config_flags%bl_pbl_physics & 677 & ,BR=br ,CHKLOWQ=chklowq ,CT=grid%ct & 678 & ,DT=grid%dt ,DX=grid%dx ,DZ8W=dz8w & 679 & ,EL_MYJ=grid%el_myj ,EXCH_H=grid%exch_h ,GRDFLX=grid%grdflx & 680 & ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx ,HT=grid%ht & 681 & ,ITIMESTEP=grid%itimestep ,KPBL=grid%kpbl & 682 & ,LH=grid%lh ,LOWLYR=grid%lowlyr ,P8W=p8w & 683 & ,PBLH=grid%pblh ,PI_PHY=pi_phy ,PSIH=psih & 684 & ,PSIM=psim ,P_PHY=p_phy ,QFX=grid%qfx & 685 & ,QSFC=grid%qsfc ,QZ0=grid%qz0 & 686 & ,RA_LW_PHYSICS=config_flags%ra_lw_physics & 687 & ,RHO=rho ,RQCBLTEN=grid%rqcblten ,RQIBLTEN=grid%rqiblten & 688 & ,RQVBLTEN=grid%rqvblten ,RTHBLTEN=grid%rthblten ,RUBLTEN=grid%rublten & 689 & ,RVBLTEN=grid%rvblten ,SNOW=grid%snow ,STEPBL=grid%stepbl & 690 & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 691 & ,TSK=grid%tsk ,T_PHY=t_phy ,UST=grid%ust & 692 & ,UZ0=grid%uz0 ,U_FRAME=grid%u_frame ,U_PHY=u_phy & 693 & ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame ,V_PHY=v_phy & 694 & ,WARM_RAIN=grid%warm_rain ,WSPD=wspd & 695 & ,XICE=grid%xice ,XLAND=grid%xland ,Z=grid%em_z & 696 & ,ZNT=grid%znt & 697 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 698 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 699 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 700 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 701 & ,KTS=k_start, KTE=min(k_end,kde-1) & 702 & ,NUM_TILES=grid%num_tiles & 703 ! optional 704 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 705 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 706 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 707 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 708 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 709 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 710 & ,HOL=HOL, MOL=grid%mol, REGIME=REGIME & 711 & ) 712 713 BENCH_END(pbl_driver_tim) 714 715 ! cumulus para. 716 717 CALL wrf_debug ( 200 , ' call cumulus_driver' ) 718 719 BENCH_START(cu_driver_tim) 720 CALL cumulus_driver( & 721 ! Prognostic variables 722 & U=u_phy ,V=v_phy ,TH=th_phy ,T=t_phy & 723 & ,W=grid%em_w_2 ,P=p_phy ,PI=pi_phy ,RHO=rho & 724 ! Other arguments 725 & ,ITIMESTEP=grid%itimestep ,DT=grid%dt ,DX=grid%dx & 726 & ,RAINC=grid%rainc ,RAINCV=grid%raincv ,NCA=grid%nca & 727 & ,HTOP=grid%cutop ,HBOT=grid%cubot ,KPBL=grid%kpbl & 728 & ,DZ8W=dz8w ,P8W=p8w & 729 & ,W0AVG=grid%w0avg ,STEPCU=grid%stepcu & 730 & ,CLDEFI=grid%cldefi ,LOWLYR=grid%lowlyr ,XLAND=grid%xland & 731 & ,APR_GR=grid%apr_gr ,APR_W=grid%apr_w ,APR_MC=grid%apr_mc & 732 & ,APR_ST=grid%apr_st ,APR_AS=grid%apr_as ,APR_CAPMA=grid%apr_capma & 733 & ,APR_CAPME=grid%apr_capme ,APR_CAPMI=grid%apr_capmi & 734 & ,MASS_FLUX=grid%mass_flux ,XF_ENS=grid%xf_ens & 735 & ,PR_ENS=grid%pr_ens ,HT=grid%ht & 736 & ,ENSDIM=config_flags%ensdim ,MAXIENS=config_flags%maxiens ,MAXENS=config_flags%maxens & 737 & ,MAXENS2=config_flags%maxens2 ,MAXENS3=config_flags%maxens3 & 738 & ,CU_ACT_FLAG=cu_act_flag ,WARM_RAIN=grid%warm_rain & 739 & ,GSW=grid%gsw & 740 ! Selection flag 741 & ,CU_PHYSICS=config_flags%cu_physics & 742 ! Dimension arguments 743 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 744 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 745 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 746 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 747 & ,KTS=k_start, KTE=min(k_end,kde-1) & 748 & ,NUM_TILES=grid%num_tiles & 749 ! Moisture tendency arguments 750 & ,RQVCUTEN=grid%rqvcuten , RQCCUTEN=grid%rqccuten & 751 & ,RQSCUTEN=grid%rqscuten , RQICUTEN=grid%rqicuten & 752 & ,RQRCUTEN=grid%rqrcuten , RQVBLTEN=grid%rqvblten & 753 & ,RQVFTEN=grid%rqvften & 754 ! Other tendency arguments 755 & ,RTHRATEN=grid%rthraten , RTHBLTEN=grid%rthblten & 756 & ,RTHCUTEN=grid%rthcuten , RTHFTEN=grid%rthften & 757 ! Moisture tracer arguments 758 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 759 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 760 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 761 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 762 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 763 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 764 #ifdef WRF_CHEM 765 & ,GD_CLOUD=grid%GD_CLOUD,GD_CLOUD2=grid%GD_CLOUD2 & 766 #endif 767 & ) 768 BENCH_END(cu_driver_tim) 769 770 ! fdda 771 772 CALL wrf_debug ( 200 , ' call fddagd_driver' ) 773 774 BENCH_START(fdda_driver_tim) 775 CALL fddagd_driver(itimestep=grid%itimestep,dt=grid%dt,xtime=grid%XTIME, & 776 id=grid%id, & 777 RUNDGDTEN=grid%rundgdten,RVNDGDTEN=grid%rvndgdten, & 778 RTHNDGDTEN=grid%rthndgdten,RQVNDGDTEN=grid%rqvndgdten, & 779 RMUNDGDTEN=grid%rmundgdten, & 780 u_ndg_old=fdda3d(ims,kms,jms,P_u_ndg_old), & 781 v_ndg_old=fdda3d(ims,kms,jms,P_v_ndg_old), & 782 t_ndg_old=fdda3d(ims,kms,jms,P_t_ndg_old), & 783 q_ndg_old=fdda3d(ims,kms,jms,P_q_ndg_old), & 784 mu_ndg_old=fdda2d(ims,1,jms,P_mu_ndg_old), & 785 u_ndg_new=fdda3d(ims,kms,jms,P_u_ndg_new), & 786 v_ndg_new=fdda3d(ims,kms,jms,P_v_ndg_new), & 787 t_ndg_new=fdda3d(ims,kms,jms,P_t_ndg_new), & 788 q_ndg_new=fdda3d(ims,kms,jms,P_q_ndg_new), & 789 mu_ndg_new=fdda2d(ims,1,jms,P_mu_ndg_new), & 790 u3d=grid%em_u_2,v3d=grid%em_v_2,th_phy=th_phy,rho=rho,moist=moist, & 791 p_phy=p_phy,pi_phy=pi_phy,p8w=p8w,t_phy=t_phy, & 792 dz8w=dz8w,z=grid%em_z,z_at_w=z_at_w, & 793 config_flags=config_flags,dx=grid%DX,n_moist=num_3d_m, & 794 STEPFG=grid%STEPFG, & 795 pblh=grid%pblh,ht=grid%ht, & 796 IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 797 ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 798 ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 799 ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 800 ,KTS=k_start, KTE=min(k_end,kde-1) & 801 , num_tiles=grid%num_tiles ) 802 BENCH_END(fdda_driver_tim) 485 !!!******MARS MARS 486 !!!******MARS MARS 487 !!!******MARS MARS 488 489 490 ! CALL wrf_debug ( 200 , ' call radiation_driver' ) 491 !BENCH_START(rad_driver_tim) 492 ! 493 ! CALL radiation_driver( & 494 ! & ACFRCV=grid%acfrcv ,ACFRST=grid%acfrst ,ALBEDO=grid%albedo & 495 ! & ,CFRACH=grid%cfrach ,CFRACL=grid%cfracl ,CFRACM=grid%cfracm & 496 ! & ,CUPPT=grid%cuppt ,CZMEAN=grid%czmean ,DT=grid%dt & 497 ! & ,DZ8W=dz8w ,EMISS=grid%emiss ,GLW=grid%glw & 498 ! & ,GMT=grid%gmt ,GSW=grid%gsw ,HBOT=grid%hbot & 499 ! & ,HTOP=grid%htop ,HBOTR=grid%hbotr, HTOPR=grid%htopr ,ICLOUD=config_flags%icloud & 500 ! & ,ITIMESTEP=grid%itimestep,JULDAY=grid%julday, JULIAN=grid%julian & 501 ! & ,JULYR=grid%julyr ,LW_PHYSICS=config_flags%ra_lw_physics & 502 ! & ,NCFRCV=grid%ncfrcv ,NCFRST=grid%ncfrst ,NPHS=1 & 503 ! & ,P8W=p8w ,P=p_phy ,PI=pi_phy & 504 ! & ,RADT=grid%radt ,RA_CALL_OFFSET=grid%ra_call_offset & 505 ! & ,RHO=rho ,RLWTOA=grid%rlwtoa & 506 ! & ,RSWTOA=grid%rswtoa ,RTHRATEN=grid%rthraten & 507 ! & ,RTHRATENLW=grid%rthratenlw & 508 ! & ,RTHRATENSW=grid%rthratensw ,SNOW=grid%snow & 509 ! & ,STEPRA=grid%stepra ,SWDOWN=grid%swdown ,SWDOWNC=grid%swdownc & 510 ! & ,SW_PHYSICS=config_flags%ra_sw_physics ,T8W=t8w & 511 ! & ,T=t_phy ,TAUCLDC=grid%taucldc ,TAUCLDI=grid%taucldi & 512 ! & ,TSK=grid%tsk ,VEGFRA=grid%vegfra ,WARM_RAIN=grid%warm_rain & 513 ! & ,XICE=grid%xice & 514 ! & ,XLAND=grid%xland ,XLAT=grid%xlat ,XLONG=grid%xlong & 515 !!Optional urban 516 ! & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & 517 ! & ,OMG_URB2D=grid%omg_urb2d & 518 !! 519 ! & ,Z=grid%em_z & 520 ! & ,LEVSIZ=grid%levsiz, N_OZMIXM=num_ozmixm & 521 ! & ,N_AEROSOLC=num_aerosolc & 522 ! & ,PAERLEV=grid%paerlev & 523 ! & ,CAM_ABS_DIM1=grid%cam_abs_dim1, CAM_ABS_DIM2=grid%cam_abs_dim2 & 524 ! & ,CAM_ABS_FREQ_S=grid%cam_abs_freq_s & 525 ! & ,XTIME=grid%xtime & 526 ! ! indexes 527 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 528 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 529 ! & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 530 ! & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 531 ! & ,kts=k_start, kte=min(k_end,kde-1) & 532 ! & ,num_tiles=grid%num_tiles & 533 ! ! Optional 534 ! & , CLDFRA=grid%cldfra & 535 ! & , PB=grid%em_pb & 536 ! & , F_ICE_PHY=grid%f_ice_phy,F_RAIN_PHY=grid%f_rain_phy & 537 ! & , QV=moist(ims,kms,jms,P_QV), F_QV=F_QV & 538 ! & , QC=moist(ims,kms,jms,P_QC), F_QC=F_QC & 539 ! & , QR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 540 ! & , QI=moist(ims,kms,jms,P_QI), F_QI=F_QI & 541 ! & , QS=moist(ims,kms,jms,P_QS), F_QS=F_QS & 542 ! & , QG=moist(ims,kms,jms,P_QG), F_QG=F_QG & 543 !#ifdef ACFLUX 544 ! & ,ACSWUPT=acswupt ,ACSWUPTC=acswuptc & 545 ! & ,ACSWDNT=acswdnt ,ACSWDNTC=acswdntc & 546 ! & ,ACSWUPB=acswupb ,ACSWUPBC=acswupbc & 547 ! & ,ACSWDNB=acswdnb ,ACSWDNBC=acswdnbc & 548 ! & ,ACLWUPT=aclwupt ,ACLWUPTC=aclwuptc & 549 ! & ,ACLWDNT=aclwdnt ,ACLWDNTC=aclwdntc & 550 ! & ,ACLWUPB=aclwupb ,ACLWUPBC=aclwupbc & 551 ! & ,ACLWDNB=aclwdnb ,ACLWDNBC=aclwdnbc & 552 ! & ,SWUPT=swupt ,SWUPTC=swuptc & 553 ! & ,SWDNT=swdnt ,SWDNTC=swdntc & 554 ! & ,SWUPB=swupb ,SWUPBC=swupbc & 555 ! & ,SWDNB=swdnb ,SWDNBC=swdnbc & 556 ! & ,LWUPT=lwupt ,LWUPTC=lwuptc & 557 ! & ,LWDNT=lwdnt ,LWDNTC=lwdntc & 558 ! & ,LWUPB=lwupb ,LWUPBC=lwupbc & 559 ! & ,LWDNB=lwdnb ,LWDNBC=lwdnbc & 560 !#endif 561 ! & ,LWCF=grid%lwcf & 562 ! & ,SWCF=grid%swcf & 563 ! & ,OLR=grid%olr & 564 ! & ,OZMIXM=grid%ozmixm, PIN=grid%pin & 565 ! & ,M_PS_1=grid%m_ps_1, M_PS_2=grid%m_ps_2, AEROSOLC_1=grid%aerosolc_1 & 566 ! & ,AEROSOLC_2=grid%aerosolc_2, M_HYBI0=grid%m_hybi & 567 ! & ,ABSTOT=grid%abstot, ABSNXT=grid%absnxt, EMSTOT=grid%emstot & 568 !#ifdef WRF_CHEM 569 ! & ,QC_ADJUST=grid%GD_CLOUD , QI_ADJUST=grid%GD_CLOUD2 & 570 ! & ,PM2_5_DRY=grid%pm2_5_dry, PM2_5_WATER=grid%pm2_5_water & 571 ! & ,PM2_5_DRY_EC=grid%pm2_5_dry_ec & 572 ! & ,TAUAER300=grid%tauaer1, TAUAER400=grid%tauaer2 & ! jcb 573 ! & ,TAUAER600=grid%tauaer3, TAUAER999=grid%tauaer4 & ! jcb 574 ! & ,GAER300=grid%gaer1, GAER400=grid%gaer2, GAER600=grid%gaer3, GAER999=grid%gaer4 & ! jcb 575 ! & ,WAER300=grid%waer1, WAER400=grid%waer2, WAER600=grid%waer3, WAER999=grid%waer4 & ! jcb 576 !#endif 577 ! & ) 578 ! 579 !BENCH_END(rad_driver_tim) 580 ! 581 !!********* Surface driver 582 !! surface 583 ! 584 !BENCH_START(surf_driver_tim) 585 ! 586 !!----------------------------------------------------------------- 587 !! urban related variable are added to arguments of surface_driver 588 !!----------------------------------------------------------------- 589 ! NUM_ROOF_LAYERS = grid%num_soil_layers !urban 590 ! NUM_WALL_LAYERS = grid%num_soil_layers !urban 591 ! NUM_ROAD_LAYERS = grid%num_soil_layers !urban 592 ! 593 ! CALL wrf_debug ( 200 , ' call surface_driver' ) 594 ! CALL surface_driver( & 595 ! & ACSNOM=grid%acsnom ,ACSNOW=grid%acsnow ,AKHS=grid%akhs & 596 ! & ,AKMS=grid%akms ,ALBBCK=grid%albbck ,ALBEDO=grid%albedo & 597 ! & ,BR=br ,CANWAT=grid%canwat ,CHKLOWQ=chklowq & 598 ! & ,CT=grid%ct ,DT=grid%dt ,DX=grid%dx & 599 ! & ,DZ8W=dz8w ,DZS=grid%dzs ,FLHC=grid%flhc & 600 ! & ,FLQC=grid%flqc ,GLW=grid%glw ,GRDFLX=grid%grdflx & 601 ! & ,GSW=grid%gsw ,SWDOWN=grid%swdown ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx & 602 ! & ,HT=grid%ht ,IFSNOW=config_flags%ifsnow ,ISFFLX=config_flags%isfflx & 603 ! & ,ISLTYP=grid%isltyp ,ITIMESTEP=grid%itimestep & 604 ! & ,IVGTYP=grid%ivgtyp ,LH=grid%lh ,LOWLYR=grid%lowlyr & 605 ! & ,MAVAIL=grid%mavail ,NUM_SOIL_LAYERS=config_flags%num_soil_layers & 606 ! & ,P8W=p8w ,PBLH=grid%pblh ,PI_PHY=pi_phy & 607 ! & ,PSFC=grid%psfc ,PSHLTR=pshltr ,PSIH=psih & 608 ! & ,PSIM=psim ,P_PHY=p_phy ,Q10=q10 & 609 ! & ,Q2=grid%q2 ,QFX=grid%qfx ,QSFC=grid%qsfc & 610 ! & ,QSHLTR=qshltr ,QZ0=grid%qz0 ,RAINCV=grid%raincv & 611 ! & ,RA_LW_PHYSICS=config_flags%ra_lw_physics ,RHO=rho & 612 ! & ,RMOL=grid%rmol ,SFCEVP=grid%sfcevp ,SFCEXC=grid%sfcexc & 613 ! & ,SFCRUNOFF=grid%sfcrunoff & 614 ! & ,SF_SFCLAY_PHYSICS=config_flags%sf_sfclay_physics & 615 ! & ,SF_SURFACE_PHYSICS=config_flags%sf_surface_physics ,SH2O=grid%sh2o & 616 ! & ,SHDMAX=grid%shdmax ,SHDMIN=grid%shdmin ,SMOIS=grid%smois & 617 ! & ,SMSTAV=grid%smstav ,SMSTOT=grid%smstot ,SNOALB=grid%snoalb & 618 ! & ,SNOW=grid%snow ,SNOWC=grid%snowc ,SNOWH=grid%snowh & 619 ! & ,SST=grid%sst ,SST_UPDATE=grid%sst_update & 620 ! & ,STEPBL=grid%stepbl ,TH10=th10 ,TH2=grid%th2 & 621 ! & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 622 ! & ,TMN=grid%tmn ,TSHLTR=tshltr ,TSK=grid%tsk & 623 ! & ,TSLB=grid%tslb ,T_PHY=t_phy ,U10=grid%u10 & 624 ! & ,URATX=grid%uratx ,VRATX=grid%vratx ,TRATX=grid%tratx & 625 ! & ,UDRUNOFF=grid%udrunoff ,UST=grid%ust ,UZ0=grid%uz0 & 626 ! & ,U_FRAME=grid%u_frame ,U_PHY=u_phy ,V10=grid%v10 & 627 ! & ,VEGFRA=grid%vegfra ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame & 628 ! & ,V_PHY=v_phy ,WARM_RAIN=grid%warm_rain & 629 ! & ,WSPD=wspd ,XICE=grid%xice ,XLAND=grid%xland & 630 ! & ,Z0=grid%z0 ,Z=grid%em_z ,ZNT=grid%znt & 631 ! & ,ZS=grid%zs & 632 ! & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & !I urban 633 ! & ,OMG_URB2D=grid%omg_urb2d ,xlat_urb2d=grid%XLAT & !I urban 634 ! & ,NUM_ROOF_LAYERS=num_roof_layers & !I urban 635 ! & ,NUM_WALL_LAYERS=num_wall_layers & !I urban 636 ! & ,NUM_ROAD_LAYERS=num_road_layers & 637 ! & ,DZR=grid%dzr ,DZB=grid%dzb ,DZG=grid%dzg & !I urban 638 ! & ,TR_URB2D=grid%tr_urb2d ,TB_URB2D=grid%tb_urb2d & 639 ! & ,TG_URB2D=grid%tg_urb2d & !H urban 640 ! & ,TC_URB2D=grid%tc_urb2d ,QC_URB2D=grid%qc_urb2d & !H urban 641 ! & ,UC_URB2D=grid%uc_urb2d & !H urban 642 ! & ,XXXR_URB2D=grid%xxxr_urb2d & 643 ! & ,XXXB_URB2D=grid%xxxb_urb2d & !H urban 644 ! & ,XXXG_URB2D=grid%xxxg_urb2d & 645 ! & ,XXXC_URB2D=grid%xxxc_urb2d & !H urban 646 ! & ,TRL_URB3D=grid%trl_urb3d ,TBL_URB3D=grid%tbl_urb3d & !H urban 647 ! & ,TGL_URB3D=grid%tgl_urb3d & !H urban 648 ! & ,SH_URB2D=grid%sh_urb2d ,LH_URB2D=grid%lh_urb2d & 649 ! & ,G_URB2D=grid%g_urb2d & !H urban 650 ! & ,RN_URB2D=grid%rn_urb2d , TS_URB2D=grid%ts_urb2d & !H urban 651 ! & ,FRC_URB2D=grid%frc_urb2d & !H urban 652 ! & ,UTYPE_URB2D=grid%utype_urb2d & !H urban 653 ! & ,ucmcall=grid%ucmcall & !H urban 654 ! ! Indexes 655 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 656 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 657 ! & , I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 658 ! & , J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 659 ! & , KTS=k_start, KTE=min(k_end,kde-1) & 660 ! & , NUM_TILES=grid%num_tiles & 661 ! ! Optional 662 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 663 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 664 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 665 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 666 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 667 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 668 ! & ,CAPG=grid%capg, EMISS=grid%emiss, HOL=hol,MOL=grid%mol & 669 ! & ,RAINBL=grid%rainbl,SR=grid%em_sr & 670 ! & ,RAINNCV=grid%rainncv,REGIME=regime,T2=grid%t2,THC=grid%thc & 671 ! & ,QSG=grid%qsg,QVG=grid%qvg,QCG=grid%qcg,SOILT1=grid%soilt1,TSNAV=grid%tsnav & ! ruc lsm 672 ! & ,SMFR3D=grid%smfr3d,KEEPFR3DFLAG=grid%keepfr3dflag & ! ruc lsm 673 ! & ,POTEVP=grid%em_POTEVP, SNOPCX=grid%em_SNOPCX, SOILTB=grid%em_SOILTB & ! ruc lsm 674 ! & ) 675 !BENCH_END(surf_driver_tim) 676 ! 677 !!********* 678 !! pbl 679 ! 680 ! CALL wrf_debug ( 200 , ' call pbl_driver' ) 681 !BENCH_START(pbl_driver_tim) 682 ! CALL pbl_driver( & 683 ! & AKHS=grid%akhs ,AKMS=grid%akms & 684 ! & ,BL_PBL_PHYSICS=config_flags%bl_pbl_physics & 685 ! & ,BR=br ,CHKLOWQ=chklowq ,CT=grid%ct & 686 ! & ,DT=grid%dt ,DX=grid%dx ,DZ8W=dz8w & 687 ! & ,EL_MYJ=grid%el_myj ,EXCH_H=grid%exch_h ,GRDFLX=grid%grdflx & 688 ! & ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx ,HT=grid%ht & 689 ! & ,ITIMESTEP=grid%itimestep ,KPBL=grid%kpbl & 690 ! & ,LH=grid%lh ,LOWLYR=grid%lowlyr ,P8W=p8w & 691 ! & ,PBLH=grid%pblh ,PI_PHY=pi_phy ,PSIH=psih & 692 ! & ,PSIM=psim ,P_PHY=p_phy ,QFX=grid%qfx & 693 ! & ,QSFC=grid%qsfc ,QZ0=grid%qz0 & 694 ! & ,RA_LW_PHYSICS=config_flags%ra_lw_physics & 695 ! & ,RHO=rho ,RQCBLTEN=grid%rqcblten ,RQIBLTEN=grid%rqiblten & 696 ! & ,RQVBLTEN=grid%rqvblten ,RTHBLTEN=grid%rthblten ,RUBLTEN=grid%rublten & 697 ! & ,RVBLTEN=grid%rvblten ,SNOW=grid%snow ,STEPBL=grid%stepbl & 698 ! & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 699 ! & ,TSK=grid%tsk ,T_PHY=t_phy ,UST=grid%ust & 700 ! & ,UZ0=grid%uz0 ,U_FRAME=grid%u_frame ,U_PHY=u_phy & 701 ! & ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame ,V_PHY=v_phy & 702 ! & ,WARM_RAIN=grid%warm_rain ,WSPD=wspd & 703 ! & ,XICE=grid%xice ,XLAND=grid%xland ,Z=grid%em_z & 704 ! & ,ZNT=grid%znt & 705 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 706 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 707 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 708 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 709 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 710 ! & ,NUM_TILES=grid%num_tiles & 711 ! ! optional 712 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 713 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 714 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 715 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 716 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 717 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 718 ! & ,HOL=HOL, MOL=grid%mol, REGIME=REGIME & 719 ! & ) 720 ! 721 !BENCH_END(pbl_driver_tim) 722 ! 723 !! cumulus para. 724 ! 725 ! CALL wrf_debug ( 200 , ' call cumulus_driver' ) 726 ! 727 !BENCH_START(cu_driver_tim) 728 ! CALL cumulus_driver( & 729 ! ! Prognostic variables 730 ! & U=u_phy ,V=v_phy ,TH=th_phy ,T=t_phy & 731 ! & ,W=grid%em_w_2 ,P=p_phy ,PI=pi_phy ,RHO=rho & 732 ! ! Other arguments 733 ! & ,ITIMESTEP=grid%itimestep ,DT=grid%dt ,DX=grid%dx & 734 ! & ,RAINC=grid%rainc ,RAINCV=grid%raincv ,NCA=grid%nca & 735 ! & ,HTOP=grid%cutop ,HBOT=grid%cubot ,KPBL=grid%kpbl & 736 ! & ,DZ8W=dz8w ,P8W=p8w & 737 ! & ,W0AVG=grid%w0avg ,STEPCU=grid%stepcu & 738 ! & ,CLDEFI=grid%cldefi ,LOWLYR=grid%lowlyr ,XLAND=grid%xland & 739 ! & ,APR_GR=grid%apr_gr ,APR_W=grid%apr_w ,APR_MC=grid%apr_mc & 740 ! & ,APR_ST=grid%apr_st ,APR_AS=grid%apr_as ,APR_CAPMA=grid%apr_capma & 741 ! & ,APR_CAPME=grid%apr_capme ,APR_CAPMI=grid%apr_capmi & 742 ! & ,MASS_FLUX=grid%mass_flux ,XF_ENS=grid%xf_ens & 743 ! & ,PR_ENS=grid%pr_ens ,HT=grid%ht & 744 ! & ,ENSDIM=config_flags%ensdim ,MAXIENS=config_flags%maxiens ,MAXENS=config_flags%maxens & 745 ! & ,MAXENS2=config_flags%maxens2 ,MAXENS3=config_flags%maxens3 & 746 ! & ,CU_ACT_FLAG=cu_act_flag ,WARM_RAIN=grid%warm_rain & 747 ! & ,GSW=grid%gsw & 748 ! ! Selection flag 749 ! & ,CU_PHYSICS=config_flags%cu_physics & 750 ! ! Dimension arguments 751 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 752 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 753 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 754 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 755 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 756 ! & ,NUM_TILES=grid%num_tiles & 757 ! ! Moisture tendency arguments 758 ! & ,RQVCUTEN=grid%rqvcuten , RQCCUTEN=grid%rqccuten & 759 ! & ,RQSCUTEN=grid%rqscuten , RQICUTEN=grid%rqicuten & 760 ! & ,RQRCUTEN=grid%rqrcuten , RQVBLTEN=grid%rqvblten & 761 ! & ,RQVFTEN=grid%rqvften & 762 ! ! Other tendency arguments 763 ! & ,RTHRATEN=grid%rthraten , RTHBLTEN=grid%rthblten & 764 ! & ,RTHCUTEN=grid%rthcuten , RTHFTEN=grid%rthften & 765 ! ! Moisture tracer arguments 766 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 767 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 768 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 769 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 770 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 771 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 772 !#ifdef WRF_CHEM 773 ! & ,GD_CLOUD=grid%GD_CLOUD,GD_CLOUD2=grid%GD_CLOUD2 & 774 !#endif 775 ! & ) 776 !BENCH_END(cu_driver_tim) 777 ! 778 !! fdda 779 ! 780 ! CALL wrf_debug ( 200 , ' call fddagd_driver' ) 781 ! 782 !BENCH_START(fdda_driver_tim) 783 ! CALL fddagd_driver(itimestep=grid%itimestep,dt=grid%dt,xtime=grid%XTIME, & 784 ! id=grid%id, & 785 ! RUNDGDTEN=grid%rundgdten,RVNDGDTEN=grid%rvndgdten, & 786 ! RTHNDGDTEN=grid%rthndgdten,RQVNDGDTEN=grid%rqvndgdten, & 787 ! RMUNDGDTEN=grid%rmundgdten, & 788 ! u_ndg_old=fdda3d(ims,kms,jms,P_u_ndg_old), & 789 ! v_ndg_old=fdda3d(ims,kms,jms,P_v_ndg_old), & 790 ! t_ndg_old=fdda3d(ims,kms,jms,P_t_ndg_old), & 791 ! q_ndg_old=fdda3d(ims,kms,jms,P_q_ndg_old), & 792 ! mu_ndg_old=fdda2d(ims,1,jms,P_mu_ndg_old), & 793 ! u_ndg_new=fdda3d(ims,kms,jms,P_u_ndg_new), & 794 ! v_ndg_new=fdda3d(ims,kms,jms,P_v_ndg_new), & 795 ! t_ndg_new=fdda3d(ims,kms,jms,P_t_ndg_new), & 796 ! q_ndg_new=fdda3d(ims,kms,jms,P_q_ndg_new), & 797 ! mu_ndg_new=fdda2d(ims,1,jms,P_mu_ndg_new), & 798 ! u3d=grid%em_u_2,v3d=grid%em_v_2,th_phy=th_phy,rho=rho,moist=moist, & 799 ! p_phy=p_phy,pi_phy=pi_phy,p8w=p8w,t_phy=t_phy, & 800 ! dz8w=dz8w,z=grid%em_z,z_at_w=z_at_w, & 801 ! config_flags=config_flags,dx=grid%DX,n_moist=num_3d_m, & 802 ! STEPFG=grid%STEPFG, & 803 ! pblh=grid%pblh,ht=grid%ht, & 804 ! IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 805 ! ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 806 ! ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 807 ! ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 808 ! ,KTS=k_start, KTE=min(k_end,kde-1) & 809 ! , num_tiles=grid%num_tiles ) 810 !BENCH_END(fdda_driver_tim) 803 811 804 812 … … 1259 1267 ENDIF 1260 1268 1261 # ifdef DM_PARALLEL1262 # include "HALO_OBS_NUDGE.inc"1263 #endif1264 ! ***********************************************************************1265 ! This section for obs nudging1266 !$OMP PARALLEL DO &1267 !$OMP PRIVATE ( ij )1268 1269 DO ij = 1 , grid%num_tiles1270 1271 CALL fddaobs_driver (grid%grid_id, model_config_rec%grid_id, &1272 model_config_rec%parent_id, config_flags%restart, &1273 grid%obs_nudge_opt, &1274 grid%obs_ipf_errob, &1275 grid%obs_ipf_nudob, &1276 grid%fdda_start, &1277 grid%fdda_end, &1278 grid%obs_nudge_wind, &1279 grid%obs_nudge_temp, &1280 grid%obs_nudge_mois, &1281 grid%obs_nudge_pstr, &1282 grid%obs_coef_wind, &1283 grid%obs_coef_temp, &1284 grid%obs_coef_mois, &1285 grid%obs_coef_pstr, &1286 grid%obs_rinxy, &1287 grid%obs_rinsig, &1288 grid%obs_twindo, &1289 grid%obs_npfi, &1290 grid%obs_ionf, &1291 grid%obs_idynin, &1292 grid%obs_dtramp, &1293 model_config_rec%cen_lat(1), &1294 model_config_rec%cen_lon(1), &1295 config_flags%truelat1, &1296 config_flags%truelat2, &1297 config_flags%map_proj, &1298 model_config_rec%i_parent_start, &1299 model_config_rec%j_parent_start, &1300 grid%parent_grid_ratio, &1301 grid%max_dom, grid%itimestep, &1302 grid%dt, grid%gmt, grid%julday, grid%fdob, &1303 grid%max_obs, &1304 model_config_rec%nobs_ndg_vars, &1305 model_config_rec%nobs_err_flds, &1306 grid%fdob%nstat, grid%fdob%varobs, grid%fdob%errf, &1307 grid%dx, grid%KPBL,grid%HT, &1308 grid%em_mut, grid%em_muu, grid%em_muv, &1309 grid%msft, grid%msfu, grid%msfv, &1310 p_phy, t_tendf, t0, &1311 grid%em_u_2, grid%em_v_2, grid%em_t_2, &1312 moist(:,:,:,P_QV), &1313 grid%em_pb, grid%p_top, grid%em_p, &1314 grid%uratx, grid%vratx, grid%tratx, &1315 ru_tendf, rv_tendf, &1316 moist_tend(:,:,:,P_QV), grid%em_obs_savwt, &1317 ids,ide, jds,jde, kds,kde, &1318 ims,ime, jms,jme, kms,kme, &1319 grid%i_start(ij), min(grid%i_end(ij),ide-1), &1320 grid%j_start(ij), min(grid%j_end(ij),jde-1), &1321 k_start , min(k_end,kde-1) )1322 1323 ENDDO1324 1325 !$OMP END PARALLEL DO1326 ! 1327 ! ***********************************************************************1269 !# ifdef DM_PARALLEL 1270 !# include "HALO_OBS_NUDGE.inc" 1271 !#endif 1272 !!*********************************************************************** 1273 !! This section for obs nudging 1274 ! !$OMP PARALLEL DO & 1275 ! !$OMP PRIVATE ( ij ) 1276 ! 1277 ! DO ij = 1 , grid%num_tiles 1278 ! 1279 ! CALL fddaobs_driver (grid%grid_id, model_config_rec%grid_id, & 1280 ! model_config_rec%parent_id, config_flags%restart, & 1281 ! grid%obs_nudge_opt, & 1282 ! grid%obs_ipf_errob, & 1283 ! grid%obs_ipf_nudob, & 1284 ! grid%fdda_start, & 1285 ! grid%fdda_end, & 1286 ! grid%obs_nudge_wind, & 1287 ! grid%obs_nudge_temp, & 1288 ! grid%obs_nudge_mois, & 1289 ! grid%obs_nudge_pstr, & 1290 ! grid%obs_coef_wind, & 1291 ! grid%obs_coef_temp, & 1292 ! grid%obs_coef_mois, & 1293 ! grid%obs_coef_pstr, & 1294 ! grid%obs_rinxy, & 1295 ! grid%obs_rinsig, & 1296 ! grid%obs_twindo, & 1297 ! grid%obs_npfi, & 1298 ! grid%obs_ionf, & 1299 ! grid%obs_idynin, & 1300 ! grid%obs_dtramp, & 1301 ! model_config_rec%cen_lat(1), & 1302 ! model_config_rec%cen_lon(1), & 1303 ! config_flags%truelat1, & 1304 ! config_flags%truelat2, & 1305 ! config_flags%map_proj, & 1306 ! model_config_rec%i_parent_start, & 1307 ! model_config_rec%j_parent_start, & 1308 ! grid%parent_grid_ratio, & 1309 ! grid%max_dom, grid%itimestep, & 1310 ! grid%dt, grid%gmt, grid%julday, grid%fdob, & 1311 ! grid%max_obs, & 1312 ! model_config_rec%nobs_ndg_vars, & 1313 ! model_config_rec%nobs_err_flds, & 1314 ! grid%fdob%nstat, grid%fdob%varobs, grid%fdob%errf, & 1315 ! grid%dx, grid%KPBL,grid%HT, & 1316 ! grid%em_mut, grid%em_muu, grid%em_muv, & 1317 ! grid%msft, grid%msfu, grid%msfv, & 1318 ! p_phy, t_tendf, t0, & 1319 ! grid%em_u_2, grid%em_v_2, grid%em_t_2, & 1320 ! moist(:,:,:,P_QV), & 1321 ! grid%em_pb, grid%p_top, grid%em_p, & 1322 ! grid%uratx, grid%vratx, grid%tratx, & 1323 ! ru_tendf, rv_tendf, & 1324 ! moist_tend(:,:,:,P_QV), grid%em_obs_savwt, & 1325 ! ids,ide, jds,jde, kds,kde, & 1326 ! ims,ime, jms,jme, kms,kme, & 1327 ! grid%i_start(ij), min(grid%i_end(ij),ide-1), & 1328 ! grid%j_start(ij), min(grid%j_end(ij),jde-1), & 1329 ! k_start , min(k_end,kde-1) ) 1330 ! 1331 ! ENDDO 1332 ! 1333 ! !$OMP END PARALLEL DO 1334 !! 1335 !!*********************************************************************** 1328 1336 1329 1337 END IF rk_step_is_one … … 3091 3099 !</DESCRIPTION> 3092 3100 3093 IF (config_flags%mp_physics /= 0) then 3094 3095 IF( config_flags%specified .or. config_flags%nested ) THEN 3096 sz = grid%spec_zone 3097 ELSE 3098 sz = 0 3099 ENDIF 3100 3101 !$OMP PARALLEL DO & 3102 !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3103 3104 scalar_tile_loop_1a: DO ij = 1 , grid%num_tiles 3105 3106 IF ( config_flags%periodic_x ) THEN 3107 its = max(grid%i_start(ij),ids) 3108 ite = min(grid%i_end(ij),ide-1) 3109 ELSE 3110 its = max(grid%i_start(ij),ids+sz) 3111 ite = min(grid%i_end(ij),ide-1-sz) 3112 ENDIF 3113 jts = max(grid%j_start(ij),jds+sz) 3114 jte = min(grid%j_end(ij),jde-1-sz) 3115 3116 CALL wrf_debug ( 200 , ' call moist_physics_prep' ) 3117 BENCH_START(moist_physics_prep_tim) 3118 CALL moist_physics_prep_em( grid%em_t_2, grid%em_t_1, t0, rho, & 3119 grid%em_al, grid%em_alb, grid%em_p, p8w, p0, grid%em_pb, & 3120 grid%em_ph_2, grid%em_phb, th_phy, pi_phy, p_phy, & 3121 grid%em_z, z_at_w, dz8w, & 3122 dtm, grid%h_diabatic, & 3123 config_flags,grid%em_fnm, grid%em_fnp, & 3124 ids, ide, jds, jde, kds, kde, & 3125 ims, ime, jms, jme, kms, kme, & 3126 its, ite, jts, jte, & 3127 k_start , k_end ) 3128 BENCH_END(moist_physics_prep_tim) 3129 END DO scalar_tile_loop_1a 3130 !$OMP END PARALLEL DO 3131 3132 CALL wrf_debug ( 200 , ' call microphysics_driver' ) 3133 3134 grid%em_sr = 0. 3135 specified_bdy = config_flags%specified .OR. config_flags%nested 3136 channel_bdy = config_flags%specified .AND. config_flags%periodic_x 3137 3138 #if 0 3139 BENCH_START(microswap_1) 3140 ! for load balancing; communication to redistribute the points 3141 IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3142 #include "SWAP_ETAMP_NEW.inc" 3143 ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3144 #include "SWAP_WSM3.inc" 3145 ENDIF 3146 BENCH_END(microswap_1) 3147 #endif 3148 3149 BENCH_START(micro_driver_tim) 3150 3151 CALL microphysics_driver( & 3152 & DT=dtm ,DX=grid%dx ,DY=grid%dy & 3153 & ,DZ8W=dz8w ,F_ICE_PHY=grid%f_ice_phy & 3154 & ,ITIMESTEP=grid%itimestep ,LOWLYR=grid%lowlyr & 3155 & ,P8W=p8w ,P=p_phy ,PI_PHY=pi_phy & 3156 & ,RHO=rho ,SPEC_ZONE=grid%spec_zone & 3157 & ,SR=grid%em_sr ,TH=th_phy & 3158 & ,WARM_RAIN=grid%warm_rain ,XLAND=grid%xland & 3159 & ,SPECIFIED=specified_bdy, CHANNEL_SWITCH=channel_bdy & 3160 & ,F_RAIN_PHY=grid%f_rain_phy & 3161 & ,F_RIMEF_PHY=grid%f_rimef_phy & 3162 & ,MP_PHYSICS=config_flags%mp_physics & 3163 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3164 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3165 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3166 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3167 & ,KTS=k_start, KTE=min(k_end,kde-1) & 3168 & ,NUM_TILES=grid%num_tiles & 3169 ! Optional 3170 & , RAINNC=grid%rainnc, RAINNCV=grid%rainncv & 3171 & , SNOWNC=grid%snownc, SNOWNCV=grid%snowncv & 3172 & , GRAUPELNC=grid%graupelnc, GRAUPELNCV=grid%graupelncv & 3173 & , W=grid%em_w_2, Z=grid%em_z, HT=grid%ht & 3174 & , MP_RESTART_STATE=grid%mp_restart_state & 3175 & , TBPVS_STATE=grid%tbpvs_state & ! etampnew 3176 & , TBPVS0_STATE=grid%tbpvs0_state & ! etampnew 3177 & , QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 3178 & , QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 3179 & , QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 3180 & , QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 3181 & , QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 3182 & , QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 3183 & , QNI_CURR=scalar(ims,kms,jms,P_QNI), F_QNI=F_QNI & 3184 & , QT_CURR=scalar(ims,kms,jms,P_QT), F_QT=F_QT & 3185 ) 3186 BENCH_END(micro_driver_tim) 3187 3188 #if 0 3189 BENCH_START(microswap_2) 3190 ! for load balancing; communication to redistribute the points 3191 IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3192 #include "SWAP_ETAMP_NEW.inc" 3193 ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3194 #include "SWAP_WSM3.inc" 3195 ENDIF 3196 BENCH_END(microswap_2) 3197 #endif 3198 3199 CALL wrf_debug ( 200 , ' call moist_physics_finish' ) 3200 BENCH_START(moist_phys_end_tim) 3201 !$OMP PARALLEL DO & 3202 !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3203 3204 scalar_tile_loop_1b: DO ij = 1 , grid%num_tiles 3205 3206 IF ( config_flags%periodic_x ) THEN 3207 its = max(grid%i_start(ij),ids) 3208 ite = min(grid%i_end(ij),ide-1) 3209 ELSE 3210 its = max(grid%i_start(ij),ids+sz) 3211 ite = min(grid%i_end(ij),ide-1-sz) 3212 ENDIF 3213 jts = max(grid%j_start(ij),jds+sz) 3214 jte = min(grid%j_end(ij),jde-1-sz) 3215 3216 CALL microphysics_zero_out ( & 3217 moist , num_moist , config_flags , & 3218 ids, ide, jds, jde, kds, kde, & 3219 ims, ime, jms, jme, kms, kme, & 3220 its, ite, jts, jte, & 3221 k_start , k_end ) 3222 3223 CALL moist_physics_finish_em( grid%em_t_2, grid%em_t_1, t0, grid%em_muts, th_phy, & 3224 grid%h_diabatic, dtm, config_flags, & 3225 ids, ide, jds, jde, kds, kde, & 3226 ims, ime, jms, jme, kms, kme, & 3227 its, ite, jts, jte, & 3228 k_start , k_end ) 3229 3230 CALL calc_p_rho_phi( moist, num_3d_m, & 3231 grid%em_al, grid%em_alb, grid%em_mu_2, grid%em_muts, & 3232 grid%em_ph_2, grid%em_p, grid%em_pb, grid%em_t_2, & 3233 p0, t0, grid%em_znu, grid%em_dnw, grid%em_rdnw, & 3234 grid%em_rdn, config_flags%non_hydrostatic, & 3235 ids, ide, jds, jde, kds, kde, & 3236 ims, ime, jms, jme, kms, kme, & 3237 its, ite, jts, jte, & 3238 k_start , k_end ) 3239 3240 END DO scalar_tile_loop_1b 3241 !$OMP END PARALLEL DO 3242 BENCH_END(moist_phys_end_tim) 3243 3244 ENDIF 3101 !!!******MARS MARS 3102 !!!******MARS MARS 3103 !!!******MARS MARS 3104 3105 ! IF (config_flags%mp_physics /= 0) then 3106 ! 3107 ! IF( config_flags%specified .or. config_flags%nested ) THEN 3108 ! sz = grid%spec_zone 3109 ! ELSE 3110 ! sz = 0 3111 ! ENDIF 3112 ! 3113 ! !$OMP PARALLEL DO & 3114 ! !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3115 ! 3116 ! scalar_tile_loop_1a: DO ij = 1 , grid%num_tiles 3117 ! 3118 ! IF ( config_flags%periodic_x ) THEN 3119 ! its = max(grid%i_start(ij),ids) 3120 ! ite = min(grid%i_end(ij),ide-1) 3121 ! ELSE 3122 ! its = max(grid%i_start(ij),ids+sz) 3123 ! ite = min(grid%i_end(ij),ide-1-sz) 3124 ! ENDIF 3125 ! jts = max(grid%j_start(ij),jds+sz) 3126 ! jte = min(grid%j_end(ij),jde-1-sz) 3127 ! 3128 ! CALL wrf_debug ( 200 , ' call moist_physics_prep' ) 3129 !BENCH_START(moist_physics_prep_tim) 3130 ! CALL moist_physics_prep_em( grid%em_t_2, grid%em_t_1, t0, rho, & 3131 ! grid%em_al, grid%em_alb, grid%em_p, p8w, p0, grid%em_pb, & 3132 ! grid%em_ph_2, grid%em_phb, th_phy, pi_phy, p_phy, & 3133 ! grid%em_z, z_at_w, dz8w, & 3134 ! dtm, grid%h_diabatic, & 3135 ! config_flags,grid%em_fnm, grid%em_fnp, & 3136 ! ids, ide, jds, jde, kds, kde, & 3137 ! ims, ime, jms, jme, kms, kme, & 3138 ! its, ite, jts, jte, & 3139 ! k_start , k_end ) 3140 !BENCH_END(moist_physics_prep_tim) 3141 ! END DO scalar_tile_loop_1a 3142 ! !$OMP END PARALLEL DO 3143 ! 3144 ! CALL wrf_debug ( 200 , ' call microphysics_driver' ) 3145 ! 3146 ! grid%em_sr = 0. 3147 ! specified_bdy = config_flags%specified .OR. config_flags%nested 3148 ! channel_bdy = config_flags%specified .AND. config_flags%periodic_x 3149 ! 3150 !#if 0 3151 !BENCH_START(microswap_1) 3152 !! for load balancing; communication to redistribute the points 3153 ! IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3154 !#include "SWAP_ETAMP_NEW.inc" 3155 ! ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3156 !#include "SWAP_WSM3.inc" 3157 ! ENDIF 3158 !BENCH_END(microswap_1) 3159 !#endif 3160 ! 3161 !BENCH_START(micro_driver_tim) 3162 ! 3163 ! CALL microphysics_driver( & 3164 ! & DT=dtm ,DX=grid%dx ,DY=grid%dy & 3165 ! & ,DZ8W=dz8w ,F_ICE_PHY=grid%f_ice_phy & 3166 ! & ,ITIMESTEP=grid%itimestep ,LOWLYR=grid%lowlyr & 3167 ! & ,P8W=p8w ,P=p_phy ,PI_PHY=pi_phy & 3168 ! & ,RHO=rho ,SPEC_ZONE=grid%spec_zone & 3169 ! & ,SR=grid%em_sr ,TH=th_phy & 3170 ! & ,WARM_RAIN=grid%warm_rain ,XLAND=grid%xland & 3171 ! & ,SPECIFIED=specified_bdy, CHANNEL_SWITCH=channel_bdy & 3172 ! & ,F_RAIN_PHY=grid%f_rain_phy & 3173 ! & ,F_RIMEF_PHY=grid%f_rimef_phy & 3174 ! & ,MP_PHYSICS=config_flags%mp_physics & 3175 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3176 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3177 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3178 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3179 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 3180 ! & ,NUM_TILES=grid%num_tiles & 3181 ! ! Optional 3182 ! & , RAINNC=grid%rainnc, RAINNCV=grid%rainncv & 3183 ! & , SNOWNC=grid%snownc, SNOWNCV=grid%snowncv & 3184 ! & , GRAUPELNC=grid%graupelnc, GRAUPELNCV=grid%graupelncv & 3185 ! & , W=grid%em_w_2, Z=grid%em_z, HT=grid%ht & 3186 ! & , MP_RESTART_STATE=grid%mp_restart_state & 3187 ! & , TBPVS_STATE=grid%tbpvs_state & ! etampnew 3188 ! & , TBPVS0_STATE=grid%tbpvs0_state & ! etampnew 3189 ! & , QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 3190 ! & , QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 3191 ! & , QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 3192 ! & , QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 3193 ! & , QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 3194 ! & , QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 3195 ! & , QNI_CURR=scalar(ims,kms,jms,P_QNI), F_QNI=F_QNI & 3196 ! & , QT_CURR=scalar(ims,kms,jms,P_QT), F_QT=F_QT & 3197 ! ) 3198 !BENCH_END(micro_driver_tim) 3199 ! 3200 !#if 0 3201 !BENCH_START(microswap_2) 3202 !! for load balancing; communication to redistribute the points 3203 ! IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3204 !#include "SWAP_ETAMP_NEW.inc" 3205 ! ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3206 !#include "SWAP_WSM3.inc" 3207 ! ENDIF 3208 !BENCH_END(microswap_2) 3209 !#endif 3210 ! 3211 ! CALL wrf_debug ( 200 , ' call moist_physics_finish' ) 3212 !BENCH_START(moist_phys_end_tim) 3213 ! !$OMP PARALLEL DO & 3214 ! !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3215 ! 3216 ! scalar_tile_loop_1b: DO ij = 1 , grid%num_tiles 3217 ! 3218 ! IF ( config_flags%periodic_x ) THEN 3219 ! its = max(grid%i_start(ij),ids) 3220 ! ite = min(grid%i_end(ij),ide-1) 3221 ! ELSE 3222 ! its = max(grid%i_start(ij),ids+sz) 3223 ! ite = min(grid%i_end(ij),ide-1-sz) 3224 ! ENDIF 3225 ! jts = max(grid%j_start(ij),jds+sz) 3226 ! jte = min(grid%j_end(ij),jde-1-sz) 3227 ! 3228 ! CALL microphysics_zero_out ( & 3229 ! moist , num_moist , config_flags , & 3230 ! ids, ide, jds, jde, kds, kde, & 3231 ! ims, ime, jms, jme, kms, kme, & 3232 ! its, ite, jts, jte, & 3233 ! k_start , k_end ) 3234 ! 3235 ! CALL moist_physics_finish_em( grid%em_t_2, grid%em_t_1, t0, grid%em_muts, th_phy, & 3236 ! grid%h_diabatic, dtm, config_flags, & 3237 ! ids, ide, jds, jde, kds, kde, & 3238 ! ims, ime, jms, jme, kms, kme, & 3239 ! its, ite, jts, jte, & 3240 ! k_start , k_end ) 3241 ! 3242 ! CALL calc_p_rho_phi( moist, num_3d_m, & 3243 ! grid%em_al, grid%em_alb, grid%em_mu_2, grid%em_muts, & 3244 ! grid%em_ph_2, grid%em_p, grid%em_pb, grid%em_t_2, & 3245 ! p0, t0, grid%em_znu, grid%em_dnw, grid%em_rdnw, & 3246 ! grid%em_rdn, config_flags%non_hydrostatic, & 3247 ! ids, ide, jds, jde, kds, kde, & 3248 ! ims, ime, jms, jme, kms, kme, & 3249 ! its, ite, jts, jte, & 3250 ! k_start , k_end ) 3251 ! 3252 ! END DO scalar_tile_loop_1b 3253 ! !$OMP END PARALLEL DO 3254 !BENCH_END(moist_phys_end_tim) 3255 ! 3256 ! ENDIF 3245 3257 3246 3258 … … 3424 3436 ! calculate some model diagnostics. 3425 3437 3426 CALL wrf_debug ( 200 , ' call diagnostic_driver' ) 3427 3428 CALL diagnostic_output_calc( & 3429 & DPSDT=grid%dpsdt ,DMUDT=grid%dmudt & 3430 & ,P_PHY=p_phy ,PK1M=grid%pk1m & 3431 & ,MU_2=grid%em_mu_2 ,MU_2M=grid%mu_2m & 3432 & ,U=grid%em_u_2 ,V=grid%em_v_2 & 3433 & ,RAINCV=grid%raincv ,RAINNCV=grid%rainncv & 3434 & ,RAINC=grid%rainc ,RAINNC=grid%rainnc & 3435 & ,HFX=grid%hfx ,SFCEVP=grid%sfcevp ,LH=grid%lh & 3436 & ,DT=grid%dt ,SBW=config_flags%spec_bdy_width & 3437 & ,XTIME=grid%xtime & 3438 ! Selection flag 3439 & ,DIAG_PRINT=config_flags%diag_print & 3440 ! Dimension arguments 3441 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3442 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3443 & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 3444 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3445 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3446 & ,KTS=k_start, KTE=min(k_end,kde-1) & 3447 & ,NUM_TILES=grid%num_tiles & 3448 & ) 3438 !!!******MARS MARS 3439 !!!******MARS MARS 3440 3441 ! CALL wrf_debug ( 200 , ' call diagnostic_driver' ) 3442 ! 3443 ! CALL diagnostic_output_calc( & 3444 ! & DPSDT=grid%dpsdt ,DMUDT=grid%dmudt & 3445 ! & ,P_PHY=p_phy ,PK1M=grid%pk1m & 3446 ! & ,MU_2=grid%em_mu_2 ,MU_2M=grid%mu_2m & 3447 ! & ,U=grid%em_u_2 ,V=grid%em_v_2 & 3448 ! & ,RAINCV=grid%raincv ,RAINNCV=grid%rainncv & 3449 ! & ,RAINC=grid%rainc ,RAINNC=grid%rainnc & 3450 ! & ,HFX=grid%hfx ,SFCEVP=grid%sfcevp ,LH=grid%lh & 3451 ! & ,DT=grid%dt ,SBW=config_flags%spec_bdy_width & 3452 ! & ,XTIME=grid%xtime & 3453 ! ! Selection flag 3454 ! & ,DIAG_PRINT=config_flags%diag_print & 3455 ! ! Dimension arguments 3456 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3457 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3458 ! & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 3459 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3460 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3461 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 3462 ! & ,NUM_TILES=grid%num_tiles & 3463 ! & ) 3449 3464 3450 3465 #ifdef DM_PARALLEL -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/Makefile
r11 r94 7 7 8 8 MODULES = \ 9 module_bl_ysu.o \10 module_bl_mrf.o \11 module_bl_gfs.o \12 module_bl_myjpbl.o \13 module_cu_kf.o \14 module_cu_bmj.o \15 module_cu_kfeta.o \16 module_cu_gd.o \17 module_cu_sas.o \18 module_mp_kessler.o \19 module_mp_ncloud5.o \20 module_mp_lin.o \21 module_mp_ncloud3.o \22 module_mp_wsm3.o \23 module_mp_wsm5.o \24 module_mp_wsm6.o \25 module_mp_etanew.o \26 module_mp_thompson.o \27 module_ra_sw.o \28 module_ra_gsfcsw.o \29 module_ra_rrtm.o \30 module_ra_cam.o \31 module_ra_gfdleta.o \32 module_sf_sfclay.o \33 module_sf_gfs.o \34 module_sf_slab.o \35 module_sf_noahlsm.o \36 module_sf_urban.o \37 module_sf_lsm_nmm.o \38 module_sf_ruclsm.o \39 module_sf_sfcdiags.o \40 module_sf_myjsfc.o \41 9 module_physics_addtendc.o \ 42 10 module_physics_init.o \ 43 module_gfs_machine.o \44 module_gfs_funcphys.o \45 module_gfs_physcons.o \46 module_progtm.o \47 module_pbl_driver.o \48 module_cumulus_driver.o \49 module_microphysics_driver.o \50 module_microphysics_zero_out.o \51 module_radiation_driver.o \52 module_surface_driver.o \53 module_diagnostics.o \54 module_fdda_psufddagd.o \55 module_fddagd_driver.o \56 module_fddaobs_rtfdda.o \57 module_fddaobs_driver.o \58 11 module_lmd_driver.o 59 12 … … 86 39 # si ce qui est à droite a changé, on recompile à gauche 87 40 88 module_bl_myjpbl.o: ../share/module_model_constants.o89 90 module_bl_gfs.o: module_gfs_machine.o \91 module_gfs_physcons.o92 93 module_cu_bmj.o: ../share/module_model_constants.o94 95 module_cu_kf.o: ../frame/module_wrf_error.o96 97 module_cu_kfeta.o: ../frame/module_wrf_error.o98 99 module_cu_gd.o:100 101 module_gfs_physcons.o: module_gfs_machine.o102 103 module_gfs_funcphys.o: module_gfs_machine.o \104 module_gfs_physcons.o105 106 module_cu_sas.o: module_gfs_machine.o \107 module_gfs_funcphys.o \108 module_gfs_physcons.o109 110 module_ra_gfdleta.o: ../frame/module_dm.o111 112 module_ra_rrtm.o: ../frame/module_wrf_error.o \113 ../frame/module_dm.o114 115 module_ra_cam.o: ../frame/module_wrf_error.o \116 ../frame/module_dm.o117 118 module_mp_lin.o : ../frame/module_wrf_error.o119 120 module_sf_lsm_nmm.o: ../share/module_model_constants.o \121 ../share/module_MPP.o122 123 module_sf_myjsfc.o: ../share/module_model_constants.o124 125 module_sf_gfs.o: module_gfs_machine.o \126 module_gfs_funcphys.o \127 module_gfs_physcons.o \128 module_progtm.o129 130 module_sf_noahlsm.o: ../share/module_model_constants.o \131 module_sf_urban.o132 133 module_sf_ruclsm.o: ../frame/module_wrf_error.o134 135 41 module_physics_addtendc.o: \ 136 module_cu_kf.o \137 module_cu_kfeta.o \138 42 ../frame/module_state_description.o \ 139 43 ../frame/module_configure.o 140 44 141 45 module_physics_init.o : \ 142 module_ra_rrtm.o \143 module_ra_cam.o \144 module_ra_sw.o \145 module_ra_gsfcsw.o \146 module_ra_gfdleta.o \147 module_sf_sfclay.o \148 module_sf_slab.o \149 module_sf_myjsfc.o \150 module_sf_noahlsm.o \151 module_sf_ruclsm.o \152 module_bl_ysu.o \153 module_bl_mrf.o \154 module_bl_gfs.o \155 module_bl_myjpbl.o \156 module_cu_kf.o \157 module_cu_kfeta.o \158 module_cu_bmj.o \159 module_cu_gd.o \160 module_cu_sas.o \161 module_mp_ncloud3.o \162 module_mp_ncloud5.o \163 module_mp_wsm3.o \164 module_mp_wsm5.o \165 module_mp_wsm6.o \166 module_mp_etanew.o \167 module_fdda_psufddagd.o \168 module_fddaobs_rtfdda.o \169 module_mp_thompson.o \170 46 ../frame/module_state_description.o \ 171 47 ../frame/module_configure.o \ 172 48 ../frame/module_wrf_error.o \ 173 49 ../frame/module_dm.o \ 174 ../share/module_model_constants.o \175 module_sf_lsm_nmm.o176 177 module_microphysics_driver.o: \178 module_mp_kessler.o module_mp_lin.o \179 module_mp_ncloud3.o module_mp_ncloud5.o \180 module_mp_wsm3.o module_mp_wsm5.o \181 module_mp_wsm6.o module_mp_etanew.o \182 module_mp_thompson.o \183 ../frame/module_state_description.o \184 ../frame/module_wrf_error.o \185 ../frame/module_configure.o \186 50 ../share/module_model_constants.o 187 188 module_cumulus_driver.o: \189 module_cu_kf.o \190 module_cu_kfeta.o \191 module_cu_bmj.o \192 module_cu_gd.o \193 module_cu_sas.o \194 ../frame/module_state_description.o \195 ../frame/module_configure.o \196 ../share/module_model_constants.o197 198 module_pbl_driver.o: \199 module_bl_myjpbl.o \200 module_bl_ysu.o \201 module_bl_mrf.o \202 module_bl_gfs.o \203 ../frame/module_state_description.o \204 ../frame/module_configure.o \205 ../share/module_model_constants.o206 207 module_radiation_driver.o: \208 module_ra_sw.o \209 module_ra_gsfcsw.o \210 module_ra_rrtm.o \211 module_ra_cam.o \212 module_ra_gfdleta.o \213 ../frame/module_state_description.o \214 ../frame/module_wrf_error.o \215 ../frame/module_configure.o \216 ../share/module_model_constants.o217 218 module_surface_driver.o: \219 module_sf_sfclay.o \220 module_sf_slab.o \221 module_sf_myjsfc.o \222 module_sf_gfs.o \223 module_sf_noahlsm.o \224 module_sf_ruclsm.o \225 module_sf_sfcdiags.o \226 ../frame/module_state_description.o \227 ../frame/module_configure.o \228 ../share/module_model_constants.o \229 module_sf_lsm_nmm.o230 231 module_diagnostics.o: ../frame/module_dm.o232 233 module_fddagd_driver.o: \234 ../frame/module_state_description.o \235 ../frame/module_configure.o \236 ../share/module_model_constants.o \237 module_fdda_psufddagd.o238 239 module_fddaobs_driver.o: \240 ../frame/module_domain.o \241 ../share/module_bc.o \242 ../share/module_model_constants.o \243 module_fddaobs_rtfdda.o244 51 245 52 module_lmd_driver.o: \ -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
r77 r94 283 283 jte = j_end(num_tiles) 284 284 !! 285 IF (flag_LES .eq . .false.) THEN285 IF (flag_LES .eqv. .false.) THEN 286 286 relax=0 287 287 sponge_top=0 ! another value than 0 triggers instabilities … … 292 292 jps=jts 293 293 jpe=jte 294 IF (flag_LES .eq . .false.) THEN294 IF (flag_LES .eqv. .false.) THEN 295 295 IF (ips .eq. ids) ips=its+relax !! IF tests necesary for parallel runs 296 296 IF (ipe .eq. ide-1) ipe=ite-relax … … 299 299 ENDIF 300 300 kps=kts !! start at surface 301 IF (flag_LES .eq . .false.) THEN301 IF (flag_LES .eqv. .false.) THEN 302 302 kpe=kte-sponge_top 303 303 ELSE -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_physics_addtendc.F
r11 r94 648 648 !---------------------------------------------------------------------- 649 649 USE module_state_description 650 USE module_cu_kf 651 USE module_cu_kfeta 650 651 !!!******MARS MARS 652 !!!******MARS MARS 653 !!!******MARS MARS 654 655 ! USE module_cu_kf 656 ! USE module_cu_kfeta 652 657 !---------------------------------------------------------------------- 653 658 IMPLICIT NONE -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_physics_init.F
r11 r94 373 373 kds,kde,kms,kme,kts,kte) 374 374 375 !-- initialize physics 376 !-- ra: radiation 377 !-- bl: pbl 378 !-- cu: cumulus 379 !-- mp: microphysics 380 381 CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to ra_init' ) 382 383 CALL ra_init(id,STEPRA,RADT,DT,RTHRATEN,RTHRATENLW, & 384 RTHRATENSW,CLDFRA,EMISS,cen_lat,JULYR,JULDAY,GMT, & 385 levsiz,XLAT,n_ozmixm, & 386 ozmixm,pin, & ! Optional 387 m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2, & ! Optional 388 paerlev,n_aerosolc, & 389 sfull,shalf,pptop,swrad_scat, & 390 config_flags,restart, & 391 allowed_to_read, start_of_simulation, & 392 ids, ide, jds, jde, kds, kde, & 393 ims, ime, jms, jme, kms, kme, & 394 its, ite, jts, jte, kts, kte ) 395 396 CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to bl_init' ) 397 398 CALL bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & 399 RQVBLTEN,RQCBLTEN,RQIBLTEN,TSK,TMN, & 400 config_flags,restart,UST,LOWLYR,TSLB,ZS,DZS, & 401 num_soil_layers,TKE_MYJ,EXCH_H,VEGFRA, & 402 SNOW,SNOWC, CANWAT,SMSTAV, & 403 SMSTOT, SFCRUNOFF,UDRUNOFF,ACSNOW,ACSNOM, & 404 IVGTYP,ISLTYP,SMOIS,SMFR3D,MAVAIL, & 405 SNOWH,SH2O,FNDSOILW, FNDSNOWH, & 406 #if (NMM_CORE == 1) 407 Z0,XLAND,XICE, & 408 #else 409 ZNT,XLAND,XICE, & 410 #endif 411 SFCEVP,GRDFLX, & 412 allowed_to_read , & 413 DZR, DZB, DZG, & !Optional urban 414 TR_URB2D,TB_URB2D,TG_URB2D,TC_URB2D,QC_URB2D, & !Optional urban 415 XXXR_URB2D,XXXB_URB2D,XXXG_URB2D,XXXC_URB2D, & !Optional urban 416 TRL_URB3D, TBL_URB3D, TGL_URB3D, & !Optional urban 417 SH_URB2D, LH_URB2D, G_URB2D, RN_URB2D, & !Optional urban 418 TS_URB2D, FRC_URB2D, UTYPE_URB2D, UCMCALL, & !Optional urban 419 ids, ide, jds, jde, kds, kde, & 420 ims, ime, jms, jme, kms, kme, & 421 its, ite, jts, jte, kts, kte ) 422 423 CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to cu_init' ) 424 425 CALL cu_init(STEPCU,CUDT,DT,RTHCUTEN,RQVCUTEN,RQRCUTEN, & 426 RQCCUTEN,RQSCUTEN,RQICUTEN,NCA,RAINC, & 427 RAINCV,W0AVG,config_flags,restart, & 428 CLDEFI,LOWLYR,MASS_FLUX, & 429 RTHFTEN, RQVFTEN, & 430 APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 431 APR_CAPMA,APR_CAPME,APR_CAPMI, & 432 allowed_to_read, start_of_simulation, & 433 ids, ide, jds, jde, kds, kde, & 434 ims, ime, jms, jme, kms, kme, & 435 its, ite, jts, jte, kts, kte ) 436 437 CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to mp_init' ) 438 439 CALL mp_init(RAINNC,config_flags,restart,warm_rain, & 440 adv_moist_cond, & 441 MPDT, DT, DX, DY, LOWLYR, & 442 F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY, & 443 mp_restart_state,tbpvs_state,tbpvs0_state, & 444 allowed_to_read, start_of_simulation, & 445 ids, ide, jds, jde, kds, kde, & 446 ims, ime, jms, jme, kms, kme, & 447 its, ite, jts, jte, kts, kte ) 448 449 write(message,*)'STEPRA,STEPCU,STEPBL',STEPRA,STEPCU,STEPBL 450 CALL wrf_message( message ) 451 452 #if ( EM_CORE == 1 ) 453 CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to fg_init' ) 454 455 CALL fg_init(STEPFG,FGDT,DT,id,RUNDGDTEN,RVNDGDTEN, & 456 RTHNDGDTEN,RQVNDGDTEN,RMUNDGDTEN, & 457 config_flags,restart, & 458 allowed_to_read , & 459 ids, ide, jds, jde, kds, kde, & 460 ims, ime, jms, jme, kms, kme, & 461 its, ite, jts, jte, kts, kte ) 462 463 CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to fdob_init' ) 464 465 CALL fdob_init(model_config_rec%obs_nudge_opt, & 466 model_config_rec%max_dom, & 467 id, & 468 model_config_rec%parent_id, & 469 model_config_rec%dx(1), & 470 config_flags%restart, & 471 obs_twindo, & 472 itimestep, & 473 model_config_rec%s_sn(1), & 474 model_config_rec%e_sn(1), & 475 model_config_rec%s_we(1), & 476 model_config_rec%e_we(1), & 477 fdob, & 478 ids, ide, jds, jde, kds, kde, & 479 ims, ime, jms, jme, kms, kme, & 480 its, ite, jts, jte, kts, kte ) 481 482 #endif 375 !!!******MARS MARS 376 !!!******MARS MARS 377 !!!******MARS MARS 378 379 !!-- initialize physics 380 !!-- ra: radiation 381 !!-- bl: pbl 382 !!-- cu: cumulus 383 !!-- mp: microphysics 384 ! 385 ! CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to ra_init' ) 386 ! 387 ! CALL ra_init(id,STEPRA,RADT,DT,RTHRATEN,RTHRATENLW, & 388 ! RTHRATENSW,CLDFRA,EMISS,cen_lat,JULYR,JULDAY,GMT, & 389 ! levsiz,XLAT,n_ozmixm, & 390 ! ozmixm,pin, & ! Optional 391 ! m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2, & ! Optional 392 ! paerlev,n_aerosolc, & 393 ! sfull,shalf,pptop,swrad_scat, & 394 ! config_flags,restart, & 395 ! allowed_to_read, start_of_simulation, & 396 ! ids, ide, jds, jde, kds, kde, & 397 ! ims, ime, jms, jme, kms, kme, & 398 ! its, ite, jts, jte, kts, kte ) 399 ! 400 ! CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to bl_init' ) 401 ! 402 ! CALL bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & 403 ! RQVBLTEN,RQCBLTEN,RQIBLTEN,TSK,TMN, & 404 ! config_flags,restart,UST,LOWLYR,TSLB,ZS,DZS, & 405 ! num_soil_layers,TKE_MYJ,EXCH_H,VEGFRA, & 406 ! SNOW,SNOWC, CANWAT,SMSTAV, & 407 ! SMSTOT, SFCRUNOFF,UDRUNOFF,ACSNOW,ACSNOM, & 408 ! IVGTYP,ISLTYP,SMOIS,SMFR3D,MAVAIL, & 409 ! SNOWH,SH2O,FNDSOILW, FNDSNOWH, & 410 !#if (NMM_CORE == 1) 411 ! Z0,XLAND,XICE, & 412 !#else 413 ! ZNT,XLAND,XICE, & 414 !#endif 415 ! SFCEVP,GRDFLX, & 416 ! allowed_to_read , & 417 ! DZR, DZB, DZG, & !Optional urban 418 ! TR_URB2D,TB_URB2D,TG_URB2D,TC_URB2D,QC_URB2D, & !Optional urban 419 ! XXXR_URB2D,XXXB_URB2D,XXXG_URB2D,XXXC_URB2D, & !Optional urban 420 ! TRL_URB3D, TBL_URB3D, TGL_URB3D, & !Optional urban 421 ! SH_URB2D, LH_URB2D, G_URB2D, RN_URB2D, & !Optional urban 422 ! TS_URB2D, FRC_URB2D, UTYPE_URB2D, UCMCALL, & !Optional urban 423 ! ids, ide, jds, jde, kds, kde, & 424 ! ims, ime, jms, jme, kms, kme, & 425 ! its, ite, jts, jte, kts, kte ) 426 ! 427 ! CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to cu_init' ) 428 ! 429 ! CALL cu_init(STEPCU,CUDT,DT,RTHCUTEN,RQVCUTEN,RQRCUTEN, & 430 ! RQCCUTEN,RQSCUTEN,RQICUTEN,NCA,RAINC, & 431 ! RAINCV,W0AVG,config_flags,restart, & 432 ! CLDEFI,LOWLYR,MASS_FLUX, & 433 ! RTHFTEN, RQVFTEN, & 434 ! APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 435 ! APR_CAPMA,APR_CAPME,APR_CAPMI, & 436 ! allowed_to_read, start_of_simulation, & 437 ! ids, ide, jds, jde, kds, kde, & 438 ! ims, ime, jms, jme, kms, kme, & 439 ! its, ite, jts, jte, kts, kte ) 440 ! 441 ! CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to mp_init' ) 442 ! 443 ! CALL mp_init(RAINNC,config_flags,restart,warm_rain, & 444 ! adv_moist_cond, & 445 ! MPDT, DT, DX, DY, LOWLYR, & 446 ! F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY, & 447 ! mp_restart_state,tbpvs_state,tbpvs0_state, & 448 ! allowed_to_read, start_of_simulation, & 449 ! ids, ide, jds, jde, kds, kde, & 450 ! ims, ime, jms, jme, kms, kme, & 451 ! its, ite, jts, jte, kts, kte ) 452 ! 453 ! write(message,*)'STEPRA,STEPCU,STEPBL',STEPRA,STEPCU,STEPBL 454 ! CALL wrf_message( message ) 455 ! 456 !#if ( EM_CORE == 1 ) 457 ! CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to fg_init' ) 458 ! 459 ! CALL fg_init(STEPFG,FGDT,DT,id,RUNDGDTEN,RVNDGDTEN, & 460 ! RTHNDGDTEN,RQVNDGDTEN,RMUNDGDTEN, & 461 ! config_flags,restart, & 462 ! allowed_to_read , & 463 ! ids, ide, jds, jde, kds, kde, & 464 ! ims, ime, jms, jme, kms, kme, & 465 ! its, ite, jts, jte, kts, kte ) 466 ! 467 ! CALL wrf_debug ( 200 , 'module_start: phy_init: Before call to fdob_init' ) 468 ! 469 ! CALL fdob_init(model_config_rec%obs_nudge_opt, & 470 ! model_config_rec%max_dom, & 471 ! id, & 472 ! model_config_rec%parent_id, & 473 ! model_config_rec%dx(1), & 474 ! config_flags%restart, & 475 ! obs_twindo, & 476 ! itimestep, & 477 ! model_config_rec%s_sn(1), & 478 ! model_config_rec%e_sn(1), & 479 ! model_config_rec%s_we(1), & 480 ! model_config_rec%e_we(1), & 481 ! fdob, & 482 ! ids, ide, jds, jde, kds, kde, & 483 ! ims, ime, jms, jme, kms, kme, & 484 ! its, ite, jts, jte, kts, kte ) 485 ! 486 !#endif 483 487 484 488 END SUBROUTINE phy_init … … 720 724 END SUBROUTINE landuse_init 721 725 722 !===================================================================== 723 SUBROUTINE ra_init(id,STEPRA,RADT,DT,RTHRATEN,RTHRATENLW, & 724 RTHRATENSW,CLDFRA,EMISS,cen_lat,JULYR,JULDAY,GMT, & 725 levsiz,XLAT,n_ozmixm, & 726 ozmixm,pin, & ! Optional 727 m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2, & ! Optional 728 paerlev,n_aerosolc, & 729 sfull,shalf,pptop,swrad_scat, & 730 config_flags,restart, & 731 allowed_to_read, start_of_simulation, & 732 ids, ide, jds, jde, kds, kde, & 733 ims, ime, jms, jme, kms, kme, & 734 its, ite, jts, jte, kts, kte ) 735 !--------------------------------------------------------------------- 736 USE module_ra_rrtm 737 USE module_ra_cam 738 USE module_ra_sw 739 USE module_ra_gsfcsw 740 USE module_ra_gfdleta 741 USE module_domain 742 !--------------------------------------------------------------------- 743 IMPLICIT NONE 744 !--------------------------------------------------------------------- 745 INTEGER, INTENT(IN) :: id 746 TYPE (grid_config_rec_type) :: config_flags 747 LOGICAL , INTENT(IN) :: restart 748 LOGICAL, INTENT(IN) :: allowed_to_read 749 750 INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 751 ims, ime, jms, jme, kms, kme, & 752 its, ite, jts, jte, kts, kte 753 754 INTEGER , INTENT(IN) :: JULDAY,JULYR 755 REAL , INTENT(IN) :: DT, RADT, cen_lat, GMT, pptop, & 756 swrad_scat 757 LOGICAL, INTENT(IN) :: start_of_simulation 758 759 INTEGER, INTENT(IN ) :: levsiz, n_ozmixm 760 INTEGER, INTENT(IN ) :: paerlev, n_aerosolc 761 762 REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(IN) :: XLAT 763 764 REAL, DIMENSION( ims:ime, levsiz, jms:jme, n_ozmixm ), OPTIONAL, & 765 INTENT(INOUT) :: OZMIXM 766 767 REAL, DIMENSION(ims:ime,jms:jme), OPTIONAL, INTENT(INOUT) :: m_ps_1,m_ps_2 768 REAL, DIMENSION(paerlev), OPTIONAL, INTENT(INOUT) :: m_hybi 769 REAL, DIMENSION( ims:ime, paerlev, jms:jme, n_aerosolc ), OPTIONAL, & 770 INTENT(INOUT) :: aerosolc_1, aerosolc_2 771 772 REAL, DIMENSION(levsiz), OPTIONAL, INTENT(INOUT) :: PIN 773 774 INTEGER , INTENT(INOUT) :: STEPRA 775 INTEGER :: isn 776 777 REAL , DIMENSION( kms:kme ) , INTENT(IN) :: sfull, shalf 778 REAL , DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 779 RTHRATEN, & 780 RTHRATENLW, & 781 RTHRATENSW, & 782 CLDFRA 783 REAL , DIMENSION( ims:ime , jms:jme ) , INTENT(INOUT) :: EMISS 784 LOGICAL :: etalw = .false. 785 LOGICAL :: camlw = .false. 786 LOGICAL :: etamp = .false. 787 integer :: month,iday 788 INTEGER :: i, j, k, itf, jtf, ktf 789 !--------------------------------------------------------------------- 790 791 jtf=min0(jte,jde-1) 792 ktf=min0(kte,kde-1) 793 itf=min0(ite,ide-1) 794 795 !--------------------------------------------------------------------- 796 797 !-- calculate radiation time step 798 799 STEPRA = nint(RADT*60./DT) 800 STEPRA = max(STEPRA,1) 801 802 !-- initialization 803 804 IF(start_of_simulation)THEN 805 DO j=jts,jtf 806 DO k=kts,ktf 807 DO i=its,itf 808 RTHRATEN(i,k,j)=0. 809 RTHRATENLW(i,k,j)=0. 810 RTHRATENSW(i,k,j)=0. 811 CLDFRA(i,k,j)=0. 812 ENDDO 813 ENDDO 814 ENDDO 815 ENDIF 816 817 !-- find out which microphysics option is used first 818 819 mp_select: SELECT CASE(config_flags%mp_physics) 820 821 CASE (ETAMPNEW) 822 etamp = .true. 823 824 END SELECT mp_select 825 826 !-- chose long wave radiation scheme 827 828 lwrad_select: SELECT CASE(config_flags%ra_lw_physics) 829 830 CASE (RRTMSCHEME) 831 CALL rrtminit( & 832 allowed_to_read , & 833 ids, ide, jds, jde, kds, kde, & 834 ims, ime, jms, jme, kms, kme, & 835 its, ite, jts, jte, kts, kte ) 836 837 CASE (CAMLWSCHEME) 838 #ifdef MAC_KLUDGE 839 CALL wrf_error_fatal ( 'CAM radiation scheme not supported under the chosen build configuration' ) 840 #endif 841 IF ( PRESENT( OZMIXM ) .AND. PRESENT( PIN ) .AND. & 842 PRESENT(M_PS_1) .AND. PRESENT(M_PS_2) .AND. & 843 PRESENT(M_HYBI) .AND. PRESENT(AEROSOLC_1) & 844 .AND. PRESENT(AEROSOLC_2)) THEN 845 CALL camradinit( & 846 R_D,R_V,CP,G,STBOLT,EP_2,shalf,pptop, & 847 ozmixm,pin,levsiz,XLAT,n_ozmixm, & 848 m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2,& 849 paerlev, n_aerosolc, & 850 ids, ide, jds, jde, kds, kde, & 851 ims, ime, jms, jme, kms, kme, & 852 its, ite, jts, jte, kts, kte ) 853 ELSE 854 CALL wrf_error_fatal ( 'arguments not present for calling cam radiation' ) 855 ENDIF 856 857 camlw = .true. 858 859 CASE (GFDLLWSCHEME) 860 CALL nl_get_start_month(id,month) 861 CALL nl_get_start_day(id,iday) 862 CALL gfdletainit(emiss,sfull,shalf,pptop, & 863 julyr,month,iday,gmt, & 864 config_flags,allowed_to_read, & 865 ids, ide, jds, jde, kds, kde, & 866 ims, ime, jms, jme, kms, kme, & 867 its, ite, jts, jte, kts, kte ) 868 etalw = .true. 869 CASE DEFAULT 870 871 END SELECT lwrad_select 872 !-- initialize short wave radiation scheme 873 874 swrad_select: SELECT CASE(config_flags%ra_sw_physics) 875 876 CASE (SWRADSCHEME) 877 CALL swinit( & 878 swrad_scat, & 879 allowed_to_read , & 880 ids, ide, jds, jde, kds, kde, & 881 ims, ime, jms, jme, kms, kme, & 882 its, ite, jts, jte, kts, kte ) 883 884 CASE (CAMSWSCHEME) 885 #ifdef MAC_KLUDGE 886 CALL wrf_error_fatal ( 'CAM radiation scheme not supported under the chosen build configuration' ) 887 #endif 888 IF(.not.camlw)THEN 889 CALL camradinit( & 890 R_D,R_V,CP,G,STBOLT,EP_2,shalf,pptop, & 891 ozmixm,pin,levsiz,XLAT,n_ozmixm, & 892 m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2,& 893 paerlev, n_aerosolc, & 894 ids, ide, jds, jde, kds, kde, & 895 ims, ime, jms, jme, kms, kme, & 896 its, ite, jts, jte, kts, kte ) 897 ENDIF 898 899 CASE (GSFCSWSCHEME) 900 CALL gsfc_swinit(cen_lat, allowed_to_read ) 901 902 CASE (GFDLSWSCHEME) 903 IF(.not.etalw)THEN 904 CALL nl_get_start_month(id,month) 905 CALL nl_get_start_day(id,iday) 906 CALL gfdletainit(emiss,sfull,shalf,pptop, & 907 julyr,month,iday,gmt, & 908 config_flags,allowed_to_read, & 909 ids, ide, jds, jde, kds, kde, & 910 ims, ime, jms, jme, kms, kme, & 911 its, ite, jts, jte, kts, kte ) 912 ENDIF 913 914 CASE DEFAULT 915 916 END SELECT swrad_select 917 918 END SUBROUTINE ra_init 919 920 SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & 921 RQVBLTEN,RQCBLTEN,RQIBLTEN,TSK,TMN, & 922 config_flags,restart,UST,LOWLYR,TSLB,ZS,DZS, & 923 num_soil_layers,TKE_MYJ,EXCH_H,VEGFRA, & 924 SNOW,SNOWC, CANWAT,SMSTAV, & 925 SMSTOT, SFCRUNOFF,UDRUNOFF,ACSNOW,ACSNOM, & 926 IVGTYP,ISLTYP,SMOIS,SMFR3D,mavail, & 927 SNOWH,SH2O,FNDSOILW, FNDSNOWH, & 928 #if ( NMM_CORE == 1 ) 929 Z0,XLAND,XICE, & 930 #else 931 ZNT,XLAND,XICE, & 932 #endif 933 SFCEVP,GRDFLX, & 934 allowed_to_read, & 935 ! num_roof_layers,num_wall_layers,num_road_layers,& !Optional urban 936 DZR, DZB, DZG, & !Optional urban 937 TR_URB2D,TB_URB2D,TG_URB2D,TC_URB2D,QC_URB2D, & !Optional urban 938 XXXR_URB2D,XXXB_URB2D,XXXG_URB2D,XXXC_URB2D, & !Optional urban 939 TRL_URB3D, TBL_URB3D, TGL_URB3D, & !Optional urban 940 SH_URB2D,LH_URB2D,G_URB2D,RN_URB2D, & !Optional urban 941 TS_URB2D, FRC_URB2D, UTYPE_URB2D,UCMCALL, & !Optional urban 942 ids, ide, jds, jde, kds, kde, & 943 ims, ime, jms, jme, kms, kme, & 944 its, ite, jts, jte, kts, kte ) 945 !-------------------------------------------------------------------- 946 USE module_sf_sfclay 947 USE module_sf_slab 948 USE module_bl_ysu 949 USE module_bl_mrf 950 USE module_bl_gfs 951 USE module_sf_myjsfc 952 USE module_sf_noahlsm 953 USE module_sf_urban 954 USE module_sf_ruclsm 955 USE module_bl_myjpbl 956 #if (NMM_CORE == 1) 957 USE module_sf_lsm_nmm 958 #endif 959 !-------------------------------------------------------------------- 960 IMPLICIT NONE 961 !-------------------------------------------------------------------- 962 TYPE (grid_config_rec_type) :: config_flags 963 LOGICAL , INTENT(IN) :: restart 964 LOGICAL, INTENT(IN) :: FNDSOILW, FNDSNOWH 965 966 INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 967 ims, ime, jms, jme, kms, kme, & 968 its, ite, jts, jte, kts, kte 969 INTEGER , INTENT(IN) :: num_soil_layers 970 INTEGER , INTENT(IN) :: UCMCALL 971 972 REAL , INTENT(IN) :: DT, BLDT 973 INTEGER , INTENT(INOUT) :: STEPBL 974 975 REAL, DIMENSION( ims:ime , 1:num_soil_layers , jms:jme ), & 976 INTENT(OUT) :: SMFR3D 977 978 REAL, DIMENSION( ims:ime , 1:num_soil_layers , jms:jme ),& 979 INTENT(INOUT) :: SMOIS,SH2O,TSLB 980 981 REAL, DIMENSION( ims:ime, jms:jme ) , & 982 INTENT(INOUT) :: SNOW, & 983 SNOWH, & 984 SNOWC, & 985 CANWAT, & 986 MAVAIL, & 987 SMSTAV, & 988 SMSTOT, & 989 SFCRUNOFF, & 990 UDRUNOFF, & 991 ACSNOW, & 992 VEGFRA, & 993 ACSNOM, & 994 SFCEVP, & 995 GRDFLX, & 996 UST, & 997 #if ( NMM_CORE == 1 ) 998 Z0, & 999 #else 1000 ZNT, & 1001 #endif 1002 XLAND, & 1003 XICE 1004 1005 INTEGER, DIMENSION( ims:ime, jms:jme ) , & 1006 INTENT(INOUT) :: IVGTYP, & 1007 ISLTYP, & 1008 LOWLYR 1009 1010 1011 REAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: ZS,DZS 1012 1013 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 1014 RUBLTEN, & 1015 RVBLTEN, & 1016 EXCH_H, & 1017 RTHBLTEN, & 1018 RQVBLTEN, & 1019 RQCBLTEN, & 1020 RQIBLTEN, & 1021 TKE_MYJ 1022 1023 REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(IN) :: TSK 1024 REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(INOUT) :: TMN 1025 LOGICAL, INTENT(IN) :: allowed_to_read 1026 INTEGER :: isn, isfc 1027 1028 !URBAN 1029 ! REAL, DIMENSION(1:num_roof_layers), INTENT(INOUT) :: DZR !Optional urban 1030 ! REAL, DIMENSION(1:num_wall_layers), INTENT(INOUT) :: DZB !Optional urban 1031 ! REAL, DIMENSION(1:num_road_layers), INTENT(INOUT) :: DZG !Optional urban 1032 REAL, OPTIONAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: DZR !Optional urban 1033 REAL, OPTIONAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: DZB !Optional urban 1034 REAL, OPTIONAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: DZG !Optional urban 1035 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TR_URB2D !Optional urban 1036 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TB_URB2D !Optional urban 1037 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TG_URB2D !Optional urban 1038 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TC_URB2D !Optional urban 1039 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: QC_URB2D !Optional urban 1040 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXR_URB2D !Optional urban 1041 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXB_URB2D !Optional urban 1042 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXG_URB2D !Optional urban 1043 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXC_URB2D !Optional urban 1044 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: SH_URB2D !Optional urban 1045 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: LH_URB2D !Optional urban 1046 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: G_URB2D !Optional urban 1047 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: RN_URB2D !Optional urban 1048 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TS_URB2D !Optional urban 1049 REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: FRC_URB2D !Optional urban 1050 INTEGER, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: UTYPE_URB2D !Optional urban 1051 ! REAL, DIMENSION( ims:ime, 1:num_roof_layers, jms:jme ), INTENT(INOUT) :: TRL_URB3D !Optional urban 1052 ! REAL, DIMENSION( ims:ime, 1:num_wall_layers, jms:jme ), INTENT(INOUT) :: TBL_URB3D !Optional urban 1053 ! REAL, DIMENSION( ims:ime, 1:num_road_layers, jms:jme ), INTENT(INOUT) :: TGL_URB3D !Optional urban 1054 REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), INTENT(INOUT) :: TRL_URB3D !Optional urban 1055 REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), INTENT(INOUT) :: TBL_URB3D !Optional urban 1056 REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), INTENT(INOUT) :: TGL_URB3D !Optional urban 1057 1058 1059 !-- calculate pbl time step 1060 1061 STEPBL = nint(BLDT*60./DT) 1062 STEPBL = max(STEPBL,1) 1063 1064 1065 !-- initialize surface layer scheme 1066 1067 sfclay_select: SELECT CASE(config_flags%sf_sfclay_physics) 1068 1069 CASE (SFCLAYSCHEME) 1070 CALL sfclayinit( allowed_to_read ) 1071 isfc = 1 1072 CASE (MYJSFCSCHEME) 1073 CALL myjsfcinit(LOWLYR,UST, & 1074 #if ( NMM_CORE == 1 ) 1075 Z0, & 1076 #else 1077 ZNT, & 1078 #endif 1079 XLAND,XICE, & 1080 IVGTYP,restart, & 1081 allowed_to_read , & 1082 ids, ide, jds, jde, kds, kde, & 1083 ims, ime, jms, jme, kms, kme, & 1084 its, ite, jts, jte, kts, kte ) 1085 isfc = 2 1086 1087 CASE (GFSSFCSCHEME) 1088 CALL myjsfcinit(LOWLYR,UST, & 1089 #if ( NMM_CORE == 1 ) 1090 Z0, & 1091 #else 1092 ZNT, & 1093 #endif 1094 XLAND,XICE, & 1095 IVGTYP,restart, & 1096 allowed_to_read , & 1097 ids, ide, jds, jde, kds, kde, & 1098 ims, ime, jms, jme, kms, kme, & 1099 its, ite, jts, jte, kts, kte ) 1100 isfc = 1 1101 1102 CASE DEFAULT 1103 1104 END SELECT sfclay_select 1105 1106 1107 !-- initialize surface scheme 1108 1109 sfc_select: SELECT CASE(config_flags%sf_surface_physics) 1110 1111 CASE (SLABSCHEME) 1112 CALL slabinit(TSK,TMN, & 1113 TSLB,ZS,DZS,num_soil_layers, & 1114 restart, & 1115 allowed_to_read , & 1116 ids, ide, jds, jde, kds, kde, & 1117 ims, ime, jms, jme, kms, kme, & 1118 its, ite, jts, jte, kts, kte ) 1119 #if (NMM_CORE == 1) 1120 CASE (NMMLSMSCHEME) 1121 CALL nmmlsminit(isn,XICE,VEGFRA,SNOW,SNOWC, CANWAT,SMSTAV, & 1122 SMSTOT, SFCRUNOFF,UDRUNOFF,GRDFLX,ACSNOW, & 1123 ACSNOM,IVGTYP,ISLTYP,TSLB,SMOIS,DZS,SFCEVP, & 1124 TMN, & 1125 num_soil_layers, & 1126 allowed_to_read , & 1127 ids,ide, jds,jde, kds,kde, & 1128 ims,ime, jms,jme, kms,kme, & 1129 its,ite, jts,jte, kts,kte ) 1130 #endif 1131 CASE (LSMSCHEME) 1132 CALL LSMINIT(VEGFRA,SNOW,SNOWC,SNOWH,CANWAT,SMSTAV, & 1133 SMSTOT, SFCRUNOFF,UDRUNOFF,ACSNOW, & 1134 ACSNOM,IVGTYP,ISLTYP,TSLB,SMOIS,SH2O,ZS,DZS, & 1135 FNDSOILW, FNDSNOWH, & 1136 num_soil_layers, restart, & 1137 allowed_to_read , & 1138 ids,ide, jds,jde, kds,kde, & 1139 ims,ime, jms,jme, kms,kme, & 1140 its,ite, jts,jte, kts,kte ) 1141 1142 !URBAN 1143 IF(UCMCALL.eq.1) THEN 1144 1145 IF ( PRESENT( FRC_URB2D ) .AND. PRESENT( UTYPE_URB2D )) THEN 1146 1147 CALL urban_param_init(DZR,DZB,DZG,num_soil_layers & !urban 1148 ) 1149 ! num_roof_layers,num_wall_layers,road_soil_layers) !urban 1150 CALL urban_var_init(TSK,TSLB,TMN,IVGTYP, & !urban 1151 ims,ime,jms,jme,num_soil_layers, & !urban 1152 ! num_roof_layers,num_wall_layers,num_road_layers, & !urban 1153 XXXR_URB2D,XXXB_URB2D,XXXG_URB2D,XXXC_URB2D, & !urban 1154 TR_URB2D,TB_URB2D,TG_URB2D,TC_URB2D,QC_URB2D, & !urban 1155 TRL_URB3D,TBL_URB3D,TGL_URB3D, & !urban 1156 SH_URB2D,LH_URB2D,G_URB2D,RN_URB2D, TS_URB2D, & ! urban 1157 FRC_URB2D, UTYPE_URB2D) !urban 1158 ELSE 1159 CALL wrf_error_fatal ( 'arguments not present for calling urban model' ) 1160 ENDIF 1161 ENDIF 1162 1163 1164 CASE (RUCLSMSCHEME) 1165 ! if(isfc .ne. 2)CALL wrf_error_fatal & 1166 ! ( 'module_physics_init: use myjsfc and myjpbl scheme for this lsm option' ) 1167 CALL lsmrucinit( SMFR3D,TSLB,SMOIS,ISLTYP,mavail, & 1168 num_soil_layers, restart, & 1169 allowed_to_read , & 1170 ids,ide, jds,jde, kds,kde, & 1171 ims,ime, jms,jme, kms,kme, & 1172 its,ite, jts,jte, kts,kte ) 1173 1174 CASE DEFAULT 1175 1176 END SELECT sfc_select 1177 1178 1179 !-- initialize pbl scheme 1180 1181 pbl_select: SELECT CASE(config_flags%bl_pbl_physics) 1182 1183 CASE (YSUSCHEME) 1184 if(isfc .ne. 1)CALL wrf_error_fatal & 1185 ( 'module_physics_init: use sfclay scheme for this pbl option' ) 1186 CALL ysuinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1187 RQCBLTEN,RQIBLTEN,P_QI, & 1188 PARAM_FIRST_SCALAR, & 1189 restart, & 1190 allowed_to_read , & 1191 ids, ide, jds, jde, kds, kde, & 1192 ims, ime, jms, jme, kms, kme, & 1193 its, ite, jts, jte, kts, kte ) 1194 CASE (MRFSCHEME) 1195 if(isfc .ne. 1)CALL wrf_error_fatal & 1196 ( 'module_physics_init: use sfclay scheme for this pbl option' ) 1197 CALL mrfinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1198 RQCBLTEN,RQIBLTEN,P_QI, & 1199 PARAM_FIRST_SCALAR, & 1200 restart, & 1201 allowed_to_read , & 1202 ids, ide, jds, jde, kds, kde, & 1203 ims, ime, jms, jme, kms, kme, & 1204 its, ite, jts, jte, kts, kte ) 1205 CASE (GFSSCHEME) 1206 if(isfc .ne. 1)CALL wrf_error_fatal & 1207 ( 'module_physics_init: use sfclay scheme for this pbl option' ) 1208 CALL gfsinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1209 RQCBLTEN,RQIBLTEN,P_QI, & 1210 PARAM_FIRST_SCALAR, & 1211 restart, & 1212 allowed_to_read , & 1213 ids, ide, jds, jde, kds, kde, & 1214 ims, ime, jms, jme, kms, kme, & 1215 its, ite, jts, jte, kts, kte ) 1216 CASE (MYJPBLSCHEME) 1217 if(isfc .ne. 2)CALL wrf_error_fatal & 1218 ( 'module_physics_init: use myjsfc scheme for this pbl option' ) 1219 CALL myjpblinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1220 TKE_MYJ,EXCH_H,restart, & 1221 allowed_to_read , & 1222 ids, ide, jds, jde, kds, kde, & 1223 ims, ime, jms, jme, kms, kme, & 1224 its, ite, jts, jte, kts, kte ) 1225 CASE DEFAULT 1226 1227 END SELECT pbl_select 1228 1229 END SUBROUTINE bl_init 1230 1231 !================================================================== 1232 SUBROUTINE cu_init(STEPCU,CUDT,DT,RTHCUTEN,RQVCUTEN,RQRCUTEN, & 1233 RQCCUTEN,RQSCUTEN,RQICUTEN,NCA,RAINC, & 1234 RAINCV,W0AVG,config_flags,restart, & 1235 CLDEFI,LOWLYR,MASS_FLUX, & 1236 RTHFTEN, RQVFTEN, & 1237 APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 1238 APR_CAPMA,APR_CAPME,APR_CAPMI, & 1239 allowed_to_read, start_of_simulation, & 1240 ids, ide, jds, jde, kds, kde, & 1241 ims, ime, jms, jme, kms, kme, & 1242 its, ite, jts, jte, kts, kte ) 1243 !------------------------------------------------------------------ 1244 USE module_cu_kf 1245 USE module_cu_kfeta 1246 USE MODULE_CU_BMJ 1247 USE module_cu_gd 1248 USE module_cu_sas 1249 !------------------------------------------------------------------ 1250 IMPLICIT NONE 1251 !------------------------------------------------------------------ 1252 TYPE (grid_config_rec_type) :: config_flags 1253 LOGICAL , INTENT(IN) :: restart 1254 1255 1256 INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 1257 ims, ime, jms, jme, kms, kme, & 1258 its, ite, jts, jte, kts, kte 1259 1260 REAL , INTENT(IN) :: DT, CUDT 1261 LOGICAL , INTENT(IN) :: start_of_simulation 1262 LOGICAL , INTENT(IN) :: allowed_to_read 1263 INTEGER , INTENT(INOUT) :: STEPCU 1264 1265 REAL , DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(INOUT) :: & 1266 RTHCUTEN, RQVCUTEN, RQCCUTEN, RQRCUTEN, RQICUTEN, & 1267 RQSCUTEN 1268 1269 REAL , DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: W0AVG 1270 1271 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 1272 RTHFTEN, RQVFTEN 1273 1274 REAL , DIMENSION( ims:ime , jms:jme ), INTENT(OUT):: RAINC, RAINCV 1275 1276 REAL , DIMENSION( ims:ime , jms:jme ), INTENT(OUT):: CLDEFI 1277 1278 REAL , DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: NCA 1279 1280 REAL , DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: MASS_FLUX, & 1281 APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 1282 APR_CAPMA,APR_CAPME,APR_CAPMI 1283 1284 INTEGER, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: LOWLYR 1285 1286 ! LOCAL VAR 1287 1288 INTEGER :: i,j,itf,jtf 1289 1290 !-------------------------------------------------------------------- 1291 1292 !-- calculate cumulus parameterization time step 1293 1294 itf=min0(ite,ide-1) 1295 jtf=min0(jte,jde-1) 1296 ! 1297 STEPCU = nint(CUDT*60./DT) 1298 STEPCU = max(STEPCU,1) 1299 1300 !-- initialization 1301 1302 IF(start_of_simulation)THEN 1303 DO j=jts,jtf 1304 DO i=its,itf 1305 RAINC(i,j)=0. 1306 RAINCV(i,j)=0. 1307 ENDDO 1308 ENDDO 1309 ENDIF 1310 1311 cps_select: SELECT CASE(config_flags%cu_physics) 1312 1313 CASE (KFSCHEME) 1314 CALL kfinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQRCUTEN, & 1315 RQICUTEN,RQSCUTEN,NCA,W0AVG,P_QI,P_QS, & 1316 PARAM_FIRST_SCALAR,restart, & 1317 allowed_to_read , & 1318 ids, ide, jds, jde, kds, kde, & 1319 ims, ime, jms, jme, kms, kme, & 1320 its, ite, jts, jte, kts, kte ) 1321 1322 CASE (BMJSCHEME) 1323 CALL bmjinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQRCUTEN, & 1324 CLDEFI,LOWLYR,cp,r_d,restart, & 1325 allowed_to_read , & 1326 ids, ide, jds, jde, kds, kde, & 1327 ims, ime, jms, jme, kms, kme, & 1328 its, ite, jts, jte, kts, kte ) 1329 1330 CASE (KFETASCHEME) 1331 CALL kf_eta_init(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQRCUTEN, & 1332 RQICUTEN,RQSCUTEN,NCA,W0AVG,P_QI,P_QS, & 1333 SVP1,SVP2,SVP3,SVPT0, & 1334 PARAM_FIRST_SCALAR,restart, & 1335 allowed_to_read , & 1336 ids, ide, jds, jde, kds, kde, & 1337 ims, ime, jms, jme, kms, kme, & 1338 its, ite, jts, jte, kts, kte ) 1339 CASE (GDSCHEME) 1340 CALL gdinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQICUTEN, & 1341 MASS_FLUX,cp,restart, & 1342 P_QC,P_QI,PARAM_FIRST_SCALAR, & 1343 RTHFTEN, RQVFTEN, & 1344 APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 1345 APR_CAPMA,APR_CAPME,APR_CAPMI, & 1346 allowed_to_read , & 1347 ids, ide, jds, jde, kds, kde, & 1348 ims, ime, jms, jme, kms, kme, & 1349 its, ite, jts, jte, kts, kte ) 1350 CASE (SASSCHEME) 1351 CALL sasinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQICUTEN, & 1352 restart,P_QC,P_QI,PARAM_FIRST_SCALAR, & 1353 allowed_to_read , & 1354 ids, ide, jds, jde, kds, kde, & 1355 ims, ime, jms, jme, kms, kme, & 1356 its, ite, jts, jte, kts, kte ) 1357 1358 CASE DEFAULT 1359 1360 END SELECT cps_select 1361 1362 END SUBROUTINE cu_init 1363 1364 !================================================================== 1365 SUBROUTINE mp_init(RAINNC,config_flags,restart,warm_rain, & 1366 adv_moist_cond, & 1367 MPDT, DT, DX, DY, LOWLYR, & ! for eta mp 1368 F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY, & ! for eta mp 1369 mp_restart_state,tbpvs_state,tbpvs0_state, & ! eta mp 1370 allowed_to_read, start_of_simulation, & 1371 ids, ide, jds, jde, kds, kde, & 1372 ims, ime, jms, jme, kms, kme, & 1373 its, ite, jts, jte, kts, kte ) 1374 !------------------------------------------------------------------ 1375 USE module_mp_ncloud3 1376 USE module_mp_ncloud5 1377 USE module_mp_wsm3 1378 USE module_mp_wsm5 1379 USE module_mp_wsm6 1380 USE module_mp_etanew 1381 USE module_mp_thompson 1382 !------------------------------------------------------------------ 1383 IMPLICIT NONE 1384 !------------------------------------------------------------------ 1385 ! Arguments 1386 TYPE (grid_config_rec_type) :: config_flags 1387 LOGICAL , INTENT(IN) :: restart 1388 LOGICAL , INTENT(OUT) :: warm_rain,adv_moist_cond 1389 REAL , INTENT(IN) :: MPDT, DT, DX, DY 1390 LOGICAL , INTENT(IN) :: start_of_simulation 1391 1392 INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 1393 ims, ime, jms, jme, kms, kme, & 1394 its, ite, jts, jte, kts, kte 1395 1396 INTEGER , DIMENSION( ims:ime , jms:jme ) ,INTENT(INOUT) :: LOWLYR 1397 REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(INOUT) :: RAINNC 1398 REAL, DIMENSION( ims:ime , kms:kme, jms:jme ) , INTENT(INOUT) :: & 1399 F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY 1400 REAL , DIMENSION(:) ,INTENT(INOUT) :: mp_restart_state,tbpvs_state,tbpvs0_state 1401 LOGICAL , INTENT(IN) :: allowed_to_read 1402 1403 ! Local 1404 INTEGER :: i, j, itf, jtf 1405 1406 warm_rain = .false. 1407 adv_moist_cond = .true. 1408 itf=min0(ite,ide-1) 1409 jtf=min0(jte,jde-1) 1410 1411 IF(start_of_simulation)THEN 1412 DO j=jts,jtf 1413 DO i=its,itf 1414 RAINNC(i,j) = 0. 1415 ENDDO 1416 ENDDO 1417 ENDIF 1418 1419 mp_select: SELECT CASE(config_flags%mp_physics) 1420 1421 CASE (KESSLERSCHEME) 1422 warm_rain = .true. 1423 CASE (WSM3SCHEME) 1424 CALL wsm3init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1425 CASE (WSM5SCHEME) 1426 CALL wsm5init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1427 CASE (WSM6SCHEME) 1428 CALL wsm6init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1429 CASE (ETAMPNEW) 1430 adv_moist_cond = .false. 1431 CALL etanewinit (MPDT,DT,DX,DY,LOWLYR,restart, & 1432 F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY, & 1433 mp_restart_state,tbpvs_state,tbpvs0_state,& 1434 allowed_to_read, & 1435 ids, ide, jds, jde, kds, kde, & 1436 ims, ime, jms, jme, kms, kme, & 1437 its, ite, jts, jte, kts, kte ) 1438 CASE (THOMPSON) 1439 CALL thompson_init 1440 CASE (NCEPCLOUD3) 1441 CALL ncloud3init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1442 CASE (NCEPCLOUD5) 1443 CALL ncloud5init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1444 1445 CASE DEFAULT 1446 1447 END SELECT mp_select 1448 1449 END SUBROUTINE mp_init 1450 1451 #if ( EM_CORE == 1 ) 1452 !========================================================== 1453 SUBROUTINE fg_init(STEPFG,FGDT,DT,id,RUNDGDTEN,RVNDGDTEN, & 1454 RTHNDGDTEN,RQVNDGDTEN,RMUNDGDTEN, & 1455 config_flags,restart, & 1456 allowed_to_read , & 1457 ids, ide, jds, jde, kds, kde, & 1458 ims, ime, jms, jme, kms, kme, & 1459 its, ite, jts, jte, kts, kte ) 1460 1461 1462 !-------------------------------------------------------------------- 1463 USE module_fdda_psufddagd 1464 !-------------------------------------------------------------------- 1465 IMPLICIT NONE 1466 !-------------------------------------------------------------------- 1467 TYPE (grid_config_rec_type) :: config_flags 1468 LOGICAL , INTENT(IN) :: restart 1469 1470 INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 1471 ims, ime, jms, jme, kms, kme, & 1472 its, ite, jts, jte, kts, kte 1473 1474 REAL , INTENT(IN) :: DT, FGDT 1475 INTEGER , INTENT(IN) :: id 1476 INTEGER , INTENT(INOUT) :: STEPFG 1477 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 1478 RUNDGDTEN, & 1479 RVNDGDTEN, & 1480 RTHNDGDTEN, & 1481 RQVNDGDTEN 1482 REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(OUT) :: RMUNDGDTEN 1483 1484 LOGICAL, INTENT(IN) :: allowed_to_read 1485 !-------------------------------------------------------------------- 1486 1487 !-- calculate pbl time step 1488 1489 STEPFG = nint(FGDT*60./DT) 1490 STEPFG = max(STEPFG,1) 1491 1492 1493 !-- initialize fdda scheme 1494 1495 fdda_select: SELECT CASE(config_flags%grid_fdda) 1496 1497 CASE (PSUFDDAGD) 1498 CALL fddagdinit(id,rundgdten,rvndgdten,rthndgdten,rqvndgdten,rmundgdten,& 1499 config_flags%run_hours, & 1500 config_flags%if_no_pbl_nudging_uv, & 1501 config_flags%if_no_pbl_nudging_t, & 1502 config_flags%if_no_pbl_nudging_q, & 1503 config_flags%if_zfac_uv, & 1504 config_flags%k_zfac_uv, & 1505 config_flags%if_zfac_t, & 1506 config_flags%k_zfac_t, & 1507 config_flags%if_zfac_q, & 1508 config_flags%k_zfac_q, & 1509 config_flags%guv, & 1510 config_flags%gt, config_flags%gq, & 1511 config_flags%if_ramping, config_flags%dtramp_min, & 1512 config_flags%gfdda_end_h, & 1513 restart, allowed_to_read, & 1514 ids, ide, jds, jde, kds, kde, & 1515 ims, ime, jms, jme, kms, kme, & 1516 its, ite, jts, jte, kts, kte ) 1517 CASE DEFAULT 1518 1519 END SELECT fdda_select 1520 1521 END SUBROUTINE fg_init 1522 1523 !------------------------------------------------------------------- 1524 SUBROUTINE fdob_init(obs_nudge_opt, maxdom, inest, parid, & 1525 dx_coarse, restart, obs_twindo, itimestep, & 1526 s_sn_cg, e_sn_cg, s_we_cg, e_we_cg, & 1527 fdob, & 1528 ids, ide, jds, jde, kds, kde, & 1529 ims, ime, jms, jme, kms, kme, & 1530 its, ite, jts, jte, kts, kte ) 1531 1532 1533 !-------------------------------------------------------------------- 1534 USE module_domain 1535 USE module_fddaobs_rtfdda 1536 !-------------------------------------------------------------------- 1537 IMPLICIT NONE 1538 !-------------------------------------------------------------------- 1539 INTEGER , INTENT(IN) :: maxdom 1540 INTEGER , INTENT(IN) :: obs_nudge_opt(maxdom) 1541 INTEGER , INTENT(IN) :: ids,ide, jds,jde, kds,kde, & 1542 ims,ime, jms,jme, kms,kme, & 1543 its,ite, jts,jte, kts,kte 1544 INTEGER , INTENT(IN) :: inest 1545 INTEGER , INTENT(IN) :: parid(maxdom) 1546 REAL , INTENT(IN) :: dx_coarse 1547 LOGICAL , INTENT(IN) :: restart 1548 REAL , INTENT(INOUT) :: obs_twindo 1549 INTEGER , INTENT(IN) :: itimestep 1550 INTEGER, intent(in) :: s_sn_cg ! starting north-south coarse-grid index 1551 INTEGER, intent(in) :: e_sn_cg ! ending north-south coarse-grid index 1552 INTEGER, intent(in) :: s_we_cg ! starting west-east coarse-grid index 1553 INTEGER, intent(in) :: e_we_cg ! ending west-east coarse-grid index 1554 1555 TYPE(fdob_type), INTENT(INOUT) :: fdob 1556 1557 INTEGER :: e_sn ! ending north-south grid index 1558 !-------------------------------------------------------------------- 1559 !-- initialize fdda obs-nudging scheme 1560 1561 e_sn = jde 1562 CALL fddaobs_init(obs_nudge_opt, maxdom, inest, parid, & 1563 dx_coarse, restart, obs_twindo, itimestep, & 1564 e_sn, s_sn_cg, e_sn_cg, s_we_cg, e_we_cg, & 1565 fdob, & 1566 ids,ide, jds,jde, kds,kde, & 1567 ims,ime, jms,jme, kms,kme, & 1568 its,ite, jts,jte, kts,kte) 1569 1570 END SUBROUTINE fdob_init 1571 #endif 1572 726 !!!******MARS MARS 727 !!!******MARS MARS 728 !!!******MARS MARS 729 730 !!===================================================================== 731 ! SUBROUTINE ra_init(id,STEPRA,RADT,DT,RTHRATEN,RTHRATENLW, & 732 ! RTHRATENSW,CLDFRA,EMISS,cen_lat,JULYR,JULDAY,GMT, & 733 ! levsiz,XLAT,n_ozmixm, & 734 ! ozmixm,pin, & ! Optional 735 ! m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2, & ! Optional 736 ! paerlev,n_aerosolc, & 737 ! sfull,shalf,pptop,swrad_scat, & 738 ! config_flags,restart, & 739 ! allowed_to_read, start_of_simulation, & 740 ! ids, ide, jds, jde, kds, kde, & 741 ! ims, ime, jms, jme, kms, kme, & 742 ! its, ite, jts, jte, kts, kte ) 743 !!--------------------------------------------------------------------- 744 ! USE module_ra_rrtm 745 ! USE module_ra_cam 746 ! USE module_ra_sw 747 ! USE module_ra_gsfcsw 748 ! USE module_ra_gfdleta 749 ! USE module_domain 750 !!--------------------------------------------------------------------- 751 ! IMPLICIT NONE 752 !!--------------------------------------------------------------------- 753 ! INTEGER, INTENT(IN) :: id 754 ! TYPE (grid_config_rec_type) :: config_flags 755 ! LOGICAL , INTENT(IN) :: restart 756 ! LOGICAL, INTENT(IN) :: allowed_to_read 757 ! 758 ! INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 759 ! ims, ime, jms, jme, kms, kme, & 760 ! its, ite, jts, jte, kts, kte 761 ! 762 ! INTEGER , INTENT(IN) :: JULDAY,JULYR 763 ! REAL , INTENT(IN) :: DT, RADT, cen_lat, GMT, pptop, & 764 ! swrad_scat 765 ! LOGICAL, INTENT(IN) :: start_of_simulation 766 ! 767 ! INTEGER, INTENT(IN ) :: levsiz, n_ozmixm 768 ! INTEGER, INTENT(IN ) :: paerlev, n_aerosolc 769 ! 770 ! REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(IN) :: XLAT 771 ! 772 ! REAL, DIMENSION( ims:ime, levsiz, jms:jme, n_ozmixm ), OPTIONAL, & 773 ! INTENT(INOUT) :: OZMIXM 774 ! 775 ! REAL, DIMENSION(ims:ime,jms:jme), OPTIONAL, INTENT(INOUT) :: m_ps_1,m_ps_2 776 ! REAL, DIMENSION(paerlev), OPTIONAL, INTENT(INOUT) :: m_hybi 777 ! REAL, DIMENSION( ims:ime, paerlev, jms:jme, n_aerosolc ), OPTIONAL, & 778 ! INTENT(INOUT) :: aerosolc_1, aerosolc_2 779 ! 780 ! REAL, DIMENSION(levsiz), OPTIONAL, INTENT(INOUT) :: PIN 781 ! 782 ! INTEGER , INTENT(INOUT) :: STEPRA 783 ! INTEGER :: isn 784 ! 785 ! REAL , DIMENSION( kms:kme ) , INTENT(IN) :: sfull, shalf 786 ! REAL , DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 787 ! RTHRATEN, & 788 ! RTHRATENLW, & 789 ! RTHRATENSW, & 790 ! CLDFRA 791 ! REAL , DIMENSION( ims:ime , jms:jme ) , INTENT(INOUT) :: EMISS 792 ! LOGICAL :: etalw = .false. 793 ! LOGICAL :: camlw = .false. 794 ! LOGICAL :: etamp = .false. 795 ! integer :: month,iday 796 ! INTEGER :: i, j, k, itf, jtf, ktf 797 !!--------------------------------------------------------------------- 798 ! 799 ! jtf=min0(jte,jde-1) 800 ! ktf=min0(kte,kde-1) 801 ! itf=min0(ite,ide-1) 802 ! 803 !!--------------------------------------------------------------------- 804 ! 805 !!-- calculate radiation time step 806 ! 807 ! STEPRA = nint(RADT*60./DT) 808 ! STEPRA = max(STEPRA,1) 809 ! 810 !!-- initialization 811 ! 812 ! IF(start_of_simulation)THEN 813 ! DO j=jts,jtf 814 ! DO k=kts,ktf 815 ! DO i=its,itf 816 ! RTHRATEN(i,k,j)=0. 817 ! RTHRATENLW(i,k,j)=0. 818 ! RTHRATENSW(i,k,j)=0. 819 ! CLDFRA(i,k,j)=0. 820 ! ENDDO 821 ! ENDDO 822 ! ENDDO 823 ! ENDIF 824 ! 825 !!-- find out which microphysics option is used first 826 ! 827 ! mp_select: SELECT CASE(config_flags%mp_physics) 828 ! 829 ! CASE (ETAMPNEW) 830 ! etamp = .true. 831 ! 832 ! END SELECT mp_select 833 ! 834 !!-- chose long wave radiation scheme 835 ! 836 ! lwrad_select: SELECT CASE(config_flags%ra_lw_physics) 837 ! 838 ! CASE (RRTMSCHEME) 839 ! CALL rrtminit( & 840 ! allowed_to_read , & 841 ! ids, ide, jds, jde, kds, kde, & 842 ! ims, ime, jms, jme, kms, kme, & 843 ! its, ite, jts, jte, kts, kte ) 844 ! 845 ! CASE (CAMLWSCHEME) 846 !#ifdef MAC_KLUDGE 847 ! CALL wrf_error_fatal ( 'CAM radiation scheme not supported under the chosen build configuration' ) 848 !#endif 849 ! IF ( PRESENT( OZMIXM ) .AND. PRESENT( PIN ) .AND. & 850 ! PRESENT(M_PS_1) .AND. PRESENT(M_PS_2) .AND. & 851 ! PRESENT(M_HYBI) .AND. PRESENT(AEROSOLC_1) & 852 ! .AND. PRESENT(AEROSOLC_2)) THEN 853 ! CALL camradinit( & 854 ! R_D,R_V,CP,G,STBOLT,EP_2,shalf,pptop, & 855 ! ozmixm,pin,levsiz,XLAT,n_ozmixm, & 856 ! m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2,& 857 ! paerlev, n_aerosolc, & 858 ! ids, ide, jds, jde, kds, kde, & 859 ! ims, ime, jms, jme, kms, kme, & 860 ! its, ite, jts, jte, kts, kte ) 861 ! ELSE 862 ! CALL wrf_error_fatal ( 'arguments not present for calling cam radiation' ) 863 ! ENDIF 864 ! 865 ! camlw = .true. 866 ! 867 ! CASE (GFDLLWSCHEME) 868 ! CALL nl_get_start_month(id,month) 869 ! CALL nl_get_start_day(id,iday) 870 ! CALL gfdletainit(emiss,sfull,shalf,pptop, & 871 ! julyr,month,iday,gmt, & 872 ! config_flags,allowed_to_read, & 873 ! ids, ide, jds, jde, kds, kde, & 874 ! ims, ime, jms, jme, kms, kme, & 875 ! its, ite, jts, jte, kts, kte ) 876 ! etalw = .true. 877 ! CASE DEFAULT 878 ! 879 ! END SELECT lwrad_select 880 !!-- initialize short wave radiation scheme 881 ! 882 ! swrad_select: SELECT CASE(config_flags%ra_sw_physics) 883 ! 884 ! CASE (SWRADSCHEME) 885 ! CALL swinit( & 886 ! swrad_scat, & 887 ! allowed_to_read , & 888 ! ids, ide, jds, jde, kds, kde, & 889 ! ims, ime, jms, jme, kms, kme, & 890 ! its, ite, jts, jte, kts, kte ) 891 ! 892 ! CASE (CAMSWSCHEME) 893 !#ifdef MAC_KLUDGE 894 ! CALL wrf_error_fatal ( 'CAM radiation scheme not supported under the chosen build configuration' ) 895 !#endif 896 ! IF(.not.camlw)THEN 897 ! CALL camradinit( & 898 ! R_D,R_V,CP,G,STBOLT,EP_2,shalf,pptop, & 899 ! ozmixm,pin,levsiz,XLAT,n_ozmixm, & 900 ! m_ps_1,m_ps_2,m_hybi,aerosolc_1,aerosolc_2,& 901 ! paerlev, n_aerosolc, & 902 ! ids, ide, jds, jde, kds, kde, & 903 ! ims, ime, jms, jme, kms, kme, & 904 ! its, ite, jts, jte, kts, kte ) 905 ! ENDIF 906 ! 907 ! CASE (GSFCSWSCHEME) 908 ! CALL gsfc_swinit(cen_lat, allowed_to_read ) 909 ! 910 ! CASE (GFDLSWSCHEME) 911 ! IF(.not.etalw)THEN 912 ! CALL nl_get_start_month(id,month) 913 ! CALL nl_get_start_day(id,iday) 914 ! CALL gfdletainit(emiss,sfull,shalf,pptop, & 915 ! julyr,month,iday,gmt, & 916 ! config_flags,allowed_to_read, & 917 ! ids, ide, jds, jde, kds, kde, & 918 ! ims, ime, jms, jme, kms, kme, & 919 ! its, ite, jts, jte, kts, kte ) 920 ! ENDIF 921 ! 922 ! CASE DEFAULT 923 ! 924 ! END SELECT swrad_select 925 ! 926 ! END SUBROUTINE ra_init 927 ! 928 ! SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & 929 ! RQVBLTEN,RQCBLTEN,RQIBLTEN,TSK,TMN, & 930 ! config_flags,restart,UST,LOWLYR,TSLB,ZS,DZS, & 931 ! num_soil_layers,TKE_MYJ,EXCH_H,VEGFRA, & 932 ! SNOW,SNOWC, CANWAT,SMSTAV, & 933 ! SMSTOT, SFCRUNOFF,UDRUNOFF,ACSNOW,ACSNOM, & 934 ! IVGTYP,ISLTYP,SMOIS,SMFR3D,mavail, & 935 ! SNOWH,SH2O,FNDSOILW, FNDSNOWH, & 936 !#if ( NMM_CORE == 1 ) 937 ! Z0,XLAND,XICE, & 938 !#else 939 ! ZNT,XLAND,XICE, & 940 !#endif 941 ! SFCEVP,GRDFLX, & 942 ! allowed_to_read, & 943 !! num_roof_layers,num_wall_layers,num_road_layers,& !Optional urban 944 ! DZR, DZB, DZG, & !Optional urban 945 ! TR_URB2D,TB_URB2D,TG_URB2D,TC_URB2D,QC_URB2D, & !Optional urban 946 ! XXXR_URB2D,XXXB_URB2D,XXXG_URB2D,XXXC_URB2D, & !Optional urban 947 ! TRL_URB3D, TBL_URB3D, TGL_URB3D, & !Optional urban 948 ! SH_URB2D,LH_URB2D,G_URB2D,RN_URB2D, & !Optional urban 949 ! TS_URB2D, FRC_URB2D, UTYPE_URB2D,UCMCALL, & !Optional urban 950 ! ids, ide, jds, jde, kds, kde, & 951 ! ims, ime, jms, jme, kms, kme, & 952 ! its, ite, jts, jte, kts, kte ) 953 !!-------------------------------------------------------------------- 954 ! USE module_sf_sfclay 955 ! USE module_sf_slab 956 ! USE module_bl_ysu 957 ! USE module_bl_mrf 958 ! USE module_bl_gfs 959 ! USE module_sf_myjsfc 960 ! USE module_sf_noahlsm 961 ! USE module_sf_urban 962 ! USE module_sf_ruclsm 963 ! USE module_bl_myjpbl 964 !#if (NMM_CORE == 1) 965 ! USE module_sf_lsm_nmm 966 !#endif 967 !!-------------------------------------------------------------------- 968 ! IMPLICIT NONE 969 !!-------------------------------------------------------------------- 970 ! TYPE (grid_config_rec_type) :: config_flags 971 ! LOGICAL , INTENT(IN) :: restart 972 ! LOGICAL, INTENT(IN) :: FNDSOILW, FNDSNOWH 973 ! 974 ! INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 975 ! ims, ime, jms, jme, kms, kme, & 976 ! its, ite, jts, jte, kts, kte 977 ! INTEGER , INTENT(IN) :: num_soil_layers 978 ! INTEGER , INTENT(IN) :: UCMCALL 979 ! 980 ! REAL , INTENT(IN) :: DT, BLDT 981 ! INTEGER , INTENT(INOUT) :: STEPBL 982 ! 983 ! REAL, DIMENSION( ims:ime , 1:num_soil_layers , jms:jme ), & 984 ! INTENT(OUT) :: SMFR3D 985 ! 986 ! REAL, DIMENSION( ims:ime , 1:num_soil_layers , jms:jme ),& 987 ! INTENT(INOUT) :: SMOIS,SH2O,TSLB 988 ! 989 ! REAL, DIMENSION( ims:ime, jms:jme ) , & 990 ! INTENT(INOUT) :: SNOW, & 991 ! SNOWH, & 992 ! SNOWC, & 993 ! CANWAT, & 994 ! MAVAIL, & 995 ! SMSTAV, & 996 ! SMSTOT, & 997 ! SFCRUNOFF, & 998 ! UDRUNOFF, & 999 ! ACSNOW, & 1000 ! VEGFRA, & 1001 ! ACSNOM, & 1002 ! SFCEVP, & 1003 ! GRDFLX, & 1004 ! UST, & 1005 !#if ( NMM_CORE == 1 ) 1006 ! Z0, & 1007 !#else 1008 ! ZNT, & 1009 !#endif 1010 ! XLAND, & 1011 ! XICE 1012 ! 1013 ! INTEGER, DIMENSION( ims:ime, jms:jme ) , & 1014 ! INTENT(INOUT) :: IVGTYP, & 1015 ! ISLTYP, & 1016 ! LOWLYR 1017 ! 1018 ! 1019 ! REAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: ZS,DZS 1020 ! 1021 ! REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 1022 ! RUBLTEN, & 1023 ! RVBLTEN, & 1024 ! EXCH_H, & 1025 ! RTHBLTEN, & 1026 ! RQVBLTEN, & 1027 ! RQCBLTEN, & 1028 ! RQIBLTEN, & 1029 ! TKE_MYJ 1030 ! 1031 ! REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(IN) :: TSK 1032 ! REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(INOUT) :: TMN 1033 ! LOGICAL, INTENT(IN) :: allowed_to_read 1034 ! INTEGER :: isn, isfc 1035 ! 1036 !!URBAN 1037 !! REAL, DIMENSION(1:num_roof_layers), INTENT(INOUT) :: DZR !Optional urban 1038 !! REAL, DIMENSION(1:num_wall_layers), INTENT(INOUT) :: DZB !Optional urban 1039 !! REAL, DIMENSION(1:num_road_layers), INTENT(INOUT) :: DZG !Optional urban 1040 ! REAL, OPTIONAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: DZR !Optional urban 1041 ! REAL, OPTIONAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: DZB !Optional urban 1042 ! REAL, OPTIONAL, DIMENSION(1:num_soil_layers), INTENT(INOUT) :: DZG !Optional urban 1043 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TR_URB2D !Optional urban 1044 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TB_URB2D !Optional urban 1045 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TG_URB2D !Optional urban 1046 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TC_URB2D !Optional urban 1047 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: QC_URB2D !Optional urban 1048 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXR_URB2D !Optional urban 1049 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXB_URB2D !Optional urban 1050 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXG_URB2D !Optional urban 1051 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: XXXC_URB2D !Optional urban 1052 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: SH_URB2D !Optional urban 1053 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: LH_URB2D !Optional urban 1054 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: G_URB2D !Optional urban 1055 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: RN_URB2D !Optional urban 1056 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TS_URB2D !Optional urban 1057 ! REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: FRC_URB2D !Optional urban 1058 ! INTEGER, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: UTYPE_URB2D !Optional urban 1059 !! REAL, DIMENSION( ims:ime, 1:num_roof_layers, jms:jme ), INTENT(INOUT) :: TRL_URB3D !Optional urban 1060 !! REAL, DIMENSION( ims:ime, 1:num_wall_layers, jms:jme ), INTENT(INOUT) :: TBL_URB3D !Optional urban 1061 !! REAL, DIMENSION( ims:ime, 1:num_road_layers, jms:jme ), INTENT(INOUT) :: TGL_URB3D !Optional urban 1062 ! REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), INTENT(INOUT) :: TRL_URB3D !Optional urban 1063 ! REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), INTENT(INOUT) :: TBL_URB3D !Optional urban 1064 ! REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_soil_layers, jms:jme ), INTENT(INOUT) :: TGL_URB3D !Optional urban 1065 ! 1066 ! 1067 !!-- calculate pbl time step 1068 ! 1069 ! STEPBL = nint(BLDT*60./DT) 1070 ! STEPBL = max(STEPBL,1) 1071 ! 1072 ! 1073 !!-- initialize surface layer scheme 1074 ! 1075 ! sfclay_select: SELECT CASE(config_flags%sf_sfclay_physics) 1076 ! 1077 ! CASE (SFCLAYSCHEME) 1078 ! CALL sfclayinit( allowed_to_read ) 1079 ! isfc = 1 1080 ! CASE (MYJSFCSCHEME) 1081 ! CALL myjsfcinit(LOWLYR,UST, & 1082 !#if ( NMM_CORE == 1 ) 1083 ! Z0, & 1084 !#else 1085 ! ZNT, & 1086 !#endif 1087 ! XLAND,XICE, & 1088 ! IVGTYP,restart, & 1089 ! allowed_to_read , & 1090 ! ids, ide, jds, jde, kds, kde, & 1091 ! ims, ime, jms, jme, kms, kme, & 1092 ! its, ite, jts, jte, kts, kte ) 1093 ! isfc = 2 1094 ! 1095 ! CASE (GFSSFCSCHEME) 1096 ! CALL myjsfcinit(LOWLYR,UST, & 1097 !#if ( NMM_CORE == 1 ) 1098 ! Z0, & 1099 !#else 1100 ! ZNT, & 1101 !#endif 1102 ! XLAND,XICE, & 1103 ! IVGTYP,restart, & 1104 ! allowed_to_read , & 1105 ! ids, ide, jds, jde, kds, kde, & 1106 ! ims, ime, jms, jme, kms, kme, & 1107 ! its, ite, jts, jte, kts, kte ) 1108 ! isfc = 1 1109 ! 1110 ! CASE DEFAULT 1111 ! 1112 ! END SELECT sfclay_select 1113 ! 1114 ! 1115 !!-- initialize surface scheme 1116 ! 1117 ! sfc_select: SELECT CASE(config_flags%sf_surface_physics) 1118 ! 1119 ! CASE (SLABSCHEME) 1120 ! CALL slabinit(TSK,TMN, & 1121 ! TSLB,ZS,DZS,num_soil_layers, & 1122 ! restart, & 1123 ! allowed_to_read , & 1124 ! ids, ide, jds, jde, kds, kde, & 1125 ! ims, ime, jms, jme, kms, kme, & 1126 ! its, ite, jts, jte, kts, kte ) 1127 !#if (NMM_CORE == 1) 1128 ! CASE (NMMLSMSCHEME) 1129 ! CALL nmmlsminit(isn,XICE,VEGFRA,SNOW,SNOWC, CANWAT,SMSTAV, & 1130 ! SMSTOT, SFCRUNOFF,UDRUNOFF,GRDFLX,ACSNOW, & 1131 ! ACSNOM,IVGTYP,ISLTYP,TSLB,SMOIS,DZS,SFCEVP, & 1132 ! TMN, & 1133 ! num_soil_layers, & 1134 ! allowed_to_read , & 1135 ! ids,ide, jds,jde, kds,kde, & 1136 ! ims,ime, jms,jme, kms,kme, & 1137 ! its,ite, jts,jte, kts,kte ) 1138 !#endif 1139 ! CASE (LSMSCHEME) 1140 ! CALL LSMINIT(VEGFRA,SNOW,SNOWC,SNOWH,CANWAT,SMSTAV, & 1141 ! SMSTOT, SFCRUNOFF,UDRUNOFF,ACSNOW, & 1142 ! ACSNOM,IVGTYP,ISLTYP,TSLB,SMOIS,SH2O,ZS,DZS, & 1143 ! FNDSOILW, FNDSNOWH, & 1144 ! num_soil_layers, restart, & 1145 ! allowed_to_read , & 1146 ! ids,ide, jds,jde, kds,kde, & 1147 ! ims,ime, jms,jme, kms,kme, & 1148 ! its,ite, jts,jte, kts,kte ) 1149 ! 1150 !!URBAN 1151 ! IF(UCMCALL.eq.1) THEN 1152 ! 1153 ! IF ( PRESENT( FRC_URB2D ) .AND. PRESENT( UTYPE_URB2D )) THEN 1154 ! 1155 ! CALL urban_param_init(DZR,DZB,DZG,num_soil_layers & !urban 1156 ! ) 1157 !! num_roof_layers,num_wall_layers,road_soil_layers) !urban 1158 ! CALL urban_var_init(TSK,TSLB,TMN,IVGTYP, & !urban 1159 ! ims,ime,jms,jme,num_soil_layers, & !urban 1160 !! num_roof_layers,num_wall_layers,num_road_layers, & !urban 1161 ! XXXR_URB2D,XXXB_URB2D,XXXG_URB2D,XXXC_URB2D, & !urban 1162 ! TR_URB2D,TB_URB2D,TG_URB2D,TC_URB2D,QC_URB2D, & !urban 1163 ! TRL_URB3D,TBL_URB3D,TGL_URB3D, & !urban 1164 ! SH_URB2D,LH_URB2D,G_URB2D,RN_URB2D, TS_URB2D, & ! urban 1165 ! FRC_URB2D, UTYPE_URB2D) !urban 1166 ! ELSE 1167 ! CALL wrf_error_fatal ( 'arguments not present for calling urban model' ) 1168 ! ENDIF 1169 ! ENDIF 1170 ! 1171 ! 1172 ! CASE (RUCLSMSCHEME) 1173 !! if(isfc .ne. 2)CALL wrf_error_fatal & 1174 !! ( 'module_physics_init: use myjsfc and myjpbl scheme for this lsm option' ) 1175 ! CALL lsmrucinit( SMFR3D,TSLB,SMOIS,ISLTYP,mavail, & 1176 ! num_soil_layers, restart, & 1177 ! allowed_to_read , & 1178 ! ids,ide, jds,jde, kds,kde, & 1179 ! ims,ime, jms,jme, kms,kme, & 1180 ! its,ite, jts,jte, kts,kte ) 1181 ! 1182 ! CASE DEFAULT 1183 ! 1184 ! END SELECT sfc_select 1185 ! 1186 ! 1187 !!-- initialize pbl scheme 1188 ! 1189 ! pbl_select: SELECT CASE(config_flags%bl_pbl_physics) 1190 ! 1191 ! CASE (YSUSCHEME) 1192 ! if(isfc .ne. 1)CALL wrf_error_fatal & 1193 ! ( 'module_physics_init: use sfclay scheme for this pbl option' ) 1194 ! CALL ysuinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1195 ! RQCBLTEN,RQIBLTEN,P_QI, & 1196 ! PARAM_FIRST_SCALAR, & 1197 ! restart, & 1198 ! allowed_to_read , & 1199 ! ids, ide, jds, jde, kds, kde, & 1200 ! ims, ime, jms, jme, kms, kme, & 1201 ! its, ite, jts, jte, kts, kte ) 1202 ! CASE (MRFSCHEME) 1203 ! if(isfc .ne. 1)CALL wrf_error_fatal & 1204 ! ( 'module_physics_init: use sfclay scheme for this pbl option' ) 1205 ! CALL mrfinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1206 ! RQCBLTEN,RQIBLTEN,P_QI, & 1207 ! PARAM_FIRST_SCALAR, & 1208 ! restart, & 1209 ! allowed_to_read , & 1210 ! ids, ide, jds, jde, kds, kde, & 1211 ! ims, ime, jms, jme, kms, kme, & 1212 ! its, ite, jts, jte, kts, kte ) 1213 ! CASE (GFSSCHEME) 1214 ! if(isfc .ne. 1)CALL wrf_error_fatal & 1215 ! ( 'module_physics_init: use sfclay scheme for this pbl option' ) 1216 ! CALL gfsinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1217 ! RQCBLTEN,RQIBLTEN,P_QI, & 1218 ! PARAM_FIRST_SCALAR, & 1219 ! restart, & 1220 ! allowed_to_read , & 1221 ! ids, ide, jds, jde, kds, kde, & 1222 ! ims, ime, jms, jme, kms, kme, & 1223 ! its, ite, jts, jte, kts, kte ) 1224 ! CASE (MYJPBLSCHEME) 1225 ! if(isfc .ne. 2)CALL wrf_error_fatal & 1226 ! ( 'module_physics_init: use myjsfc scheme for this pbl option' ) 1227 ! CALL myjpblinit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN, & 1228 ! TKE_MYJ,EXCH_H,restart, & 1229 ! allowed_to_read , & 1230 ! ids, ide, jds, jde, kds, kde, & 1231 ! ims, ime, jms, jme, kms, kme, & 1232 ! its, ite, jts, jte, kts, kte ) 1233 ! CASE DEFAULT 1234 ! 1235 ! END SELECT pbl_select 1236 ! 1237 ! END SUBROUTINE bl_init 1238 ! 1239 !!================================================================== 1240 ! SUBROUTINE cu_init(STEPCU,CUDT,DT,RTHCUTEN,RQVCUTEN,RQRCUTEN, & 1241 ! RQCCUTEN,RQSCUTEN,RQICUTEN,NCA,RAINC, & 1242 ! RAINCV,W0AVG,config_flags,restart, & 1243 ! CLDEFI,LOWLYR,MASS_FLUX, & 1244 ! RTHFTEN, RQVFTEN, & 1245 ! APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 1246 ! APR_CAPMA,APR_CAPME,APR_CAPMI, & 1247 ! allowed_to_read, start_of_simulation, & 1248 ! ids, ide, jds, jde, kds, kde, & 1249 ! ims, ime, jms, jme, kms, kme, & 1250 ! its, ite, jts, jte, kts, kte ) 1251 !!------------------------------------------------------------------ 1252 ! USE module_cu_kf 1253 ! USE module_cu_kfeta 1254 ! USE MODULE_CU_BMJ 1255 ! USE module_cu_gd 1256 ! USE module_cu_sas 1257 !!------------------------------------------------------------------ 1258 ! IMPLICIT NONE 1259 !!------------------------------------------------------------------ 1260 ! TYPE (grid_config_rec_type) :: config_flags 1261 ! LOGICAL , INTENT(IN) :: restart 1262 ! 1263 ! 1264 ! INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 1265 ! ims, ime, jms, jme, kms, kme, & 1266 ! its, ite, jts, jte, kts, kte 1267 ! 1268 ! REAL , INTENT(IN) :: DT, CUDT 1269 ! LOGICAL , INTENT(IN) :: start_of_simulation 1270 ! LOGICAL , INTENT(IN) :: allowed_to_read 1271 ! INTEGER , INTENT(INOUT) :: STEPCU 1272 ! 1273 ! REAL , DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(INOUT) :: & 1274 ! RTHCUTEN, RQVCUTEN, RQCCUTEN, RQRCUTEN, RQICUTEN, & 1275 ! RQSCUTEN 1276 ! 1277 ! REAL , DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: W0AVG 1278 ! 1279 ! REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 1280 ! RTHFTEN, RQVFTEN 1281 ! 1282 ! REAL , DIMENSION( ims:ime , jms:jme ), INTENT(OUT):: RAINC, RAINCV 1283 ! 1284 ! REAL , DIMENSION( ims:ime , jms:jme ), INTENT(OUT):: CLDEFI 1285 ! 1286 ! REAL , DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: NCA 1287 ! 1288 ! REAL , DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: MASS_FLUX, & 1289 ! APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 1290 ! APR_CAPMA,APR_CAPME,APR_CAPMI 1291 ! 1292 ! INTEGER, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT):: LOWLYR 1293 ! 1294 !! LOCAL VAR 1295 ! 1296 ! INTEGER :: i,j,itf,jtf 1297 ! 1298 !!-------------------------------------------------------------------- 1299 ! 1300 !!-- calculate cumulus parameterization time step 1301 ! 1302 ! itf=min0(ite,ide-1) 1303 ! jtf=min0(jte,jde-1) 1304 !! 1305 ! STEPCU = nint(CUDT*60./DT) 1306 ! STEPCU = max(STEPCU,1) 1307 ! 1308 !!-- initialization 1309 ! 1310 ! IF(start_of_simulation)THEN 1311 ! DO j=jts,jtf 1312 ! DO i=its,itf 1313 ! RAINC(i,j)=0. 1314 ! RAINCV(i,j)=0. 1315 ! ENDDO 1316 ! ENDDO 1317 ! ENDIF 1318 ! 1319 ! cps_select: SELECT CASE(config_flags%cu_physics) 1320 ! 1321 ! CASE (KFSCHEME) 1322 ! CALL kfinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQRCUTEN, & 1323 ! RQICUTEN,RQSCUTEN,NCA,W0AVG,P_QI,P_QS, & 1324 ! PARAM_FIRST_SCALAR,restart, & 1325 ! allowed_to_read , & 1326 ! ids, ide, jds, jde, kds, kde, & 1327 ! ims, ime, jms, jme, kms, kme, & 1328 ! its, ite, jts, jte, kts, kte ) 1329 ! 1330 ! CASE (BMJSCHEME) 1331 ! CALL bmjinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQRCUTEN, & 1332 ! CLDEFI,LOWLYR,cp,r_d,restart, & 1333 ! allowed_to_read , & 1334 ! ids, ide, jds, jde, kds, kde, & 1335 ! ims, ime, jms, jme, kms, kme, & 1336 ! its, ite, jts, jte, kts, kte ) 1337 ! 1338 ! CASE (KFETASCHEME) 1339 ! CALL kf_eta_init(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQRCUTEN, & 1340 ! RQICUTEN,RQSCUTEN,NCA,W0AVG,P_QI,P_QS, & 1341 ! SVP1,SVP2,SVP3,SVPT0, & 1342 ! PARAM_FIRST_SCALAR,restart, & 1343 ! allowed_to_read , & 1344 ! ids, ide, jds, jde, kds, kde, & 1345 ! ims, ime, jms, jme, kms, kme, & 1346 ! its, ite, jts, jte, kts, kte ) 1347 ! CASE (GDSCHEME) 1348 ! CALL gdinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQICUTEN, & 1349 ! MASS_FLUX,cp,restart, & 1350 ! P_QC,P_QI,PARAM_FIRST_SCALAR, & 1351 ! RTHFTEN, RQVFTEN, & 1352 ! APR_GR,APR_W,APR_MC,APR_ST,APR_AS, & 1353 ! APR_CAPMA,APR_CAPME,APR_CAPMI, & 1354 ! allowed_to_read , & 1355 ! ids, ide, jds, jde, kds, kde, & 1356 ! ims, ime, jms, jme, kms, kme, & 1357 ! its, ite, jts, jte, kts, kte ) 1358 ! CASE (SASSCHEME) 1359 ! CALL sasinit(RTHCUTEN,RQVCUTEN,RQCCUTEN,RQICUTEN, & 1360 ! restart,P_QC,P_QI,PARAM_FIRST_SCALAR, & 1361 ! allowed_to_read , & 1362 ! ids, ide, jds, jde, kds, kde, & 1363 ! ims, ime, jms, jme, kms, kme, & 1364 ! its, ite, jts, jte, kts, kte ) 1365 ! 1366 ! CASE DEFAULT 1367 ! 1368 ! END SELECT cps_select 1369 ! 1370 ! END SUBROUTINE cu_init 1371 ! 1372 !!================================================================== 1373 ! SUBROUTINE mp_init(RAINNC,config_flags,restart,warm_rain, & 1374 ! adv_moist_cond, & 1375 ! MPDT, DT, DX, DY, LOWLYR, & ! for eta mp 1376 ! F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY, & ! for eta mp 1377 ! mp_restart_state,tbpvs_state,tbpvs0_state, & ! eta mp 1378 ! allowed_to_read, start_of_simulation, & 1379 ! ids, ide, jds, jde, kds, kde, & 1380 ! ims, ime, jms, jme, kms, kme, & 1381 ! its, ite, jts, jte, kts, kte ) 1382 !!------------------------------------------------------------------ 1383 ! USE module_mp_ncloud3 1384 ! USE module_mp_ncloud5 1385 ! USE module_mp_wsm3 1386 ! USE module_mp_wsm5 1387 ! USE module_mp_wsm6 1388 ! USE module_mp_etanew 1389 ! USE module_mp_thompson 1390 !!------------------------------------------------------------------ 1391 ! IMPLICIT NONE 1392 !!------------------------------------------------------------------ 1393 !! Arguments 1394 ! TYPE (grid_config_rec_type) :: config_flags 1395 ! LOGICAL , INTENT(IN) :: restart 1396 ! LOGICAL , INTENT(OUT) :: warm_rain,adv_moist_cond 1397 ! REAL , INTENT(IN) :: MPDT, DT, DX, DY 1398 ! LOGICAL , INTENT(IN) :: start_of_simulation 1399 ! 1400 ! INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 1401 ! ims, ime, jms, jme, kms, kme, & 1402 ! its, ite, jts, jte, kts, kte 1403 ! 1404 ! INTEGER , DIMENSION( ims:ime , jms:jme ) ,INTENT(INOUT) :: LOWLYR 1405 ! REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(INOUT) :: RAINNC 1406 ! REAL, DIMENSION( ims:ime , kms:kme, jms:jme ) , INTENT(INOUT) :: & 1407 ! F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY 1408 ! REAL , DIMENSION(:) ,INTENT(INOUT) :: mp_restart_state,tbpvs_state,tbpvs0_state 1409 ! LOGICAL , INTENT(IN) :: allowed_to_read 1410 ! 1411 !! Local 1412 ! INTEGER :: i, j, itf, jtf 1413 ! 1414 ! warm_rain = .false. 1415 ! adv_moist_cond = .true. 1416 ! itf=min0(ite,ide-1) 1417 ! jtf=min0(jte,jde-1) 1418 ! 1419 ! IF(start_of_simulation)THEN 1420 ! DO j=jts,jtf 1421 ! DO i=its,itf 1422 ! RAINNC(i,j) = 0. 1423 ! ENDDO 1424 ! ENDDO 1425 ! ENDIF 1426 ! 1427 ! mp_select: SELECT CASE(config_flags%mp_physics) 1428 ! 1429 ! CASE (KESSLERSCHEME) 1430 ! warm_rain = .true. 1431 ! CASE (WSM3SCHEME) 1432 ! CALL wsm3init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1433 ! CASE (WSM5SCHEME) 1434 ! CALL wsm5init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1435 ! CASE (WSM6SCHEME) 1436 ! CALL wsm6init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1437 ! CASE (ETAMPNEW) 1438 ! adv_moist_cond = .false. 1439 ! CALL etanewinit (MPDT,DT,DX,DY,LOWLYR,restart, & 1440 ! F_ICE_PHY,F_RAIN_PHY,F_RIMEF_PHY, & 1441 ! mp_restart_state,tbpvs_state,tbpvs0_state,& 1442 ! allowed_to_read, & 1443 ! ids, ide, jds, jde, kds, kde, & 1444 ! ims, ime, jms, jme, kms, kme, & 1445 ! its, ite, jts, jte, kts, kte ) 1446 ! CASE (THOMPSON) 1447 ! CALL thompson_init 1448 ! CASE (NCEPCLOUD3) 1449 ! CALL ncloud3init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1450 ! CASE (NCEPCLOUD5) 1451 ! CALL ncloud5init(rhoair0,rhowater,rhosnow,cliq,cv, allowed_to_read ) 1452 ! 1453 ! CASE DEFAULT 1454 ! 1455 ! END SELECT mp_select 1456 ! 1457 ! END SUBROUTINE mp_init 1458 ! 1459 !#if ( EM_CORE == 1 ) 1460 !!========================================================== 1461 ! SUBROUTINE fg_init(STEPFG,FGDT,DT,id,RUNDGDTEN,RVNDGDTEN, & 1462 ! RTHNDGDTEN,RQVNDGDTEN,RMUNDGDTEN, & 1463 ! config_flags,restart, & 1464 ! allowed_to_read , & 1465 ! ids, ide, jds, jde, kds, kde, & 1466 ! ims, ime, jms, jme, kms, kme, & 1467 ! its, ite, jts, jte, kts, kte ) 1468 ! 1469 ! 1470 !!-------------------------------------------------------------------- 1471 ! USE module_fdda_psufddagd 1472 !!-------------------------------------------------------------------- 1473 ! IMPLICIT NONE 1474 !!-------------------------------------------------------------------- 1475 ! TYPE (grid_config_rec_type) :: config_flags 1476 ! LOGICAL , INTENT(IN) :: restart 1477 ! 1478 ! INTEGER , INTENT(IN) :: ids, ide, jds, jde, kds, kde, & 1479 ! ims, ime, jms, jme, kms, kme, & 1480 ! its, ite, jts, jte, kts, kte 1481 ! 1482 ! REAL , INTENT(IN) :: DT, FGDT 1483 ! INTEGER , INTENT(IN) :: id 1484 ! INTEGER , INTENT(INOUT) :: STEPFG 1485 ! REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(OUT) :: & 1486 ! RUNDGDTEN, & 1487 ! RVNDGDTEN, & 1488 ! RTHNDGDTEN, & 1489 ! RQVNDGDTEN 1490 ! REAL, DIMENSION( ims:ime , jms:jme ) , INTENT(OUT) :: RMUNDGDTEN 1491 ! 1492 ! LOGICAL, INTENT(IN) :: allowed_to_read 1493 !!-------------------------------------------------------------------- 1494 ! 1495 !!-- calculate pbl time step 1496 ! 1497 ! STEPFG = nint(FGDT*60./DT) 1498 ! STEPFG = max(STEPFG,1) 1499 ! 1500 ! 1501 !!-- initialize fdda scheme 1502 ! 1503 ! fdda_select: SELECT CASE(config_flags%grid_fdda) 1504 ! 1505 ! CASE (PSUFDDAGD) 1506 ! CALL fddagdinit(id,rundgdten,rvndgdten,rthndgdten,rqvndgdten,rmundgdten,& 1507 ! config_flags%run_hours, & 1508 ! config_flags%if_no_pbl_nudging_uv, & 1509 ! config_flags%if_no_pbl_nudging_t, & 1510 ! config_flags%if_no_pbl_nudging_q, & 1511 ! config_flags%if_zfac_uv, & 1512 ! config_flags%k_zfac_uv, & 1513 ! config_flags%if_zfac_t, & 1514 ! config_flags%k_zfac_t, & 1515 ! config_flags%if_zfac_q, & 1516 ! config_flags%k_zfac_q, & 1517 ! config_flags%guv, & 1518 ! config_flags%gt, config_flags%gq, & 1519 ! config_flags%if_ramping, config_flags%dtramp_min, & 1520 ! config_flags%gfdda_end_h, & 1521 ! restart, allowed_to_read, & 1522 ! ids, ide, jds, jde, kds, kde, & 1523 ! ims, ime, jms, jme, kms, kme, & 1524 ! its, ite, jts, jte, kts, kte ) 1525 ! CASE DEFAULT 1526 ! 1527 ! END SELECT fdda_select 1528 ! 1529 ! END SUBROUTINE fg_init 1530 ! 1531 !!------------------------------------------------------------------- 1532 ! SUBROUTINE fdob_init(obs_nudge_opt, maxdom, inest, parid, & 1533 ! dx_coarse, restart, obs_twindo, itimestep, & 1534 ! s_sn_cg, e_sn_cg, s_we_cg, e_we_cg, & 1535 ! fdob, & 1536 ! ids, ide, jds, jde, kds, kde, & 1537 ! ims, ime, jms, jme, kms, kme, & 1538 ! its, ite, jts, jte, kts, kte ) 1539 ! 1540 ! 1541 !!-------------------------------------------------------------------- 1542 ! USE module_domain 1543 ! USE module_fddaobs_rtfdda 1544 !!-------------------------------------------------------------------- 1545 ! IMPLICIT NONE 1546 !!-------------------------------------------------------------------- 1547 ! INTEGER , INTENT(IN) :: maxdom 1548 ! INTEGER , INTENT(IN) :: obs_nudge_opt(maxdom) 1549 ! INTEGER , INTENT(IN) :: ids,ide, jds,jde, kds,kde, & 1550 ! ims,ime, jms,jme, kms,kme, & 1551 ! its,ite, jts,jte, kts,kte 1552 ! INTEGER , INTENT(IN) :: inest 1553 ! INTEGER , INTENT(IN) :: parid(maxdom) 1554 ! REAL , INTENT(IN) :: dx_coarse 1555 ! LOGICAL , INTENT(IN) :: restart 1556 ! REAL , INTENT(INOUT) :: obs_twindo 1557 ! INTEGER , INTENT(IN) :: itimestep 1558 ! INTEGER, intent(in) :: s_sn_cg ! starting north-south coarse-grid index 1559 ! INTEGER, intent(in) :: e_sn_cg ! ending north-south coarse-grid index 1560 ! INTEGER, intent(in) :: s_we_cg ! starting west-east coarse-grid index 1561 ! INTEGER, intent(in) :: e_we_cg ! ending west-east coarse-grid index 1562 ! 1563 ! TYPE(fdob_type), INTENT(INOUT) :: fdob 1564 ! 1565 ! INTEGER :: e_sn ! ending north-south grid index 1566 !!-------------------------------------------------------------------- 1567 !!-- initialize fdda obs-nudging scheme 1568 ! 1569 ! e_sn = jde 1570 ! CALL fddaobs_init(obs_nudge_opt, maxdom, inest, parid, & 1571 ! dx_coarse, restart, obs_twindo, itimestep, & 1572 ! e_sn, s_sn_cg, e_sn_cg, s_we_cg, e_we_cg, & 1573 ! fdob, & 1574 ! ids,ide, jds,jde, kds,kde, & 1575 ! ims,ime, jms,jme, kms,kme, & 1576 ! its,ite, jts,jte, kts,kte) 1577 ! 1578 ! END SUBROUTINE fdob_init 1579 !#endif 1580 ! 1573 1581 !-------------------------------------------------------------------- 1574 1582 SUBROUTINE z2sigma(zf,zh,sf,sh,p_top,pptop,config_flags, &
Note: See TracChangeset
for help on using the changeset viewer.