source: trunk/WRF.COMMON/WRFV3/modif_mars/module_first_rk_step_part1.F @ 2757

Last change on this file since 2757 was 2123, checked in by jleconte, 6 years ago

Changed the routing of the tracers so that the mean molecular weight of water vapor be taken into account in the dynamics.

File size: 41.8 KB
Line 
1!WRF:MEDIATION_LAYER:SOLVER
2
3#define BENCH_START(A)
4#define BENCH_END(A)
5
6MODULE module_first_rk_step_part1
7
8CONTAINS
9
10  SUBROUTINE first_rk_step_part1 (   grid , config_flags              &
11                             , moist , moist_tend               &
12                             , chem  , chem_tend                &
13                             , scalar , scalar_tend             &
14                             , fdda3d, fdda2d                   &
15                             , ru_tendf, rv_tendf               &
16                             , rw_tendf, t_tendf                &
17                             , ph_tendf, mu_tendf               &
18                             , tke_tend                         &
19                             , adapt_step_flag , curr_secs      &
20                             , psim , psih , wspd , gz1oz0 , br , chklowq &
21                             , cu_act_flag , hol , th_phy        &
22                             , pi_phy , p_phy , t_phy , u_phy , v_phy     &
23                             , dz8w , p8w , t8w , rho_phy , rho           &
24                             , z_at_w , mu_3d                   &
25                             , ids, ide, jds, jde, kds, kde     &
26                             , ims, ime, jms, jme, kms, kme     &
27                             , ips, ipe, jps, jpe, kps, kpe     &
28                             , k_start , k_end                  &
29                            )
30    USE module_state_description
31    USE module_model_constants
32    USE module_domain, ONLY : domain
33    USE module_configure, ONLY : grid_config_rec_type, model_config_rec
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
41    USE module_em, ONLY : init_zero_tendency
42!!MARS
43    USE module_lmd_driver
44!!MARS
45    USE module_big_step_utilities_em, ONLY : phy_prep
46    USE module_dm
47    IMPLICIT NONE
48
49    TYPE ( domain ), INTENT(INOUT) :: grid
50    TYPE ( grid_config_rec_type ), INTENT(IN) :: config_flags
51
52    INTEGER, INTENT(IN) :: ids, ide, jds, jde, kds, kde,     &
53                           ims, ime, jms, jme, kms, kme,     &
54                           ips, ipe, jps, jpe, kps, kpe
55
56    LOGICAL ,INTENT(IN)                        :: adapt_step_flag
57    REAL, INTENT(IN)                           :: curr_secs
58
59    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme,num_moist),INTENT(INOUT)   :: moist
60    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme,num_moist),INTENT(INOUT)   :: moist_tend
61    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme,num_moist),INTENT(INOUT)   :: chem
62    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme,num_moist),INTENT(INOUT)   :: chem_tend
63    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme,num_moist),INTENT(INOUT)   :: scalar
64    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme,num_moist),INTENT(INOUT)   :: scalar_tend
65    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme,num_fdda3d),INTENT(INOUT)  :: fdda3d
66    REAL    ,DIMENSION(ims:ime,1:1,jms:jme,num_fdda2d),INTENT(INOUT)      :: fdda2d
67    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: psim
68    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: psih
69    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: wspd
70    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: gz1oz0
71    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: br
72    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: chklowq
73    LOGICAL ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: cu_act_flag
74    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT)         :: hol
75
76    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: th_phy
77    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: pi_phy
78    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: p_phy
79    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: t_phy
80    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: u_phy
81    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: v_phy
82    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme) :: w_phy  !!MARS aymeric var loc
83    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: dz8w
84    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: p8w
85    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: t8w
86    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: rho_phy
87    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: rho
88    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: z_at_w
89    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: mu_3d
90
91    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: ru_tendf
92    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: rv_tendf
93    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: rw_tendf
94    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: ph_tendf
95    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: t_tendf
96    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: tke_tend
97
98    REAL    ,DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: mu_tendf
99
100    INTEGER , INTENT(IN)                          ::  k_start, k_end
101
102! Local
103
104    REAL, DIMENSION( ims:ime, jms:jme ) :: ht_loc
105    INTEGER, DIMENSION( ims:ime, jms:jme ) :: shadowmask
106    INTEGER                             :: ij
107    INTEGER  num_roof_layers
108    INTEGER  num_wall_layers
109    INTEGER  num_road_layers
110    INTEGER  iswater
111    INTEGER  rk_step
112
113 ! initialize all tendencies to zero in order to update physics
114 ! tendencies first (separate from dry dynamics).
115
116    rk_step = 1
117
118BENCH_START(init_zero_tend_tim)
119       !$OMP PARALLEL DO   &
120       !$OMP PRIVATE ( ij )
121
122       DO ij = 1 , grid%num_tiles
123
124         CALL wrf_debug ( 200 , ' call init_zero_tendency' )
125         CALL init_zero_tendency ( ru_tendf, rv_tendf, rw_tendf,     &
126                                   ph_tendf, t_tendf, tke_tend,      &
127                                   mu_tendf,                         &
128                                   moist_tend,chem_tend,scalar_tend, &
129                                   num_moist,num_chem,num_scalar,       &
130                                   rk_step,                          &
131                                   ids, ide, jds, jde, kds, kde,     &
132                                   ims, ime, jms, jme, kms, kme,     &
133                                   grid%i_start(ij), grid%i_end(ij), &
134                                   grid%j_start(ij), grid%j_end(ij), &
135                                   k_start, k_end                   )
136
137       END DO
138       !$OMP END PARALLEL DO
139BENCH_END(init_zero_tend_tim)
140
141#ifdef DM_PARALLEL
142#     include "HALO_EM_PHYS_A.inc"
143#endif
144
145      !$OMP PARALLEL DO   &
146      !$OMP PRIVATE ( ij )
147      DO ij = 1 , grid%num_tiles
148
149        CALL wrf_debug ( 200 , ' call phy_prep' )
150        CALL phy_prep ( config_flags,                           &
151                        grid%mut, grid%muu, grid%muv, grid%u_2, &
152                        grid%v_2, grid%w_2, grid%p, grid%pb, grid%alt,              &
153                        grid%ph_2, grid%phb, grid%t_2, grid%tsk, moist, num_moist,   &
154                        mu_3d, rho,                             &
155                        th_phy, p_phy, pi_phy, u_phy, v_phy, w_phy,   &
156                        p8w, t_phy, t8w, grid%z, z_at_w,             &
157                        dz8w, grid%fnm, grid%fnp,                         &   
158                        grid%rthraten,                               &
159                        grid%rthblten, grid%rublten, grid%rvblten,             &
160                        grid%rqvblten, grid%rqcblten, grid%rqiblten,           &
161                        grid%rthcuten, grid%rqvcuten, grid%rqccuten,           &
162                        grid%rqrcuten, grid%rqicuten, grid%rqscuten,           &
163                        grid%rthften,  grid%rqvften,                      &
164                        grid%RUNDGDTEN, grid%RVNDGDTEN, grid%RTHNDGDTEN,       &
165                        grid%RQVNDGDTEN, grid%RMUNDGDTEN,                 &
166                        ids, ide, jds, jde, kds, kde,           &
167                        ims, ime, jms, jme, kms, kme,           &
168                        grid%i_start(ij), grid%i_end(ij),       &
169                        grid%j_start(ij), grid%j_end(ij),       &
170                        k_start, k_end                         )
171      ENDDO
172      !$OMP END PARALLEL DO
173
174BENCH_END(phy_prep_tim)
175
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)
567
568!!****MARS
569IF (config_flags%modif_wrf) THEN
570!!!!!!!!!!!!!!!!!!!!!!!
571! call to LMD physics !
572!!!!!!!!!!!!!!!!!!!!!!!
573         CALL wrf_debug ( 200 , ' call lmd_driver' )
574         CALL lmd_driver(                                                 &
575           ! structure
576     &         id=grid%id,max_dom=grid%max_dom      &
577     &        ,DT=grid%dt                   &
578     &        ,ITIMESTEP=grid%itimestep                                   &
579           ! position
580     &        ,XLAT=grid%xlat,XLONG=grid%xlong                            &
581     &        ,DX=grid%dx         ,DY=grid%dy                             &
582     &        ,MSFT=grid%msftx,MSFU=grid%msfux,MSFV=grid%msfvx            &
583!     &        ,MSFT=grid%msft,MSFU=grid%msfu,MSFV=grid%msfv               &
584           ! indexes
585     &        ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde          &
586     &        ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme          &
587     &        ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1)          &
588     &        ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1)          &
589     &        ,kts=k_start, kte=min(k_end,kde-1)                          &
590     &        ,num_tiles=grid%num_tiles                                   &
591           ! time variables
592     &        ,GMT=grid%gmt       ,JULYR=grid%julyr   ,JULDAY=grid%julday &
593           ! output from phy_prep
594     &        ,P8W=p8w            ,DZ8W=dz8w          ,T8W=t8w            &
595           ! Prognostic variables at p points
596!     &        ,Z=grid%em_z                                                &
597     &        ,Z=grid%z                                                   &
598                        ! z is the geopotential height at p points
599                        ! ... (cf phy_prep in module_big_step_utilities_em)
600     &        ,HT=grid%ht                                                 &
601     &        ,U=u_phy            ,V=v_phy             ,W=w_phy           &
602     &        ,TH=th_phy          ,T=t_phy                                &
603     &        ,P=p_phy            ,EXNER=pi_phy               ,RHO=rho    &
604!!!!!ADDITION CAS IDEALISES
605     &        ,PTOP=grid%p_top                                            &
606           ! physics calls
607     &        ,RADT=grid%radt                          &
608     &        ,CUDT=grid%cudt                          &
609           ! surface temperature and surface pressure
610     &        ,TSK=grid%tsk,PSFC=grid%psfc                                &
611           ! tendencies for the dynamics
612     &        ,RTHBLTEN=grid%rthblten  ,RUBLTEN=grid%rublten,RVBLTEN=grid%rvblten    &
613           ! scalars
614!     &        ,NUM_3D_S=num_3d_s,SCALAR=grid%scalar                       &
615     &        ,NUM_3D_S=num_scalar,SCALAR=grid%scalar                       &
616     &        ,NUM_3D_M=num_moist,MOIST=grid%moist                      &
617           ! mode
618     &        ,MARS_MODE=config_flags%mars   &
619#ifdef NEWPHYS
620           ! planet
621     &        ,planet_type=config_flags%planet   &
622#endif
623           ! added variables
624     &        ,M_ALBEDO=grid%m_albedo,M_TI=grid%m_ti  &
625     &        ,M_CO2ICE=grid%m_co2ice,M_EMISS=grid%m_emiss   & 
626     &        ,M_H2OICE=grid%m_h2oice     &
627     &        ,M_TSOIL=grid%m_tsoil       &
628     &        ,M_Q2=grid%m_q2             &
629     &        ,M_TSURF=grid%m_tsurf       &
630#ifdef NEWPHYS
631     &        ,M_FLUXRAD=grid%m_fluxrad   &
632     &        ,M_WSTAR=grid%m_wstar       &
633     &        ,M_ISOIL=grid%m_isoil       &
634     &        ,M_DSOIL=grid%m_dsoil       &
635     &        ,M_Z0=grid%m_z0             &
636     &        ,CST_Z0=config_flags%init_Z0      &
637#endif
638     &        ,M_GW=grid%m_gw  & 
639     &        ,NUM_SOIL_LAYERS=config_flags%num_soil_layers    &
640           ! cst fields
641     &        ,CST_AL=config_flags%init_AL  &
642     &        ,CST_TI=config_flags%init_TI  &
643     &        ,ISFFLX=config_flags%isfflx   &
644     &        ,DIFF_OPT=config_flags%diff_opt     &
645     &        ,KM_OPT=config_flags%km_opt         &
646     &        ,HISTORY_INTERVAL=model_config_rec%history_interval(1)  &
647          !------------------!
648          ! OUTPUT VARIABLES !
649          !------------------!
650#ifdef NEWPHYS
651     &       ,HR_SW=grid%HR_SW   &
652     &       ,HR_LW=grid%HR_LW   &
653     &       ,HR_DYN=grid%HR_DYN   &
654     &       ,DDT=grid%DDT  &
655     &       ,DT_RAD=grid%DT_RAD  &
656     &       ,DT_VDF=grid%DT_VDF  &
657     &       ,DT_AJS=grid%DT_AJS  &
658     &       ,CLOUDFRAC=grid%CLOUDFRAC   &
659     &       ,TOTCLOUDFRAC=grid%TOTCLOUDFRAC   &
660     &       ,GRAIN=grid%GRAIN   &
661     &       ,GSNOW=grid%GSNOW   &
662     &       ,REEVAP=grid%REEVAP  &
663     &       ,SURFRAIN=grid%SURFRAIN  &
664     &       ,ALBEQ=grid%ALBEQ   &
665     &       ,FLUXTOP_DN=grid%FLUXTOP_DN   &
666     &       ,FLUXABS_SW=grid%FLUXABS_SW   &
667     &       ,FLUXTOP_LW=grid%FLUXTOP_LW   &
668     &       ,FLUXSURF_SW=grid%FLUXSURF_SW   &
669     &       ,FLUXSURF_LW=grid%FLUXSURF_LW   &
670     &       ,FLXGRD=grid%FLXGRD   &
671     &       ,LSCEZ=grid%LSCEZ   &
672     &       ,H2OICE_REFF=grid%H2OICE_REFF  &
673     &       ,LATENT_HF=grid%LATENT_HF  &
674     &       ,SWDOWNZ=grid%SWDOWNZ   &
675     &       ,TAU_DUST=grid%TAU_DUST   &
676     &       ,RDUST=grid%RDUST   &
677     &       ,QSURFDUST=grid%QSURFDUST   &
678     &       ,MTOT=grid%MTOT   &
679     &       ,ICETOT=grid%ICETOT   &
680     &       ,VMR_ICE=grid%VMR_ICE   &
681     &       ,TAU_ICE=grid%TAU_ICE   &
682     &       ,RICE=grid%RICE   &
683     &       ,ZMAX=grid%ZMAX   &
684     &       ,HFMAX=grid%HFMAX &
685     &       ,USTM=grid%USTM   &
686     &       ,HFX=grid%HFX &
687#else
688#include "module_lmd_driver_output4.inc"
689#endif
690     &        ,SLPX=grid%slpx,SLPY=grid%slpy,RESTART=config_flags%restart)
691ENDIF
692
693!!!!!!!!!!!!!!!!!!!!!!!
694! call to LMD physics !
695!!!!!!!!!!!!!!!!!!!!!!!
696!****MARS
697
698  END SUBROUTINE first_rk_step_part1
699
700END MODULE module_first_rk_step_part1
701
Note: See TracBrowser for help on using the repository browser.