LMDZ
PHY_MAR___.f90
Go to the documentation of this file.
1  subroutine phy_mar &
2 
3 !------------------------------------------------------------------------------+
4 ! Mon 1-Jul-2013 MAR |
5 ! subroutine PHY_MAR is the MAR PHYsics Driver |
6 ! interfaces HOST variables |
7 ! and SISVAT variables |
8 ! |
9 ! Applied to: MARthusalem (variables in MAR***.inc files) |
10 ! |
11 ! |
12 ! # OPTIONS: #dT Distinction among Tendencies of MAR Physical Parametr. |
13 ! # ^^^^^^^^ #cw Cloud Condensation Nuclei (CCNw) Microphysics Activation |
14 ! |
15 ! |
16 ! version 3.p.4.1 created by H. Gallee, Tue 12-Mar-2013 |
17 ! Last Modification by H. Gallee, Mon 1-Jul-2013 |
18 ! |
19 !------------------------------------------------------------------------------+
20 
21  & (flagsv & ! FLAG for SISVAT: (T,F) = (active OR NOT)
22  & ,flagsv_veg & ! FLAG for SISVAT: (T,F) = (Variable Vegetation OR NOT)
23  & ,flagsv_sno & ! FLAG for SISVAT: (T,F) = (Snow Model active OR NOT)
24  & ,flagsv_bsn & ! FLAG for SISVAT: (T,F) = (Blowing Snow Model active OR NOT)
25  & ,flagsv_kzt & ! FLAG for SISVAT: (T,F) = (pkt Turb.Transfert active OR NOT in SISVAT)
26  & ,flagsv_swd & ! FLAG for SISVAT: (T,F) = (Modify SW INPUT->downward OR NOT)
27  & ,flagsv_sbc & ! FLAG for SISVAT: (T,F) = (INPUT of Soil & Vege DATA OR NOT in SISVAT)
28  & ,flagsv_ubc & ! FLAG for SISVAT: (T,F) = (pkt UpperBC is Von Neuman OR NOT in SISVAT)
29  & ,flagat & ! FLAG for Atm_AT: (T,F) = (Turbulent Transfer active OR NOT)
30  & ,typeat & ! TYPE of Atm_AT: (e= Ee Duynkerke, K= Ee Kitada, L= EL, H= Ee Huan-R)
31  & ,flagat_tke & ! FLAG for genTKE: (T,F) = (TKE-e Model active OR NOT)
32  & ,flagcm & ! FLAG for CMiPhy: (T,F) = (Cloud Microphysics active OR NOT)
33  & ,flagcm_upd & ! FLAG for CMiPhy: (T,F) = (qv & hydrometeors updated OR NOT IN CMiPhy)
34  & ,flagcp & ! FLAG for Convection Paramet.
35  & ,flagrt & ! FLAG for Radiative Transfer
36  & ,flags0_slo & ! FLAG for Insolation, Surfac.Slope Impact included NEW
37  & ,flags0_mtm & ! FLAG for Insolation, Surfac.Slope & Mountain Mask Impacts included NEW
38  & ,flag_o & ! FLAG for OUTPUT
39  & ,flagvr & ! FLAG for OUTPUT for VERIFICATION
40  & ,dt0dyn & ! Time STEP between 2 CALLs of PHY_MAR [s] I, fix
41  & ,dt0_sv & ! Time STEP between 2 CALLs of SISVAT [s] I, fix
42  & ,dt0_at & ! Time STEP between 2 CALLs of Atm_AT [s] I, fix
43  & ,dt0_cm & ! Time STEP between 2 CALLs of CMiPhy [s] I, fix
44  & ,dt0_cp & ! Time STEP between 2 CALLs of CVamnh [s] I, fix
45  & ,dt0_rt & ! Time STEP between 2 CALLs of radCEP [s] I, fix
46  & ,dx & ! Grid Mesh size (Horizontal) [m] I, fix
47  & ,dd_axx & ! Grid x-Axis Direction [degree] I, fix
48  & ,s_host & ! Grid (Vertical) of HOST (NORMALIZED PRESSURE assumed) [-] I, fix
49  & ,sh___host & ! Topography [m] I, fix
50  & ,sh_a_host & ! Topography Anomaly [m] I, fix NEW
51  & ,slopxhost & ! Slope, x-direction [-] I, fix NEW
52  & ,slopyhost & ! Slope, y-direction [-] I, fix NEW
53  & ,slopehost & ! Slope [-] I, fix NEW
54  & ,mmaskhost & ! Mountain Mask [-] I, fix NEW
55  & ,lonh_host & ! Longitude [hour] I, fix
56  & ,latr_host & ! Latitude [radian] I, fix
57  & ,pkta_host & ! Reduced Potential Temperature [XK] I, O
58  & ,ptop_host & ! Pressure, Model Top [kPa] I, fix
59  & ,psa__host & ! Pressure Thickness [kPa] I
60  & ,gza__host & ! Geopotential Height [m2/s2] I
61  & ,gzam_host & ! Geopotential Height, mid-level [m2/s2] I
62  & ,ua___host & ! Wind , x-Direction [m/s] I
63  & ,va___host & ! Wind , y-Direction [m/s] I
64  & ,wa___host & ! Wind , z-Direction [m/s] I
65  & ,qv___host & ! Specific Humidity [kg/kg] I, O
66  & ,qw___host & ! Cloud Droplets Concentration [kg/kg] I, O
67 ! #cw& ,CCN__HOST & ! CCN Concentration [-/kg]
68  & ,qi___host & ! Cloud Crystals Concentration [kg/kg] I, O
69  & ,cin__host & ! CIN Concentration [-/kg] I, O
70  & ,cf___host & ! Cloud Fraction [-] I, O
71  & ,qs___host & ! Snow Particles Concentration [kg/kg] I, O
72  & ,qr___host & ! Rain Drops Concentration [kg/kg] I, O
73  & ,tke__host & ! Turbulent Kinetic Energy [m2/s2] I, O
74  & ,eps__host & ! Turbulent Kinetic Energy Dissipation [m2/s3] I, O
75  & ,dpkt___dt & ! Reduced Potential Temperature TENDENCY, ALL Contribut.[KX/s] O
76  & ,dua____dt & ! Wind Speed (x-direc.) TENDENCY, ALL Contribut.[m/s2] O
77  & ,dva____dt & ! Wind Speed (y-direc.) TENDENCY, ALL Contribut.[m/s2] O
78  & ,dqv____dt & ! Specific Humidity TENDENCY, ALL Contr. [kg/kg/s] O
79  & ,dqw____dt & ! Cloud Droplets Concentration TENDENCY, ALL Contr. [kg/kg/s] O
80 ! #cw& ,dCw____dt & ! CCN Concentration TENDENCY, ALL Contr. [1/s]
81  & ,dqi____dt & ! Cloud Crystals Concentration TENDENCY, ALL Contr. [kg/kg/s] O
82  & ,dci____dt & ! CIN Concentration TENDENCY, ALL Contr. [1/s] O
83  & ,dcf____dt & ! Cloud Fraction TENDENCY, ALL Contr. [1/s] O
84  & ,dqs____dt & ! Snow Particles Concentration TENDENCY, ALL Contr. [kg/kg/s] O
85  & ,dqr____dt & ! Rain Drops Concentration TENDENCY, ALL Contr. [kg/kg/s] O
86 ! #dT& ,dpktSV_dt & ! Reduced Potential Temperature TENDENCY, SISVAT [KX/s] (O)
87 ! #dT& ,dpktAT_dt & ! Reduced Potential Temperature TENDENCY, Atm_AT [KX/s] (O)
88 ! #dT& ,dqv_AT_dt & ! Specific Humidity TENDENCY, Atm_AT [kg/kg/s] (O)
89 ! #dT& ,dqw_AT_dt & ! Cloud Droplets Concentration TENDENCY, Atm_AT [kg/kg/s] (O)
90 ! #dT& ,dqi_AT_dt & ! Cloud Crystals Concentration TENDENCY, Atm_AT [kg/kg/s] (O)
91 ! #dT& ,dqs_AT_dt & ! Snow Particles Concentration TENDENCY, Atm_AT [kg/kg/s] (O)
92 ! #dT& ,dqr_AT_dt & ! Rain Drops Concentration TENDENCY, Atm_AT [kg/kg/s] (O)
93 ! #cw& ,dCw_AT_dt & ! CCN Concentration TENDENCY, Atm_AT [1/s] (O)
94 ! #dT& ,dCi_AT_dt & ! CIN Concentration TENDENCY, Atm_AT [1/s] (O)
95 ! #dT& ,dpktCM_dt & ! Reduced Potential Temperature TENDENCY, CMiPhy [KX/s] (O)
96 ! #dT& ,dqv_CM_dt & ! Specific Humidity TENDENCY, CMiPhy [kg/kg/s] (O)
97 ! #dT& ,dqw_CM_dt & ! Cloud Droplets Concentration TENDENCY, CMiPhy [kg/kg/s] (O)
98 ! #dT& ,dCF_CM_dt & ! Cloud Fraction TENDENCY, CMiPhy [1/s] (O)
99 ! #dT& ,dqi_CM_dt & ! Cloud Crystals Concentration TENDENCY, CMiPhy [kg/kg/s] (O)
100 ! #dT& ,dqs_CM_dt & ! Snow Particles Concentration TENDENCY, CMiPhy [kg/kg/s] (O)
101 ! #dT& ,dqr_CM_dt & ! Rain Drops Concentration TENDENCY, CMiPhy [kg/kg/s] (O)
102 ! #cw& ,dCw_CM_dt & ! CCN Concentration TENDENCY, CMiPhy [1/s] (O)
103 ! #dT& ,dCi_CM_dt & ! CIN Concentration TENDENCY, CMiPhy [1/s] (O)
104 ! #dT& ,dpktCP_dt & ! Reduced Potential Temperature TENDENCY, CVAmnh [KX/s] (O)
105 ! #dT& ,dqv_CP_dt & ! Specific Humidity TENDENCY, CVAmnh [kg/kg/s] (O)
106 ! #dT& ,dqw_CP_dt & ! Cloud Droplets Concentration TENDENCY, CVAmnh [kg/kg/s] (O)
107 ! #dT& ,dqi_CP_dt & ! Cloud Crystals Concentration TENDENCY, CVAmnh [kg/kg/s] (O)
108 ! #dT& ,dpktRT_dt & ! Reduced Potential Temperature TENDENCY, radCEP [KX/s] (O)
109  & ,sst__host & ! Ocean FORCING (SST) [K] I
110 ! #IP& ,sif__HOST & ! Ocean FORCING (Sea-Ice Fraction ) [-] I
111 ! #AO& ,s_T__HOST & ! Ocean COUPLING (Surface Temperat.) n=1: Open Ocean [-] I,NEMO
112 ! #AO& ,Alb__HOST & ! Ocean COUPLING (Surface Albedo ) n=2: Sea Ice [-] I,NEMO
113 ! #AO& ,dSdT2HOST & ! Ocean COUPLING ( d(SH Flux) / dT ) [W/m2/K] O
114 ! #AO& ,dLdT2HOST & ! Ocean COUPLING ( d(LH Flux) / dT ) [W/m2/K] O
115 !dead& ,it0EXP,it0RUN & ! Iteration
116  & ,year_h,mon__h,day__h,hour_h,minu_h,sec__h & ! Time
117  & ,ixq1 ,i0x0 ,mxqq & ! Domain Dimension: x
118  & ,jyq1 ,j0y0 ,myqq & ! Domain Dimension: y
119  & ,mzq ,mzqq & ! Domain Dimension: z
120  & ,mwq & ! Domain Dimension: mosaic
121  & ,kcolq & ! Domain Dimension: x * y
122  & ,kcolw & ! Domain Dimension: x * y * mosaic
123  & ,m_azim & ! Mountain Mask, nb of directions taken into account [-]
124  & ,ioi0sv,ioj0sv,n0pt) ! Indices of OUTPUT Grid Point
125 
126 !------------------------------------------------------------------------------+
127 ! Sat 29-Jun-2013 MAR |
128 ! subroutine PHY_MAR is the MAR PHYsics Driver |
129 ! interfaces HOST variables |
130 ! and SISVAT variables |
131 ! |
132 ! Applied to: MARthusalem (variables in MAR***.inc files) |
133 ! |
134 ! |
135 ! # OPTIONS: #dT Distinction among Tendencies of MAR Physical Parametr. |
136 ! # ^^^^^^^^ #cw Cloud Condensation Nuclei (CCNw) Microphysics Activation |
137 ! |
138 ! |
139 ! version 3.p.4.1 created by H. Gallee, Tue 12-Mar-2013 |
140 ! Last Modification by H. Gallee, Sat 29-Jun-2013 |
141 ! |
142 !------------------------------------------------------------------------------+
143 
144  use mod_real
145  use mod_phy____dat
146  use mod_phy____grd
147  use mod_phy____kkl
148  use mod_phy_cm_ctr
149  use mod_phy_s0_ctr
150  use mod_sisvat_ctr
151  use mod_phy_cm_dat
152  use mod_phy_at_grd
153  use mod_phy_cm_grd
154  use mod_phy_cp_grd
155  use mod_phy_rt_grd
156  use mod_phy_s0_grd
157  use mod_sisvat_grd
158  use mod_phy_dy_kkl
159  use mod_phy_at_kkl
160  use mod_phy_cm_kkl
161  use mod_phy_cp_kkl
162  use mod_phy_rt_kkl
163  use mod_phy_s0_kkl
164  use mod_sisvat_kkl
165  use mod_sisvat_gpt
166 
167  IMPLICIT NONE
168 
169  logical :: FlagSV ! Flag (SISVAT)
170  logical :: FlagSV_Veg ! Flag (SISVAT: Vegetation)
171  logical :: FlagSV_SNo ! Flag (SISVAT: Surface * )
172  logical :: FlagSV_BSn ! Flag (SISVAT: Blowing * )
173  logical :: FlagSV_KzT ! Flag (SISVAT: d(KdT/dz)/dz)
174  logical :: FlagSV_SWD ! Flag: T/F : (SISVAT: SW=Down/Abs.)
175  logical :: FlagSV_SBC ! Flag: T/F : (SISVAT: SBC=INP/FIX.)
176  logical :: FlagSV_UBC ! Flag: T/F : (SISVAT: UBC=VonN/Dr.)
177  logical :: FlagAT ! Flag (Turbulent Transfer)
178  character(len=1) :: TypeAT ! Type (Turbulent Transfer)
179  logical :: FlagAT_TKE ! Flag (Turbulent Transfer, TKE-e Model: ON / OFF)
180  logical :: FlagCM ! Flag (Cloud Microphysics)
181  logical :: FlagCM_UpD ! Flag: T/F : (Cloud Microphysics: Update in/out PHY_MAR)
182  logical :: FlagCP ! Flag (Convection Param. )
183  logical :: FlagRT ! Flag (Radiative Transfer)
184  logical :: FlagS0_SLO ! FLAG (Insolation, Surfac.Slope )
185  logical :: FlagS0_MtM ! FLAG (Insolation, Surfac.Slope & Mountain Mask)
186 
187  logical :: Flag_O ! Flag (OUTPUT)
188  logical :: FlagVR ! Flag (OUTPUT for VERIFICATION)
189 
190  real :: dt0DYn ! Time Step (DYnamics, the shortest) [s]
191  real :: dt0_SV ! Time Step (SISVAT) [s]
192  real :: dt0_AT ! Time Step (Atmo Turb.) [s]
193  real :: dt0_CM ! Time Step (Cloud Mic.) [s]
194  real :: dt0_CP ! Time Step (Convection) [s]
195  real :: dt0_RT ! Time Step (Radiat.Tr.) [s]
196  real :: dx ! Grid Size [m]
197  real :: DD_AxX ! x-Axis Direction [degree]
198  real, dimension(mzqq) :: s_HOST ! Vertical Coordinate [-]
199  real , dimension(kcolq) :: sh___HOST ! Topography [m]
200  real(kind=real8), dimension(kcolq) :: sh_a_HOST ! Topography Anomaly [m]
201  real(kind=real8), dimension(kcolq) :: slopxHOST ! Slope, x-direction [-]
202  real(kind=real8), dimension(kcolq) :: slopyHOST ! Slope, y-direction [-]
203  real(kind=real8), dimension(kcolq) :: slopeHOST ! Slope [-]
204  real(kind=real8), dimension(kcolq,m_azim) :: MMaskHOST ! Mountain Mask [-]
205  real, dimension(kcolq) :: lonh_HOST ! Longitude [hour]
206  real, dimension(kcolq) :: latr_HOST ! Latitude [radian]
207  real :: ptop_HOST ! Pressure Model Top [kPa]
208 
209  real, dimension(kcolq,mzqq) :: pkta_HOST ! Reduced Potential Temperature [KX/s]
210  real, dimension(kcolq) :: psa__HOST ! Pressure Thickness [kPa]
211  real, dimension(kcolq,mzqq) :: gZa__HOST ! Geopotential Height [m2/s2]
212  real, dimension(kcolq,mzqq) :: gZam_HOST ! Geopotential Height, mid-level [m2/s2]
213  real, dimension(kcolq,mzq) :: Ua___HOST ! Wind Speed, x-direction [m/s]
214  real, dimension(kcolq,mzq) :: Va___HOST ! Wind Speed, y-direction [m/s]
215  real, dimension(kcolq,mzq) ,INTENT(IN) :: Wa___HOST ! Wind Speed, z-direction [m/s]
216  real, dimension(kcolq,mzqq) :: qv___HOST ! Specific Humidity [kg/kg]
217  real, dimension(kcolq,mzq) :: qw___HOST ! Cloud Droplets Concentration [kg/kg]
218  real, dimension(kcolq,mzq) :: CCN__HOST ! CCN Concentration [-/kg]
219  real, dimension(kcolq,mzq) :: qi___HOST ! Cloud Crystals Concentration [kg/kg]
220  real, dimension(kcolq,mzq) :: CIN__HOST ! CIN Concentration [-/kg]
221  real, dimension(kcolq,mzq) :: CF___HOST ! Cloud Fraction [-/kg]
222  real, dimension(kcolq,mzq) :: qs___HOST ! Snow Particles Concentration [kg/kg]
223  real, dimension(kcolq,mzq) :: qr___HOST ! Rain Drops Concentration [kg/kg]
224  real, dimension(kcolq,mzq) :: TKE__HOST ! Turbulent Kinetic Energy [m2/s2]
225  real, dimension(kcolq,mzq) :: eps__HOST ! Turbulent Kinetic Energy Dissipation [m2/s3]
226 
227  real, dimension(kcolq,mzq) :: dpkt___dt ! Reduced Potential Temperature TENDENCY, ALL Contribut.[KX/s]
228  real, dimension(kcolq,mzq) :: dua____dt ! Wind Speed (x-direc.) TENDENCY, ALL Contribut.[m/s2]
229  real, dimension(kcolq,mzq) :: dva____dt ! Wind Speed (y-direc.) TENDENCY, ALL Contribut.[m/s2]
230  real, dimension(kcolq,mzq) :: dqv____dt ! Specific Humidity TENDENCY, ALL Contr. [kg/kg/s]
231  real, dimension(kcolq,mzq) :: dqw____dt ! Cloud Droplets Concentration TENDENCY, ALL Contr. [kg/kg/s]
232 ! #cw real, dimension(kcolq,mzq) :: dCw____dt ! CCN Concentration TENDENCY, ALL Contr. [1/kg/s]
233  real, dimension(kcolq,mzq) :: dqi____dt ! Cloud Crystals Concentration TENDENCY, ALL Contr. [kg/kg/s]
234  real, dimension(kcolq,mzq) :: dCi____dt ! CIN Concentration TENDENCY, ALL Contr. [1/kg/s]
235  real, dimension(kcolq,mzq) :: dCF____dt ! Cloud Fraction TENDENCY, ALL Contr. [kg/kg/s]
236  real, dimension(kcolq,mzq) :: dqs____dt ! Snow Particles Concentration TENDENCY, ALL Contr. [kg/kg/s]
237  real, dimension(kcolq,mzq) :: dqr____dt ! Rain Drops Concentration TENDENCY, ALL Contr. [kg/kg/s]
238 
239  real, dimension(kcolq,mzq) :: dpktSV_dt ! Reduced Potential Temperature Tendency, SISVAT [KX/s]
240  real, dimension(kcolq,mzq) :: dpktAT_dt ! Reduced Potential Temperature Tendency, Atm_AT [KX/s]
241  real, dimension(kcolq,mzq) :: dqv_AT_dt ! Specific Humidity TENDENCY, Atm_AT [kg/kg/s]
242  real, dimension(kcolq,mzq) :: dqw_AT_dt ! Cloud Droplets Concentration TENDENCY, Atm_AT [kg/kg/s]
243 ! #cw real, dimension(kcolq,mzq) :: dCw_AT_dt ! CCN Concentration TENDENCY, Atm_AT [1/s]
244  real, dimension(kcolq,mzq) :: dqi_AT_dt ! Cloud Crystals Concentration TENDENCY, Atm_AT [kg/kg/s]
245  real, dimension(kcolq,mzq) :: dCi_AT_dt ! CIN Concentration TENDENCY, Atm_AT [1/s]
246  real, dimension(kcolq,mzq) :: dqs_AT_dt ! Snow Particles Concentration TENDENCY, Atm_AT [kg/kg/s]
247  real, dimension(kcolq,mzq) :: dqr_AT_dt ! Rain Drops Concentration TENDENCY, Atm_AT [kg/kg/s]
248  real, dimension(kcolq,mzq) :: dpktCM_dt ! Reduced Potential Temperature Tendency, CMiPhy [KX/s]
249  real, dimension(kcolq,mzq) :: dqv_CM_dt ! Specific Humidity TENDENCY, CMiPhy [kg/kg/s]
250  real, dimension(kcolq,mzq) :: dqw_CM_dt ! Cloud Droplets Concentration TENDENCY, CMiPhy [kg/kg/s]
251 ! #cw real, dimension(kcolq,mzq) :: dCw_CM_dt ! CCN Concentration TENDENCY, CMiPhy [1/s]
252  real, dimension(kcolq,mzq) :: dqi_CM_dt ! Cloud Crystals Concentration TENDENCY, CMiPhy [kg/kg/s]
253  real, dimension(kcolq,mzq) :: dCi_CM_dt ! CIN Concentration TENDENCY, CMiPhy [1/s]
254  real, dimension(kcolq,mzq) :: dCF_CM_dt ! Cloud Fraction TENDENCY, CMiPhy [1/s]
255  real, dimension(kcolq,mzq) :: dqs_CM_dt ! Snow Particles Concentration TENDENCY, CMiPhy [kg/kg/s]
256  real, dimension(kcolq,mzq) :: dqr_CM_dt ! Rain Drops Concentration TENDENCY, CMiPhy [kg/kg/s]
257  real, dimension(kcolq,mzq) :: dpktCP_dt ! Reduced Potential Temperature TENDENCY, CVAmnh [KX/s]
258  real, dimension(kcolq,mzq) :: dqv_CP_dt ! Specific Humidity TENDENCY, CVAmnh [kg/kg/s]
259  real, dimension(kcolq,mzq) :: dqw_CP_dt ! Cloud Droplets Concentration TENDENCY, CVAmnh [kg/kg/s]
260  real, dimension(kcolq,mzq) :: dqi_CP_dt ! Cloud Crystals Concentration TENDENCY, CVAmnh [kg/kg/s]
261  real, dimension(kcolq,mzq) :: dpktRT_dt ! Reduced Potential Temperature TENDENCY, radCEP [KX/s]
262 
263 !dead integer :: it0EXP !
264 !dead integer :: it0RUN !
265  integer :: Year_H ! Time [year]
266  integer :: Mon__H ! Time [month]
267  integer :: Day__H ! Time [Day]
268  integer :: Hour_H ! Time [hour]
269  integer :: minu_H ! Time [minute]
270  integer :: sec__H ! Time [s]
271  integer :: ixq1,i0x0,mxqq ! Domain Dimension: x [-]
272  integer :: jyq1,j0y0,myqq ! Domain Dimension: y [-]
273  integer :: mzq ! Domain Dimension: z [-]
274  integer :: mzqq ! Domain Dimension: z [-]
275  integer :: mwq ! Domain Dimension: mosaic [-]
276  integer :: kcolq ! Domain Dimension: x * y [-]
277  integer :: kcolw ! Domain Dimension: x * y * mosaic [-]
278  integer :: m_azim ! Mountain Mask, nb of directions taken into account [-]
279  integer, dimension(n0pt) :: IOi0SV !
280  integer, dimension(n0pt) :: IOj0SV !
281  integer :: n0pt !
282 
283  real, dimension(kcolq) :: sst__HOST ! Ocean FORCING (SST) [K]
284 ! #IP real, dimension(kcolq) :: sif__HOST ! Ocean FORCING (Sea-Ice Fraction ) [-]
285 ! #AO real, dimension(ixq1:mxqq,jyq1:myqq,mwq) :: s_T__HOST ! A - O COUPLING n=1: Open Ocean [K]
286 ! #AO real, dimension(ixq1:mxqq,jyq1:myqq,mwq) :: Alb__HOST ! A - O COUPLING (Surface Albedo ) n=2: Sea Ice [-]
287 ! #AO real, dimension(ixq1:mxqq,jyq1:myqq,mwq) :: dSdT2HOST ! A - O COUPLING ( d(SH Flux) / dT ) [W/m2/K]
288 ! #AO real, dimension(ixq1:mxqq,jyq1:myqq,mwq) :: dLdT2HOST ! A - O COUPLING ( d(SH Flux) / dT ) [W/m2/K]
289 
290 ! #TC integer, parameter :: ntrac = 28 !
291 ! #TC real, dimension(ixq1:mxqq,jyq1:myqq,mzq,ntrac) :: qxTC ! Aerosols: Atmospheric Contentration
292 ! #TC real, dimension(ixq1:mxqq,jyq1:myqq ,ntrac) :: qsTC ! Aerosols: Near Surface Contentration
293 ! #TC real, dimension(ixq1:mxqq,jyq1:myqq ,ntrac) :: uqTC ! Aerosols: Surf.Flux
294 ! ---------------------------------------------------------------------------------!
295 
296 
297 
298 
299 ! LOCAL VARIABLES
300 ! ===============
301 
302  real(kind=real8), dimension(kcolq,mzq) :: Wind_HOST ! Wind Speed, Horizontal [m/s]
303  real(kind=real8) :: dTdz = 0.0065 ! -d(T) / dz Lapse Rate [K/m]
304  real(kind=real8) :: dTimAT ! d(Time) between 2 calls of Atmos.Turbul. [s]
305 
306  integer :: i ,j ,ikl ,ikp !
307  integer :: k ,mn !
308  integer :: n ,ipt ,iwr ,kk !
309 
310 
311 
312 
313 
314 !dead it_RUN = it0RUN
315 !dead it_EXP = it0EXP
316 
317 
318 
319 
320 ! INITIALIZATION
321 ! ==============
322 
323 ! Initialization of local Variables (used each Time Step)
324 ! -------------------------------------------------------
325 
326  DO k = 1,mzq
327  DO ikl=1,kcolq
328  wind_host(ikl,k) = sqrt(ua___host(ikl,k)*ua___host(ikl,k)+va___host(ikl,k)*va___host(ikl,k))
329  ENDDO
330  ENDDO
331 
332 
333 
334 ! Initialization of the run
335 ! -------------------------
336 
337 ! Martin Control
338  print*, 'Dans PHY_MAR:'
339  print*, 'it_RUN=',it_run
340 ! Martin Control
341 
342  IF (it_run.LE.1) THEN
343 
344 
345 
346 ! Initialization of Mod_SISVAT_grd
347 ! --------------------------------
348 
349  jt__sv = max(1,int(dt0_sv /dt0dyn))
350  dt__sv = real(jt__sv)*dt0DYn
351  IF (dt__sv .NE. dt0_sv) write(6,61) dt__sv ,dt0_sv
352  61 format ('dt__SV =',f9.3,' differs from dt0_SV =',f9.3)
353 
354 
355 ! Initialization of Mod_PHY_AT_grd
356 ! --------------------------------
357 
358  jt__at = max(1,int(dt0_at /dt0dyn))
359  dt__at = real(jt__at)*dt0DYn
360  IF (dt__at .NE. dt0_at) write(6,62) dt__at ,dt0_at
361  62 format ('dt__AT =',f9.3,' differs from dt0_AT =',f9.3)
362 
363 
364 ! Initialization of Mod_PHY_CM_grd
365 ! --------------------------------
366 
367  jt__cm = max(1,int(dt0_cm /dt0dyn))
368  dt__cm = real(jt__cm)*dt0DYn
369  IF (dt__cm .NE. dt0_cm) write(6,63) dt__cm ,dt0_cm
370  63 format ('dt__CM =',f9.3,' differs from dt0_CM =',f9.3)
371 
372 
373 ! Initialization of Mod_PHY_CP_grd
374 ! --------------------------------
375 
376  jt__cp = max(1,int(dt0_cp /dt0dyn))
377  dt__cp = real(jt__cp)*dt0DYn
378  IF (dt__cp .NE. dt0_cp) write(6,64) dt__cp ,dt0_cp
379  64 format ('dt__CP =',f9.3,' differs from dt0_CP =',f9.3)
380 
381 
382 ! Initialization of Mod_PHY_RT_grd
383 ! --------------------------------
384 
385  jt__rt = max(1,int(dt0_rt /dt0dyn))
386  dt__rt = real(jt__rt)*dt0DYn
387  IF (dt__rt .NE. dt0_rt) write(6,65) dt__rt ,dt0_rt
388  65 format ('dt__RT =',f9.3,' differs from dt0_RT =',f9.3)
389 
390 
391 ! Initialization
392 ! --------------
393 
394 ! Initialization of 1-D Axes Variables: Vertical Axis (Atmosphere)
395 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
396  pt__dy = ptop_host
397  DO k=1,mzpp
398  sigma(k) = s_host(k)
399  ENDDO
400 
401 ! Martin control
402 !PRINT*,'s_HOST=',s_HOST
403 ! Martin control
404 
405  DO k=1,mzp
406  k1m(k) = max(k-1, 1)
407  k1p(k) = min(k+1,mzp)
408  k2m(k) = max(k-2, 1)
409  dsigma(k) = sigma(k+1) - sigma(k)
410  sigmi(k+1) = (sigma(k+1) + sigma(k)) * 0.5
411  END DO
412  sigmi(1) = 0.0
413  sigmi(mzpp)= 1.0
414 
415  DO k=1,mzp
416  dsigmi(k) = sigmi(k+1) - sigmi(k)
417 
418 ! Guess of sigma-levels Height
419 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
420  hsigma(k) =-(288./.0065)*(sigma(k) ** (287.*.0065/9.81)-1.)
421  END DO
422 
423  write(6,501) (sigma(k),k=1,mzpp)
424  501 format(/,' sigma: ',10f8.5 &
425  & ,5(/,' ',10f8.5))
426 
427  write(6,502)(hsigma(k),k=1,mzp)
428  502 format(/,' hsigma: ',10f8.1 &
429  & ,5(/,' ',10f8.1))
430 
431 
432 
433 ! Initialization of Mod_PHY____dat & Mod_PHY____kkl
434 ! -------------------------------------------------
435 
436 ! Topography
437 ! ~~~~~~~~~~
438  sh_max = 0.
439  DO ikl = 1,kcolp
440  sh__ap(ikl) = sh___host(ikl)
441  sha_ap(ikl) = sh_a_host(ikl)
442 
443 ! Surface Slope
444 ! ~~~~~~~~~~~~~
445  sloxap(ikl) = slopxhost(ikl)
446  sloyap(ikl) = slopyhost(ikl)
447  slopap(ikl) = slopehost(ikl)
448  sh_max = max(sh_max,sh__ap(ikl))
449  END DO
450  dzamin = hsigma(mzp) *(hsigma(1) -sh_max) /hsigma(1)
451 
452 
453  DO ikl = 1,kcolp
454 
455 ! Geographic Coordinates
456 ! ~~~~~~~~~~~~~~~~~~~~~~
457 
458 ! Martin rearrangement pour que RADACA ne plante plus:
459 
460 ! lon__r(ikl) = lonh_HOST(ikl) * 2.0 * piNmbr / 24.0
461  IF ((lonh_host(ikl) ) .LT. 0) THEN
462  lon__r(ikl) = 360 + (lonh_host(ikl) * 2.0 * pinmbr / 24.0)
463  ELSE
464  lon__r(ikl) = (lonh_host(ikl) * 2.0 * pinmbr / 24.0)
465  ENDIF
466  lon__h(ikl) = lonh_host(ikl)
467  lat__r(ikl) = latr_host(ikl)
468  sinlat(ikl) = sin(lat__r(ikl))
469  coslat(ikl) = cos(lat__r(ikl))
470 
471  ENDDO
472 
473 
474 
475 ! -----------------------------------------------------------------------------!
476 ! Initialization of Atm_DY (Counterpart of dynamical variables in PHY_MAR)
477 ! -------------------------
478 
479 ! Martin control
480 !PRINT*,'Avant PHY_Atm_DY_INI'
481 !PRINT*,'size(psa_DY)=',size(psa_DY)
482 ! Martin control
483 
484 ! **************
485  CALL phy_atm_dy_ini
486 ! **************
487 
488 ! Initialization of Atm_DY: needs plausible Atmospheric Conditions
489 ! ~~~~~~~~~~~~~~~~~~~~~~~~~ (here idealized for Temperature Vertical Gradient)
490 ! Martin control
491 !PRINT*,'Apres PHY_Atm_DY_INI'
492 !PRINT*,'size(psa_DY)=',size(psa_DY)
493 !PRINT*,'Dans PHY_MAR, calcul de Ta__DY:'
494 !PRINT*,'mzpp=',mzpp
495 !PRINT*,'pt__DY=',pt__DY
496 !PRINT*,'Dtdz=',dTdz
497 !PRINT*,'RCp=',RCp
498 !PRINT*,'minval(pkta(:,mzpp))=',minval(pkta_HOST(:,mzpp))
499 !PRINT*,'minval(psa__HOST(:))=',minval(psa__HOST(:))
500 !PRINT*,'minval(Z___DY(:,:))=',minval(Z___DY(:,:))
501 !PRINT*,'minval(Ta__DY(:,mzpp))=',minval(Ta__DY(:,mzpp))
502 ! Martin control
503 
504  DO ikl = 1,kcolp
505  i = ii__ap(ikl)
506  j = jj__ap(ikl)
507  psa_dy(ikl ) = psa__host(ikl)
508  ta__dy(ikl,mzpp) = pkta_host(ikl,mzpp)*(psa_dy(ikl)+pt__dy)**rcp
509 !gilles : init
510  z___dy(ikl,mzpp) = 0.
511  qv__dy(ikl,mzpp) = 0.001
512  DO k = mzp,1,-1
513  z___dy(ikl,k ) = &
514  & ta__dy(ikl,mzpp) &
515  & * (1.0 - ((psa_dy(ikl)*sigma(k)+pt__dy) &
516  & /(psa_dy(ikl) +pt__dy)) &
517  & **(r_dair * dtdz /grav_f)) / dtdz
518  ta__dy(ikl,k) = &
519  & ta__dy(ikl,mzpp) -z___dy(ikl,k) * dtdz
520 
521  qv__dy(ikl,k) = 0.001
522 
523  winddy(ikl,k) = wind_host(ikl,k)
524  ua__dy(ikl,k) = ua___host(ikl,k)
525  va__dy(ikl,k) = va___host(ikl,k)
526  wa__dy(ikl,k) = wa___host(ikl,k)
527  ENDDO
528  ENDDO
529 
530 ! Martin Control
531 !PRINT*,'Avant PHY_Atm_S0_INI'
532 !PRINT*,'minval(Ta__DY(:,:))=',minval(Ta__DY(:,:))
533 
534 
535 ! -----------------------------------------------------------------------------!
536 ! Initialization of Atm_S0 (Insolation and cos of Sun Zenithal Distance)
537 ! -------------------------
538 
539 ! **************
540  CALL phy_atm_s0_ini
541 ! **************
542 
543 ! Initialization of Mod_PHY_S0_ctr and Mod_PHY_S0_kkl
544 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545  faces0 = flags0_slo
546  mmsks0 = flags0_mtm
547  IF (flags0_slo .AND. flags0_mtm) THEN
548  DO k = 1,m_azim
549  DO ikl = 1,kcolp
550  cszks0(ikl,k) = mmaskhost(ikl,k)
551  ENDDO
552  ENDDO
553  ENDIF
554 
555 
556 ! -----------------------------------------------------------------------------!
557 ! Initialization of SISVAT
558 ! -------------------------
559 
560 ! Initialization of Mod_SISVAT_ctr (SISVAT Switches
561 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ & Time/Space control Variables)
562  vegmod = flagsv_veg
563  snomod = flagsv_sno
564  blomod = flagsv_bsn
565  inpswd = flagsv_swd
566  inpsbc = flagsv_sbc
567  svakzt = flagsv_kzt
568  svaubc = flagsv_ubc
569 
570 
571 ! Initialization of Mod_SISVAT_kkl (from INPUT from HOST Model)
572 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
573  DO ikp = 1,kcolp
574  i = ii__ap(ikp)
575  j = jj__ap(ikp)
576  DO mn = 1,mwp
577  DO k = 1,mzp
578  kk = mzpp - k
579  windsv(ikp,mn,k) = wind_host(ikp,k)
580  pkt0sv(ikp,mn,kk)= pkta_host(ikp,k)
581  END DO
582  ua__sv(ikp,mn) = ua___host(ikp,mzp)
583  va__sv(ikp,mn) = va___host(ikp,mzp)
584  END DO
585  END DO
586 
587 
588 ! Initialization of SISVAT Variables
589 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
590 ! **************
591  CALL phy_sisvat_ini
592 ! **************
593 
594 
595 ! Initialization of Mod_SISVAT_kkl (SISVAT OUTPUT Grid Points)
596 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
597  iwr = 0
598  DO ipt = 1,nbpts
599  IF (ioi0sv(ipt).EQ.0) THEN
600  ioi_sv(ipt)=i_x0
601  ELSE
602  ioi_sv(ipt)=ioi0sv(ipt)
603  END IF
604  IF (ioj0sv(ipt).EQ.0) THEN
605  ioj_sv(ipt)=j_y0
606  ELSE
607  ioj_sv(ipt)=ioj0sv(ipt)
608  END IF
609  write(6,*) 'ipt , IOi_SV, IOj_SV = ' &
610  & ,ipt , ioi_sv(ipt), ioj_sv(ipt)
611  DO n = 1,mwp
612  iwr = 1+iwr
613  IF (iwr.LE.nbwri) THEN
614  no__sv(iwr) = 0
615  i___sv(iwr) = ioi_sv(ipt)
616  j___sv(iwr) = ioj_sv(ipt)
617  n___sv(iwr) = n
618  write(6,*) 'n , i___SV, j___SV, n___SV, iwr = ' &
619  & ,n , i___sv(iwr), j___sv(iwr), n___sv(iwr), iwr
620  END IF
621  END DO
622  END DO
623 
624 
625 
626 ! -----------------------------------------------------------------------------!
627 ! Initialization of Atm_RT (Radiative Transfert through the Atmosphere)
628 ! -------------------------
629 
630 !gilles: PHY_Atm_RT_INI requires correct dates
631  yeartu = year_h
632  mon_tu = mon__h
633  day_tu = day__h
634  hourtu = hour_h
635  minutu = minu_h
636  sec_tu = sec__h
637 
638 ! **************
639  CALL phy_atm_rt_ini
640 ! **************
641 
642 ! -----------------------------------------------------------------------------!
643 ! Initialization of Atm_AT (Turbulent Transfert through the Atmosphere)
644 ! -------------------------
645 
646 ! **************
647  CALL phy_atm_at_ini(flagat_tke,typeat)
648 ! **************
649 
650 
651 
652 ! -----------------------------------------------------------------------------!
653 ! Initialization of Atm_CP (Convectiv Transfert through the Atmosphere)
654 ! -------------------------
655 
656 ! **************
657  CALL phy_atm_cp_ini(mzp,kcolp)
658 ! **************
659 
660 
661 
662 ! -----------------------------------------------------------------------------!
663 ! Initialization of CMiPhy (Cloud Microphysical Scheme)
664 ! -------------------------
665 
666 ! Initialization of Mod_PHY_CM_ctr (CMiPhy Switches
667 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ & Time/Space control Variables)
668  cm_upd = flagcm_upd
669 
670 ! **************
671  CALL phy_atm_cm_ini
672 ! **************
673 
674  END IF
675 
676 
677 ! Martin CONTROL
678 !PRINT*, 'Impressions control'
679 !call iophys_ecrit('TA__DY_surf',1,'surface temperature','K',Ta__DY(:,61))
680 !call iophys_ecrit('TA__DY_air',60,'air temperature','K',Ta__DY(:,1:60))
681 
682 !PRINT*,'TA__DY(:,61)=',TA__DY(kcolq/2,61)
683 
684 ! Interface: From HOST Model Variables to MARp Physics Variables
685 ! ==============================================================
686 
687 
688 ! Time
689 ! ----
690 
691  yeartu = year_h
692  mon_tu = mon__h
693  day_tu = day__h
694  hourtu = hour_h
695  minutu = minu_h
696  sec_tu = sec__h
697 
698  timetu = (float(351)+(float(yeartu) -float(1902)) *float(365)&! Nb Days before YearTU
699  & +(float(yeartu) -float(1901)) /float( 4)&! Nb Leap Years
700  & + float(njyear(mon_tu)) &! Nb Days before Mon_TU
701  & + float(njleap(mon_tu)) &! (including Leap Day)
702  & *max(zer0,un_1-mod(float(yeartu),float(4))) &!
703  & + float(day_tu)-float(1) ) *float( 24)&!
704  & +float(hourtu) &!
705  & + (float(minutu) *float(60) +float(sec_tu))/3600. !
706 
707 
708 
709 ! -----------------------------------------------------------------------------!
710 ! Assignation of Mod_PHY_AT_grd
711 ! ---------------------------------
712  IF (it_run .EQ. 1) THEN
713  timeat = timetu-dt0_at/3600. ! Initialisation à la première itération
714  END IF
715  IF (flagat .AND. mod(it_run-1,jt__at).EQ.0) THEN
716 !gilles: leapfrog scheme stops time integration regularly
717 ! dTimAT = (TimeTU-TimeAT) * 3600.
718  dtimat = dt0_at
719  timeat = timetu
720  END IF
721 
722 ! Martin CONTROL
723 print*,'CONTROL PHY_MAR temps'
724 print*,' Year_H =', year_h
725 print*,' Mon__H =', mon__h
726 print*,' Day__H =', day__h
727 print*,' Hour_H =', hour_h
728 print*,' minu_H =', minu_h
729 print*,' sec__H =', sec__h
730 print*,'jt__AT=',jt__at
731 print*,'TimeTU=',timetu
732 print*,'TimeAT=',timeat
733 print*,'dTimAT=',dtimat
734 ! Martin CONTROL
735 
736 
737 ! -----------------------------------------------------------------------------!
738 ! Assignation of Mod_PHY_DY_kkl
739 ! ---------------------------------
740 
741  DO ikl=1,kcolp
742  i = ii__ap(ikl)
743  j = jj__ap(ikl)
744  k = mzpp
745  exnrdy(ikl,k) = exp(rcp *log(psa__host(ikl)*sigma(k)+pt__dy))
746  pkt_dy(ikl,k) = pkta_host(ikl,k)
747  ta__dy(ikl,k) = pkta_host(ikl,k) * exnrdy(ikl,k)
748 ! CAUTION: Tas_SV_xy is not allowed to be changed by data coming from outside this routine
749  z___dy(ikl,k) = gza__host(ikl,k) *grav_i
750  zmiddy(ikl,k) = gzam_host(ikl,k) *grav_i
751  qv__dy(ikl,k) = qv___host(ikl,k)
752 
753  DO k = 1,mzp
754  exnrdy(ikl,k) = exp(rcp *log(psa__host(ikl)*sigma(k )+pt__dy))
755  pkt_dy(ikl,k) = pkta_host(ikl,k)
756  ta__dy(ikl,k) = pkta_host(ikl,k) * exnrdy(ikl,k)
757  roa_dy(ikl,k) = (psa__host(ikl)*sigma(k )+pt__dy) &
758  & /(ta__dy(ikl,k) *r_dair)
759  roamdy(ikl,k) = (psa__host(ikl)*sigmi(k+1)+pt__dy) &
760  & /(ta__dy(ikl,k) *r_dair)
761  z___dy(ikl,k) = gza__host(ikl,k) *grav_i
762  zmiddy(ikl,k) = gzam_host(ikl,k) *grav_i
763  qv__dy(ikl,k) = qv___host(ikl,k)
764 
765 
766 
767 ! -----------------------------------------------------------------------------!
768 ! Assignation of Mod_PHY_AT_kkl
769 ! ---------------------------------
770 
771 
772  IF (flagat.AND.it_exp.GT.1.AND.mod(it_run-1,jt__at).EQ.0) THEN
773  tke_at(ikl,k) = tke__host(ikl,k)
774  eps_at(ikl,k) = eps__host(ikl,k)
775  trt_at(ikl,k) = (tke_at(ikl,k) - trt_at(ikl,k)) &
776  & / dtimat
777  END IF
778 
779 
780 
781 ! -----------------------------------------------------------------------------!
782 ! Assignation of Mod_PHY_CM_kkl
783 ! ---------------------------------
784 
785  IF (flagcm.AND.it_exp.GT.1.AND.mod(it_run-1,jt__cm).EQ.0) THEN
786 
787 ! IF (qw___HOST(ikl,k).LT.qh_MIN) THEN
788 ! qv__DY(ikl,k) = qv__DY(ikl,k) + qw__CM(ikl,k)
789 ! qw__CM(ikl,k) = 0.
790 ! #cw CCNwCM(ikl,k) = 0.
791 ! ELSE
792  qw__cm(ikl,k) = qw___host(ikl,k)
793 ! #cw CCNwCM(ikl,k) = CCN__HOST(ikl,k)
794 ! END IF
795 
796 ! IF (qi___HOST(ikl,k).LT.qh_MIN) THEN
797 ! qv__DY(ikl,k) = qv__DY(ikl,k) + qi__CM(ikl,k)
798 ! qi__CM(ikl,k) = 0.
799 ! CCNiCM(ikl,k) = 0.
800 ! ELSE
801  qi__cm(ikl,k) = qi___host(ikl,k)
802  ccnicm(ikl,k) = cin__host(ikl,k)
803 ! END IF
804 
805 ! Gilles: CF___HOST non sauve & CFraCM reinitialise ici
806 ! CFraCM(ikl,k) = CF___HOST(ikl,k)
807 
808 ! IF (qw__CM(ikl,k).LT.qh_MIN .AND. &
809 ! & qi__CM(ikl,k).LT.qh_MIN) THEN
810 ! CFraCM(ikl,k) = 0.
811 ! ELSE
812 ! CFraCM(ikl,k) = max(CFrMIN,CF___HOST(ikl,k))
813 ! END IF
814 
815  qs__cm(ikl,k) = qs___host(ikl,k)
816  qr__cm(ikl,k) = qr___host(ikl,k)
817  END IF
818 
819  ENDDO
820 
821 
822 
823 ! -----------------------------------------------------------------------------!
824 ! Assignation of Mod_SISVAT_gpt (A-O FORCING OR COUPLING)
825 ! ---------------------------------
826 
827  sst_sb(ikl) = sst__host(ikl)
828 ! #IP sif_SB (ikl) = sif__HOST(ikl)
829 ! #AO DO k = 1,mwp
830 ! #AO s_T_AO_xyn(i,j,k) = s_T__HOST(ikl,k)
831 ! #AO Alb_AO_xyn(i,j,k) = Alb__HOST(ikl,k)
832 ! #AO ENDDO
833 
834  ENDDO
835 
836 ! -----------------------------------------------------------------------------!
837 ! Assignation of Mod_PHY_DY_kkl
838 ! ---------------------------------
839  DO ikl = 1,kcolp
840  i = ii__ap(ikl)
841  j = jj__ap(ikl)
842  psa_dy(ikl) = psa__host(ikl)
843  DO k = 1,mzp
844  winddy(ikl,k) = wind_host(ikl,k)
845  ua__dy(ikl,k) = ua___host(ikl,k)
846  va__dy(ikl,k) = va___host(ikl,k)
847  wa__dy(ikl,k) = wa___host(ikl,k) + sqrt(2.*max(eps6,tke_at(ikl,k))/3.)
848  END DO
849  END DO
850 
851 ! **************
852  CALL phy_atm_dy_run ! Assignation of MAR Dyn. Variables
853 ! **************
854 
855  IF(flagvr) THEN
856 ! **************
857  CALL phy________out('After PHY_Atm_DY_RUN ')
858 ! ************** 12345678901234567890123456789012345678901234567890
859 ! 1 2 3 4 5
860  END IF
861 
862 
863 
864 ! -----------------------------------------------------------------------------!
865 ! Saturation Specific Humidity
866 ! ----------------------------
867 
868  IF (flagcm .OR. &! ***************
869  & flagsv) CALL phy_atm_cm_qsat
870 ! ***************
871 
872 
873 
874 ! -----------------------------------------------------------------------------!
875 ! Execution of Atm_S0 (Insolation and cos of Sun Zenithal Distance)
876 ! -------------------------
877 
878 ! **************
879  CALL phy_atm_s0_run
880 ! **************
881 
882  IF(flagvr) THEN
883 ! **************
884  CALL phy________out('After PHY_Atm_S0_RUN ')
885 ! ************** 12345678901234567890123456789012345678901234567890
886 ! 1 2 3 4 5
887  END IF
888 
889 
890 
891 ! -----------------------------------------------------------------------------!
892 ! Execution of Atm_RT (Radiative Transfer through the Atmosphere)
893 ! -------------------------
894 
895  IF (flagrt .AND. mod(it_run-1,jt__rt).EQ.0) THEN
896 
897 ! **************
899 ! **************
900 
901  IF(flagvr) THEN
902 ! **************
903  CALL phy________out('After PHY_Atm_RT_RUN ')
904 ! ************** 12345678901234567890123456789012345678901234567890
905 ! 1 2 3 4 5
906  END IF
907  END IF
908 
909 
910 
911 ! -----------------------------------------------------------------------------!
912 ! Execution of SISVAT (Soil-Ice-Snow-Vegetation-Atmosphere-Transfer Scheme)
913 ! -------------------------
914 
915  IF (flagsv) THEN
916 
917 ! Assignation of Mod_SISVAT_kkl (from INPUT from HOST Model)
918 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
919  DO ikp = 1,kcolp
920  DO mn = 1,mwp
921  pkpasv(ikp,mn) = psa__host(ikp) +pt__dy
922  exnrsv(ikp,mn) = exp(rcp *log(psa__host(ikp)*sigma(mzp)+pt__dy))
923  DO k = 1,mzp
924  kk = mzpp - k
925  windsv(ikp,mn,k) = wind_host(ikp,k)
926  pkt0sv(ikp,mn,kk)= pkta_host(ikp,k)
927  qv__sv(ikp,mn,kk)= qv___host(ikp,k)
928  zza_sv(ikp,mn,kk)= (gza__host(ikp,k) & !
929  & -gza__host(ikp,mzpp)) *grav_i !
930  roa_sv(ikp,mn,kk)= roa_dy(ikp,k) * 1.e3 ! [kg/m3]
931  END DO
932  ua__sv(ikp,mn) = ua___host(ikp,mzp)
933  va__sv(ikp,mn) = va___host(ikp,mzp)
934  tat_sv(ikp,mn) = pkta_host(ikp,mzp) * exnrsv(ikp,mn)
935  END DO
936  END DO
937 
938 
939 ! **************
940  CALL phy_sisvat_run( &
941 ! **************
942 ! -----------------------------------------------------------------------------!
943 ! #TC& qxTC,uqTC ,qsTC , & ! Aerosols: Atm.Conc., Surf.Flux
944 ! -----------------------------------------------------------------------------!
945  & )
946 
947  IF(flagvr) THEN
948 ! **************
949  CALL phy________out('After PHY_SISVAT_RUN ')
950 ! ************** 12345678901234567890123456789012345678901234567890
951 ! 1 2 3 4 5
952  END IF
953  END IF
954 
955 
956 
957 ! -----------------------------------------------------------------------------!
958 ! Execution of Atm_AT (Atmospheric Turbulence Contribution)
959 ! -------------------------
960 
961  IF (flagat .AND. mod(it_run-1,jt__at).EQ.0) THEN
962 
963 ! **************
964  CALL phy_atm_at_run(flagsv_kzt,flagcm)
965 ! **************
966 
967  IF(flagvr) THEN
968 ! **************
969  CALL phy________out('After PHY_Atm_AT_RUN ')
970 ! ************** 12345678901234567890123456789012345678901234567890
971 ! 1 2 3 4 5
972  END IF
973  END IF
974 
975 
976 
977 ! -----------------------------------------------------------------------------!
978 ! Execution of Atm_CP (Convection Parameterisation - Mass Flux Scheme)
979 ! -------------------------
980 
981  IF (flagcp .AND. mod(it_run-1,jt__cp).EQ.0) THEN
982 
983 ! **************
984  CALL phy_atm_cp_run(mzp,kcolp)
985  ! CALL PHY_Atm_CP_RUN(mxp,kcolp) ! ancien bug
986 ! **************
987 
988  IF(flagvr) THEN
989 ! **************
990  CALL phy________out('After PHY_Atm_CP_RUN ')
991 ! ************** 12345678901234567890123456789012345678901234567890
992 ! 1 2 3 4 5
993  END IF
994  END IF
995 
996 
997 
998 ! -----------------------------------------------------------------------------!
999 ! Execution of Atm_CM (Cloud Microphysics)
1000 ! -------------------------
1001 
1002  IF (flagcm .AND. mod(it_run-1,jt__cm).EQ.0) THEN
1003 
1004 ! **************
1005  CALL phy_atm_cm_run
1006 ! **************
1007 
1008 
1009  IF(flagvr) THEN
1010 ! **************
1011  CALL phy________out('After PHY_Atm_CM_RUN ')
1012 ! ************** 12345678901234567890123456789012345678901234567890
1013 ! 1 2 3 4 5
1014  END IF
1015  END IF
1016 
1017 
1018 
1019 
1020 ! Assignation of the Tendencies to transfer outside the physical Parameterizations Package
1021 ! ========================================================================================
1022 
1023  DO ikl=1,kcolp
1024  i = ii__ap(ikl)
1025  j = jj__ap(ikl)
1026 
1027 
1028 
1029 ! -----------------------------------------------------------------------------!
1030 ! Reinitialization of the Tendencies
1031 ! ----------------------------------
1032 
1033  DO k= 1,mzp
1034 
1035  dpkt___dt(ikl,k) = 0.0 !
1036  dua____dt(ikl,k) = 0.0 !
1037  dva____dt(ikl,k) = 0.0 !
1038  dqv____dt(ikl,k) = 0.0 !
1039  dqw____dt(ikl,k) = 0.0 !
1040  dcf____dt(ikl,k) = 0.0 !
1041  dqi____dt(ikl,k) = 0.0 !
1042  dci____dt(ikl,k) = 0.0 !
1043  dqs____dt(ikl,k) = 0.0 !
1044  dqr____dt(ikl,k) = 0.0 !
1045 
1046 
1047 
1048 ! -----------------------------------------------------------------------------!
1049 ! Tendencies from SISVAT
1050 ! ----------------------
1051 
1052  IF (flagsv .AND. mod(it_run-1,jt__sv).EQ.0) then!
1053  dpktsv_dt(ikl,k) = dpktsv_gpt(ikl,k) ! Reduced Potential Temperature TENDENCY, SISVAT [KX/s]
1054  END IF
1055 
1056 ! Update of the tendencies
1057 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1058  IF (flagsv) then!
1059  dpkt___dt(ikl,k) = dpkt___dt(ikl,k) + dpktsv_gpt(ikl,k) !
1060  END IF
1061 
1062 
1063 
1064 ! -----------------------------------------------------------------------------!
1065 ! Tendencies from Atm_AT
1066 ! ----------------------
1067 
1068  IF (flagat .AND. mod(it_run-1,jt__at).EQ.0) then!
1069  dua____dt(ikl,k) = dua_at(ikl,k) ! Wind Speed (x-direc.) TENDENCY, ALL Contribut.[m/s2]
1070  dva____dt(ikl,k) = dva_at(ikl,k) ! Wind Speed (y-direc.) TENDENCY, ALL Contribut.[m/s2]
1071  dpktat_dt(ikl,k) = dpktat(ikl,k) ! Reduced Potential Temperature TENDENCY, Atm_AT [KX/s]
1072  dqv_at_dt(ikl,k) = dqv_at(ikl,k) ! Specific Humidity TENDENCY, Atm_AT [kg/kg/s]
1073  dqw_at_dt(ikl,k) = dqw_at(ikl,k) ! Cloud Droplets Concentration TENDENCY, Atm_AT [kg/kg/s]
1074  dqi_at_dt(ikl,k) = dqi_at(ikl,k) ! Cloud Crystals Concentration TENDENCY, Atm_AT [kg/kg/s]
1075  dqs_at_dt(ikl,k) = dqs_at(ikl,k) ! Snow Particles Concentration TENDENCY, Atm_AT [kg/kg/s]
1076  dqr_at_dt(ikl,k) = dqr_at(ikl,k) ! Rain Drops Concentration TENDENCY, Atm_AT [kg/kg/s]
1077 ! #cw dCw_AT_dt(ikl,k) = dCW_AT(ikl,k) ! CCN Concentration TENDENCY, Atm_AT [1/s]
1078  dci_at_dt(ikl,k) = dci_at(ikl,k) ! CIN Concentration TENDENCY, Atm_AT [1/s]
1079 
1080 ! NO Tendencies on TKE and its dissipation ==> TKE__HOST and eps__HOST are updated
1081 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1082  tke__host(ikl,k) = tke_at(ikl,k) !
1083  eps__host(ikl,k) = eps_at(ikl,k) !
1084 
1085 ! Re-Initialization of the TKE Transport Rate
1086 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1087  trt_at(ikl,k) = tke_at(ikl,k) !
1088  END IF
1089 
1090 ! Update of the tendencies
1091 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1092  IF (flagat) then!
1093  dpkt___dt(ikl,k) = dpkt___dt(ikl,k) + dpktat(ikl,k) !
1094  dqv____dt(ikl,k) = dqv____dt(ikl,k) + dqv_at(ikl,k) !
1095  dqw____dt(ikl,k) = dqw____dt(ikl,k) + dqw_at(ikl,k) !
1096  dqi____dt(ikl,k) = dqi____dt(ikl,k) + dqi_at(ikl,k) !
1097  dqs____dt(ikl,k) = dqs____dt(ikl,k) + dqs_at(ikl,k) !
1098  dqr____dt(ikl,k) = dqr____dt(ikl,k) + dqr_at(ikl,k) !
1099 ! #cw dCw____dt(ikl,k) = dCw____dt(ikl,k) + dCw_AT(ikl,k) !
1100  dci____dt(ikl,k) = dci____dt(ikl,k) + dci_at(ikl,k) !
1101  END IF
1102 
1103 
1104 
1105 ! -----------------------------------------------------------------------------!
1106 ! Tendencies from CMiPhy (dqw_CM, dCw_CM, dqi_CM, dCi_CM
1107 ! ---------------------- dqs_CM, dqr_CM are consumed in CMiPhy then reset to 0
1108 ! if FlagCM_UpD = .TRUE. )
1109 
1110  IF (flagcm .AND. mod(it_run-1,jt__cm).EQ.0) then!
1111  dpktcm_dt(ikl,k) = dpktcm(ikl,k) ! Reduced Potential Temperature TENDENCY, CMiPhy [KX/s]
1112  dqv_cm_dt(ikl,k) = dqv_cm(ikl,k) ! Specific Humidity TENDENCY, CMiPhy [kg/kg/s]
1113  dqw_cm_dt(ikl,k) = dqw_cm(ikl,k) ! Cloud Droplets Concentration TENDENCY, CMiPhy [kg/kg/s]
1114  dcf_cm_dt(ikl,k) = dcf_cm(ikl,k) ! Cloud Fraction TENDENCY, CMiPhy [kg/kg/s]
1115  dqi_cm_dt(ikl,k) = dqi_cm(ikl,k) ! Cloud Crystals Concentration TENDENCY, CMiPhy [kg/kg/s]
1116  dqs_cm_dt(ikl,k) = dqs_cm(ikl,k) ! Snow Particles Concentration TENDENCY, CMiPhy [kg/kg/s]
1117  dqr_cm_dt(ikl,k) = dqr_cm(ikl,k) ! Rain Drops Concentration TENDENCY, CMiPhy [kg/kg/s]
1118 ! #cw dCw_CM_dt(ikl,k) = dCW_CM(ikl,k) ! CCN Concentration TENDENCY, CMiPhy [1/s]
1119  dci_cm_dt(ikl,k) = dci_cm(ikl,k) ! CIN Concentration TENDENCY, CMiPhy [1/s]
1120  END IF
1121 
1122 ! Update of the tendencies
1123 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1124  IF (flagcm) then!
1125  dpkt___dt(ikl,k) = dpkt___dt(ikl,k) + dpktcm(ikl,k) !
1126  dqv____dt(ikl,k) = dqv____dt(ikl,k) + dqv_cm(ikl,k) !
1127  dqw____dt(ikl,k) = dqw____dt(ikl,k) + dqw_cm(ikl,k) !
1128  dcf____dt(ikl,k) = dcf____dt(ikl,k) + dcf_cm(ikl,k) !
1129  dqi____dt(ikl,k) = dqi____dt(ikl,k) + dqi_cm(ikl,k) !
1130  dqs____dt(ikl,k) = dqs____dt(ikl,k) + dqs_cm(ikl,k) !
1131  dqr____dt(ikl,k) = dqr____dt(ikl,k) + dqr_cm(ikl,k) !
1132 ! #cw dCw____dt(ikl,k) = dCw____dt(ikl,k) + dCw_CM(ikl,k) !
1133  dci____dt(ikl,k) = dci____dt(ikl,k) + dci_cm(ikl,k) !
1134  END IF
1135 
1136 
1137 
1138 ! -----------------------------------------------------------------------------!
1139 ! Tendencies from CVAmnh
1140 ! ----------------------
1141 
1142  IF (flagcp .AND. mod(it_run-1,jt__cp).EQ.0) then!
1143  dpktcp_dt(ikl,k) = dpktcp(ikl,k) ! Reduced Potential Temperature TENDENCY, CVAmnh [KX/s]
1144  dqv_cp_dt(ikl,k) = dqv_cp(ikl,k) ! Specific Humidity TENDENCY, CVAmnh [kg/kg/s]
1145  dqw_cp_dt(ikl,k) = dqw_cp(ikl,k) ! Cloud Droplets Concentration TENDENCY, CVAmnh [kg/kg/s]
1146  dqi_cp_dt(ikl,k) = dqi_cp(ikl,k) ! Cloud Crystals Concentration TENDENCY, CVAmnh [kg/kg/s]
1147  END IF
1148 
1149 ! Update of the tendencies
1150 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1151  IF (flagcp) then!
1152  dpkt___dt(ikl,k) = dpkt___dt(ikl,k) + dpktcp(ikl,k) !
1153  dqv____dt(ikl,k) = dqv____dt(ikl,k) + dqv_cp(ikl,k) !
1154  dqw____dt(ikl,k) = dqw____dt(ikl,k) + dqw_cp(ikl,k) !
1155  dqi____dt(ikl,k) = dqi____dt(ikl,k) + dqi_cp(ikl,k) !
1156  END IF
1157 
1158 
1159 
1160 ! -----------------------------------------------------------------------------!
1161 ! Tendencies from radCEP
1162 ! ----------------------
1163 
1164  IF (flagrt .AND. mod(it_run-1,jt__rt).EQ.0) then!
1165  dpktrt_dt(ikl,k) = dpktrt(ikl,k) ! Reduced Potential Temperature TENDENCY, radCEP [KX/s]
1166  END IF
1167 
1168 ! Update of the tendencies
1169 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1170  IF (flagrt) then!
1171  dpkt___dt(ikl,k) = dpkt___dt(ikl,k) + dpktrt(ikl,k) !
1172  END IF
1173 
1174  ENDDO
1175 
1176 
1177 
1178 
1179 
1180 ! Assignation of the Variables to keep inside the Physical Parameterizations Package
1181 ! ========================================================================================
1182 
1183 ! ... NOTHING up to now
1184 
1185 
1186 
1187 ! Assignation of the Variables to transfer outside the Physical Parameterizations Package
1188 ! ========================================================================================
1189 
1190 ! -----------------------------------------------------------------------------!
1191 ! Update of pkta_HOST, qv___HOST
1192 ! -------------------------------
1193 
1194  DO k=1,mzpp
1195  pkta_host(ikl,k) = pkt_dy(ikl,k) ! Always on k=mzpp, possible from 1 to mzp (with dpkt = 0.)
1196  qv___host(ikl,k) = qv__dy(ikl,k) !
1197  ENDDO
1198 
1199 
1200 
1201 ! -----------------------------------------------------------------------------!
1202 ! Update of qw___HOST, CF___HOST, qi___HOST, CIN__HOST, qs___HOST, qr___HOST
1203 ! ---------------------------------------------------------------------------
1204 
1205  IF (flagcm) THEN
1206  DO k=1,mzp
1207  qw___host(ikl,k) = qw__cm(ikl,k)
1208 ! #cw CCN__HOST(ikl,k) = CCNwCM(ikl,k)
1209  cf___host(ikl,k) = cfracm(ikl,k)
1210  qi___host(ikl,k) = qi__cm(ikl,k)
1211  cin__host(ikl,k) = ccnicm(ikl,k)
1212  qs___host(ikl,k) = qs__cm(ikl,k)
1213  qr___host(ikl,k) = qr__cm(ikl,k)
1214  ENDDO
1215  END IF
1216 
1217 
1218 
1219 ! -----------------------------------------------------------------------------!
1220 ! Update of d(S,LH)/dT (needed in NEMO)
1221 ! ---------------------
1222 
1223 ! #AO DO k=1,mwpp
1224 ! #AO dSdT2HOST(ikl,k) = dSdTAO_xyn(i,j,k)
1225 ! #AO dLdT2HOST(ikl,k) = dLdTAO_xyn(i,j,k)
1226 ! #AO ENDDO
1227 
1228 
1229 
1230  ENDDO
1231 
1232 
1233 
1234 
1235 ! OUTPUT
1236 ! ======
1237 
1238 ! OUTPUT of Tendencies
1239 ! --------------------
1240 
1241  IF (flagvr .OR. &
1242  & (flag_o .AND. ((minutu.EQ.0 .AND. sec_tu.EQ.0) .OR. &
1243  & it_run.EQ.1 ))) THEN
1244  ikl = ikl0
1245  i = ii__ap(ikl)
1246  j = jj__ap(ikl)
1247 
1248 ! pkt TENDENCIES
1249 ! ~~~~~~~~~~~~~~
1250  write(4,400)
1251  400 format(//,' pkt TENDENCIES',/,' **************'/,1x)
1253  403 format(3x,2(i2,'-'),i4,4x,3(i2,'-'),' Simulation Iteration No ',i6,/,1x)
1254  write(4,404)
1255  write(4,401)
1256  401 format(' | SISVAT | Atm_AT | CMiPhy | CVAmnh | radCEP |')
1257  write(4,402)
1258  402 format(' | [K/d] | [K/d] | [K/d] | [K/d] | [K/d] |')
1259  write(4,404)
1260  404 format(4('-'),'+',5(13('-'),'+'))
1261  DO k=1,mzp
1262  write(4,405) k &
1263  & , exnrdy(ikl,k)*dpktsv_gpt(ikl,k)*86400. &
1264  & , exnrdy(ikl,k)*dpktat(ikl,k)*86400. &
1265  & , exnrdy(ikl,k)*dpktcm(ikl,k)*86400. &
1266  & , exnrdy(ikl,k)*dpktcp(ikl,k)*86400. &
1267  & , exnrdy(ikl,k)*dpktrt(ikl,k)*86400.
1268  405 format(i3,' |',5(f12.6,' |'))
1269 
1270  IF (mod(k,20).EQ.0) THEN
1271  write(4,404)
1272  write(4,401)
1273  write(4,402)
1274  write(4,404)
1275  END IF
1276  ENDDO
1277  write(4,404)
1278 
1279 ! pkt TENDENCIES
1280 ! ~~~~~~~~~~~~~~
1281  write(4,410)
1282  410 format(//,' Qv TENDENCIES',/,' **************'/,1x)
1284 !403 format(3x,2(i2,'-'),i4,4x,3(i2,'-'),' Simulation Iteration No ',i6,/,1x)
1285  write(4,404)
1286  write(4,411)
1287  411 format(' | SISVAT | Atm_AT | CMiPhy | CVAmnh | TOTAL |')
1288  write(4,412)
1289  412 format(' | [g/kg/min] | [g/kg/min] | [g/kg/min] | [g/kg/min] | [g/kg/min] |')
1290  write(4,404)
1291 !404 format(4('-'),'+',5(13('-'),'+'))
1292  DO k=1,mzp
1293  write(4,415) k &
1294  & , dqv_at(ikl,k)*60000. &
1295  & , dqv_cm(ikl,k)*60000. &
1296  & , dqv_cp(ikl,k)*60000. &
1297  & , dqv____dt(ikl,k)*60000.
1298  415 format(i3,' |',12x,' |',4(f12.6,' |'))
1299 
1300  IF (mod(k,20).EQ.0) THEN
1301  write(4,404)
1302  write(4,411)
1303  write(4,412)
1304  write(4,404)
1305  END IF
1306  ENDDO
1307  write(4,404)
1308  END IF
1309 
1310  IF (flag_o .AND. ((minutu.EQ.0 .AND. sec_tu.EQ.0) .OR. &
1311  & it_run.EQ.1 )) THEN
1312 
1313 ! **************
1314  CALL phy________out('After PHY_MAR ')
1315 ! ************** 12345678901234567890123456789012345678901234567890
1316 ! 1 2 3 4 5
1317  END IF
1318 
1319 
1320 
1321  return
1322  end
subroutine phy_atm_cm_ini
real(kind=real8), dimension(:,:), allocatable, save dqi_cp
real(kind=real8), save dzamin
integer, save day_tu
integer, dimension(0:12), save njyear
real(kind=real8), save timetu
real(kind=real8), dimension(:,:), allocatable, save dqs_at
real(kind=real8), dimension(:,:,:), allocatable, save zza_sv
real(kind=real8), dimension(:), allocatable, save dsigma
real(kind=real8), dimension(:,:), allocatable, save dqw_at
integer, dimension(:), allocatable, save ii__ap
real(kind=real8), save un_1
real(kind=real8), dimension(:,:), allocatable, save ua__dy
subroutine phy_atm_dy_ini
real(kind=real8), dimension(:,:), allocatable, save dqv_cm
integer, save nbwri
real(kind=real8), dimension(:), allocatable, save coslat
real(kind=real8), dimension(:,:), allocatable, save qv__dy
integer, dimension(:), allocatable, save k1m
real(kind=real8), dimension(:), allocatable, save sha_ap
real(kind=real8), dimension(:), allocatable, save sh__ap
subroutine phy_atm_rt_run(rklonr, iklOUT)
real(kind=real8), dimension(:), allocatable, save lon__r
real(kind=real8), dimension(:), allocatable, save sloxap
real(kind=real8), dimension(:,:), allocatable, save exnrdy
real(kind=real8), dimension(:,:), allocatable, save dpktcp
real(kind=real8), dimension(:,:), allocatable, save qw__cm
real(kind=real8), dimension(:,:), allocatable, save dua_at
integer, dimension(0:12), save njleap
subroutine phy_atm_at_run(FlagSV_KzT, FlagCM)
real(kind=real8), dimension(:,:), allocatable, save dva_at
real(kind=real8), dimension(:,:), allocatable, save dqi_cm
real(kind=real8), save dt__sv
real(kind=real8), dimension(:,:), allocatable, save dqi_at
integer, save jt__at
real(kind=real8), dimension(:,:), allocatable, save trt_at
real(kind=real8), dimension(:,:), allocatable, save va__dy
real(kind=real8), dimension(:,:), allocatable, save qr__cm
integer, dimension(:), allocatable, save no__sv
real(kind=real8), dimension(:,:), allocatable, save ua__sv
real(kind=real8), save pinmbr
real(kind=real8), dimension(:,:), allocatable, save cfracm
real(kind=real8), dimension(:,:,:), allocatable, save qv__sv
real(kind=real8), dimension(:,:,:), allocatable, save roa_sv
real(kind=real8), dimension(:,:), allocatable, save dci_cm
real(kind=real8), save dt__rt
real(kind=real8), dimension(:,:), allocatable, save dqv_cp
real(kind=real8), dimension(:), allocatable, save dsigmi
real(kind=real8), save grav_i
integer, save jt__sv
integer, save jt__cp
real(kind=real8), dimension(:,:), allocatable, save cszks0
integer, save j_y0
real(kind=real8), dimension(:,:), allocatable, save dqr_cm
integer, dimension(:), allocatable, save k2m
subroutine phy_atm_s0_ini
real(kind=real8), dimension(:), allocatable, save lat__r
integer, save kcolp
subroutine phy_atm_s0_run
real(kind=real8), save dt__cp
subroutine phy_sisvat_ini
integer, save ikl0
real(kind=real8), dimension(:,:), allocatable, save zmiddy
integer, save it_exp
real(kind=real8), dimension(:,:), allocatable, save eps_at
real(kind=real8), dimension(:,:), allocatable, save wa__dy
integer, save nbpts
integer, dimension(:), allocatable, save i___sv
real(kind=real8), save r_dair
real(kind=real8), save dt__at
real(kind=real8), dimension(:,:), allocatable, save ccnicm
real(kind=real8), dimension(:), allocatable, save lon__h
subroutine phy_atm_cm_qsat
real(kind=real8), save grav_f
subroutine phy_atm_dy_run
real(kind=real8), dimension(:,:), allocatable, save winddy
real(kind=real8), dimension(:,:), allocatable, save dcf_cm
integer, dimension(:), allocatable, save k1p
real(kind=real8), dimension(:,:), allocatable, save dpktrt
subroutine phy_sisvat_run(
subroutine phy_atm_rt_ini
real(kind=real8), dimension(:,:), allocatable, save dpktsv_gpt
integer, save mon_tu
subroutine phy_mar
Definition: PHY_MAR___.f90:3
real(kind=real8), dimension(:,:), allocatable, save z___dy
real(kind=real8), dimension(:), allocatable, save hsigma
real(kind=real8), dimension(:,:), allocatable, save ta__dy
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
integer, dimension(:), allocatable, save ioi_sv
real(kind=real8), dimension(:), allocatable, save slopap
real(kind=real8), dimension(:,:,:), allocatable, save windsv
real(kind=real8), dimension(:,:), allocatable, save roa_dy
real(kind=real8), dimension(:,:), allocatable, save dqw_cp
integer, save mzpp
real(kind=real8), dimension(:,:), allocatable, save dqw_cm
real(kind=real8), dimension(:,:), allocatable, save dqs_cm
real(kind=real8), dimension(:), allocatable, save psa_dy
real(kind=real8), dimension(:,:,:), allocatable, save pkt0sv
real(kind=real8), dimension(:), allocatable, save sinlat
integer, save minutu
real(kind=real8), dimension(:,:), allocatable, save tke_at
real(kind=real8), dimension(:), allocatable, save sst_sb
real(kind=real8), save rcp
integer, save i_x0
integer, save mzp
real(kind=real8), save pt__dy
real(kind=real8), save timeat
real(kind=real8), dimension(:,:), allocatable, save va__sv
real(kind=real8), dimension(:,:), allocatable, save dci_at
real(kind=real8), dimension(:), allocatable, save sloyap
real(kind=real8), dimension(:), allocatable, save sigma
integer, save jt__cm
integer, save it_run
real(kind=real8), dimension(:,:), allocatable, save qi__cm
integer, save jt__rt
real(kind=real8), dimension(:,:), allocatable, save exnrsv
subroutine phy_atm_cm_run
subroutine phy________out(MOTIVATION)
real(kind=real8), save eps6
subroutine phy_atm_at_ini(FlagAT_TKE, TypeAT)
integer, dimension(:), allocatable, save n___sv
real(kind=real8), dimension(:), allocatable, save sigmi
real(kind=real8), save zer0
real(kind=real8), dimension(:,:), allocatable, save qs__cm
integer, save yeartu
real(kind=real8), dimension(:,:), allocatable, save pkt_dy
integer, dimension(:), allocatable, save ioj_sv
real(kind=real8), dimension(:,:), allocatable, save tat_sv
real(kind=real8), dimension(:,:), allocatable, save dpktcm
real(kind=real8), dimension(:,:), allocatable, save pkpasv
real(kind=real8), dimension(:,:), allocatable, save dqv_at
real(kind=real8), dimension(:,:), allocatable, save roamdy
integer, save mwp
integer, save hourtu
integer, save sec_tu
real(kind=real8), save sh_max
subroutine phy_atm_cp_ini(mzc, kcolc)
real(kind=real8), dimension(:,:), allocatable, save dqr_at
integer, dimension(:), allocatable, save j___sv
real(kind=real8), dimension(:,:), allocatable, save dpktat
integer, dimension(:), allocatable, save jj__ap
real(kind=real8), save dt__cm
subroutine phy_atm_cp_run(mzc, kcolc)