LMDZ
swr.F90
Go to the documentation of this file.
1 SUBROUTINE swr &
2  & ( kidia , kfdia , klon , klev , knu,&
3  & palbd , pcg , pcld , pomega, psec , ptau,&
4  & pcgaz , ppizaz, pray1, pray2 , prefz, prj , prk , prmue,&
5  & ptauaz, ptra1 , ptra2, ptrcld &
6  & )
7 
8 !**** *SWR* - CONTINUUM SCATTERING COMPUTATIONS
9 
10 ! PURPOSE.
11 ! --------
12 ! COMPUTES THE REFLECTIVITY AND TRANSMISSIVITY IN CASE OF
13 ! CONTINUUM SCATTERING
14 
15 !** INTERFACE.
16 ! ----------
17 
18 ! *SWR* IS CALLED EITHER FROM *SW1S*
19 ! OR FROM *SWNI*
20 
21 ! IMPLICIT ARGUMENTS :
22 ! --------------------
23 
24 ! ==== INPUTS ===
25 ! ==== OUTPUTS ===
26 
27 ! METHOD.
28 ! -------
29 
30 ! 1. COMPUTES CONTINUUM FLUXES CORRESPONDING TO AEROSOL
31 ! OR/AND RAYLEIGH SCATTERING (NO MOLECULAR GAS ABSORPTION)
32 
33 ! EXTERNALS.
34 ! ----------
35 
36 ! *SWDE*
37 
38 ! REFERENCE.
39 ! ----------
40 
41 ! SEE RADIATION'S PART OF THE ECMWF RESEARCH DEPARTMENT
42 ! DOCUMENTATION, AND FOUQUART AND BONNEL (1980)
43 
44 ! AUTHOR.
45 ! -------
46 ! JEAN-JACQUES MORCRETTE *ECMWF*
47 
48 ! MODIFICATIONS.
49 ! --------------
50 ! ORIGINAL : 89-07-14
51 ! Ph. DANDIN Meteo-France 05-96 : Effect of cloud layer
52 ! JJMorcrette 990128 : sunshine duration
53 ! JJMorcrette 001218 : 6 spectral intervals
54 ! 03-10-10 Deborah Salmond and Marta Janiskova Optimisation
55 ! M.Hamrud 01-Oct-2003 CY28 Cleaning
56 ! Y.Seity 06-09-09 : add modset from O.Thouron (MesoNH) under NOVLP tests
57 ! ------------------------------------------------------------------
58 
59 USE parkind1 ,ONLY : jpim ,jprb
60 USE yomhook ,ONLY : lhook, dr_hook
61 
62 !USE YOERAD , ONLY : NOVLP ,NSW
63 ! NSW mis dans ;def MPL 20140211
64 USE yoerad , ONLY : novlp
65 USE yoecld , ONLY : repsec
66 USE yoeovlp , ONLY : ra1ovlp
68 
69 IMPLICIT NONE
70 
71 include "clesphys.h"
72 INTEGER(KIND=JPIM),INTENT(IN) :: KLON
73 INTEGER(KIND=JPIM),INTENT(IN) :: KLEV
74 INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA
75 INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA
76 INTEGER(KIND=JPIM),INTENT(IN) :: KNU
77 REAL(KIND=JPRB) ,INTENT(IN) :: PALBD(klon,nsw)
78 REAL(KIND=JPRB) ,INTENT(IN) :: PCG(klon,nsw,klev)
79 REAL(KIND=JPRB) ,INTENT(IN) :: PCLD(klon,klev)
80 REAL(KIND=JPRB) ,INTENT(IN) :: POMEGA(klon,nsw,klev)
81 REAL(KIND=JPRB) ,INTENT(IN) :: PSEC(klon)
82 REAL(KIND=JPRB) ,INTENT(IN) :: PTAU(klon,nsw,klev)
83 REAL(KIND=JPRB) ,INTENT(IN) :: PCGAZ(klon,klev)
84 REAL(KIND=JPRB) ,INTENT(IN) :: PPIZAZ(klon,klev)
85 REAL(KIND=JPRB) ,INTENT(OUT) :: PRAY1(klon,klev+1)
86 REAL(KIND=JPRB) ,INTENT(OUT) :: PRAY2(klon,klev+1)
87 REAL(KIND=JPRB) ,INTENT(OUT) :: PREFZ(klon,2,klev+1)
88 REAL(KIND=JPRB) ,INTENT(OUT) :: PRJ(klon,6,klev+1)
89 REAL(KIND=JPRB) ,INTENT(OUT) :: PRK(klon,6,klev+1)
90 REAL(KIND=JPRB) ,INTENT(OUT) :: PRMUE(klon,klev+1)
91 REAL(KIND=JPRB) ,INTENT(IN) :: PTAUAZ(klon,klev)
92 REAL(KIND=JPRB) ,INTENT(OUT) :: PTRA1(klon,klev+1)
93 REAL(KIND=JPRB) ,INTENT(OUT) :: PTRA2(klon,klev+1)
94 REAL(KIND=JPRB) ,INTENT(OUT) :: PTRCLD(klon)
95 ! ------------------------------------------------------------------
96 
97 !* 0.1 ARGUMENTS
98 ! ---------
99 
100 ! ------------------------------------------------------------------
101 
102 ! ------------
103 
104 REAL(KIND=JPRB) :: ZC1I(klon,klev+1) , ZCLEQ(klon,klev)&
105  & , ZCLEAR(KLON) , ZCLOUD(KLON) &
106  & , ZGG(KLON) , ZREF(KLON)&
107  & , ZRE1(KLON) , ZRE2(KLON)&
108  & , ZRMUZ(KLON) , ZRNEB(KLON)&
109  & , ZR21(KLON) , ZR22(KLON)&
110  & , ZR23(KLON) , ZSS1(KLON)&
111  & , ZTO1(KLON) , ZTR(KLON,2,KLEV+1)&
112  & , ZTR1(KLON) , ZTR2(KLON)&
113  & , ZW(KLON)
114 
115 INTEGER(KIND=JPIM) :: IKL, IKLP1, JA, JAJ, JK, JKM1, JL, INU1
116 
117 REAL(KIND=JPRB) :: ZBMU0, ZBMU1, ZCORAE, ZCORCD, ZDEN, ZDEN1,&
118  & ZFACOA, ZFACOC, ZGAP, ZMU1, ZMUE, ZRE11, &
119  & ZTO, ZWW, ZALPHA1, ZCHKAE, ZCHKCD
120 REAL(KIND=JPRB) :: ZRR,ZIMU1,ZI2MU1,ZIDEN,ZIDEN1
121 REAL(KIND=JPRB) :: ZHOOK_HANDLE
122 LOGICAL :: LLDEBUG
123 
124 #include "swde.intfb.h"
125 
126 ! ------------------------------------------------------------------
127 
128 !* 1. INITIALIZATION
129 ! --------------
130 
131 IF (lhook) CALL dr_hook('SWR',0,zhook_handle)
132 lldebug=.false.
133 DO jk = 1 , klev+1
134  DO ja = 1 , 6
135  DO jl = kidia,kfdia
136  prj(jl,ja,jk) = 0.0_jprb
137  prk(jl,ja,jk) = 0.0_jprb
138  ENDDO
139  ENDDO
140 ENDDO
141 
142 repsec=1.e-12_jprb !!!!! A REVOIR (MPL) 220109
143 
144 ! ------------------------------------------------------------------
145 
146 !* 2. TOTAL EFFECTIVE CLOUDINESS ABOVE A GIVEN LEVEL
147 ! ----------------------------------------------
148 
149 DO jl = kidia,kfdia
150  zr23(jl) = 0.0_jprb
151  zc1i(jl,klev+1) = 0.0_jprb
152  zclear(jl) = 1.0_jprb
153  zcloud(jl) = 0.0_jprb
154 ENDDO
155 
156 jk = 1
157 ikl = klev+1 - jk
158 iklp1 = ikl + 1
159 zalpha1=ra1ovlp( ikl )
160 DO jl = kidia,kfdia
161 !++MODIFCODE
162  IF (novlp >= 5) THEN !MESONH VERSION
163  stop 'provisoire pour verifier option novlp=1'
164  zfacoa =ptauaz(jl,ikl)
165  zfacoc = 1.0_jprb - pomega(jl,knu,ikl) * pcg(jl,knu,ikl)* pcg(jl,knu,ikl)
166  zcorae = zfacoa * psec(jl)
167  zcorcd = zfacoc * ptau(jl,knu,ikl) * psec(jl)
168  ELSE !ECMWF VERSION
169 zfacoa = 1.0_jprb - ppizaz(jl,ikl)*pcgaz(jl,ikl)*pcgaz(jl,ikl)
170  zfacoc = 1.0_jprb - pomega(jl,knu,ikl) * pcg(jl,knu,ikl)* pcg(jl,knu,ikl)
171  zcorae = zfacoa * ptauaz(jl,ikl) * psec(jl)
172  zcorcd = zfacoc * ptau(jl,knu,ikl) * psec(jl)
173  ENDIF
174 !--MODIFCODE
175  zchkae = min( 200._jprb, zcorae )
176  zchkcd = min( 200._jprb, zcorcd )
177  zr21(jl) = exp( - zchkae )
178  zr22(jl) = exp( - zchkcd )
179 
180  zss1(jl) = pcld(jl,ikl)*(1.0_jprb-zr21(jl)*zr22(jl))&
181  & + (1.0_jprb-pcld(jl,ikl))*(1.0_jprb-zr21(jl))
182  zcleq(jl,ikl) = zss1(jl)
183 
184 !++MODIFCODE
185  IF ((novlp == 1).OR.(novlp == 8)) THEN
186 !--MODIFCODE
187 !* maximum-random
188  zclear(jl) = zclear(jl)&
189  & *(1.0_jprb-max(zss1(jl),zcloud(jl)))&
190  & /(1.0_jprb-min(zcloud(jl),1.0_jprb-repsec))
191  zc1i(jl,ikl) = 1.0_jprb - zclear(jl)
192  zcloud(jl) = zss1(jl)
193  ELSEIF (novlp == 2) THEN
194  stop 'provisoire pour verifier option novlp=1b'
195 !* maximum
196  zcloud(jl) = max( zss1(jl) , zcloud(jl) )
197  zc1i(jl,ikl) = zcloud(jl)
198 !++MODIFCODE
199  ELSEIF ((novlp == 3).OR.((novlp >= 5).AND.(novlp /= 8))) THEN
200  stop 'provisoire pour verifier option novlp=1c'
201 !--MODIFCODE
202 !* random
203  zclear(jl) = zclear(jl)*(1.0_jprb - zss1(jl))
204  zcloud(jl) = 1.0_jprb - zclear(jl)
205  zc1i(jl,ikl) = zcloud(jl)
206  ELSEIF (novlp == 4) THEN
207  stop 'provisoire pour verifier option novlp=1d'
208 !* Hogan & Illingworth, 2001
209  zclear(jl)=zclear(jl)*( &
210  & zalpha1*(1.0_jprb-max(zss1(jl),zcloud(jl))) &
211  & /(1.0_jprb-min(zcloud(jl),1.0_jprb-repsec)) &
212  & +(1.0_jprb-zalpha1)*(1.0_jprb-zss1(jl)) )
213  zc1i(jl,ikl) = 1.0_jprb - zclear(jl)
214  zcloud(jl) = zss1(jl)
215  ENDIF
216 ENDDO
217 
218 DO jk = 2 , klev
219  ikl = klev+1 - jk
220  iklp1 = ikl + 1
221  zalpha1=ra1ovlp( ikl )
222  DO jl = kidia,kfdia
223 !++MODIFCODE
224  IF (novlp >= 5) THEN !MESONH VERSION
225  zfacoa =ptauaz(jl,ikl)
226  zfacoc = 1.0_jprb - pomega(jl,knu,ikl) * pcg(jl,knu,ikl)* pcg(jl,knu,ikl)
227  zcorae = zfacoa * psec(jl)
228  zcorcd = zfacoc * ptau(jl,knu,ikl) * psec(jl)
229  ELSE !ECMWF VERSION
230  zfacoa = 1.0_jprb - ppizaz(jl,ikl)*pcgaz(jl,ikl)*pcgaz(jl,ikl)
231  zfacoc = 1.0_jprb - pomega(jl,knu,ikl) * pcg(jl,knu,ikl)* pcg(jl,knu,ikl)
232  zcorae = zfacoa * ptauaz(jl,ikl) * psec(jl)
233  zcorcd = zfacoc * ptau(jl,knu,ikl) * psec(jl)
234  ENDIF
235 !--MODIFCODE
236 ! ZR21(JL) = EXP(-ZCORAE )
237 ! ZR22(JL) = EXP(-ZCORCD )
238 
239  zchkae = min( 200._jprb, zcorae )
240  zchkcd = min( 200._jprb, zcorcd )
241  zr21(jl) = exp( - zchkae )
242  zr22(jl) = exp( - zchkcd )
243 
244  zss1(jl) = pcld(jl,ikl)*(1.0_jprb-zr21(jl)*zr22(jl))&
245  & + (1.0_jprb-pcld(jl,ikl))*(1.0_jprb-zr21(jl))
246  zcleq(jl,ikl) = zss1(jl)
247 
248 !++MODIFCODE
249  IF ((novlp == 1).OR.(novlp == 8)) THEN
250 !--MODIFCODE
251 !* maximum-random
252  zclear(jl) = zclear(jl)&
253  & *(1.0_jprb-max(zss1(jl),zcloud(jl)))&
254  & /(1.0_jprb-min(zcloud(jl),1.0_jprb-repsec))
255  zc1i(jl,ikl) = 1.0_jprb - zclear(jl)
256  zcloud(jl) = zss1(jl)
257  ELSEIF (novlp == 2) THEN
258 !* maximum
259  zcloud(jl) = max( zss1(jl) , zcloud(jl) )
260  zc1i(jl,ikl) = zcloud(jl)
261 !++MODIFCODE
262  ELSEIF ((novlp == 3).OR.((novlp >= 5).AND.(novlp /= 8))) THEN
263 !--MODIFCODE
264 !* random
265  zclear(jl) = zclear(jl)*(1.0_jprb - zss1(jl))
266  zcloud(jl) = 1.0_jprb - zclear(jl)
267  zc1i(jl,ikl) = zcloud(jl)
268  ELSEIF (novlp == 4) THEN
269 !* Hogan & Illingworth, 2001
270  zclear(jl)=zclear(jl)*( &
271  & zalpha1*(1.0_jprb-max(zss1(jl),zcloud(jl))) &
272  & /(1.0_jprb-min(zcloud(jl),1.0_jprb-repsec)) &
273  & +(1.0_jprb-zalpha1)*(1.0_jprb-zss1(jl)) )
274  zc1i(jl,ikl) = 1.0_jprb - zclear(jl)
275  zcloud(jl) = zss1(jl)
276  ENDIF
277  ENDDO
278 ENDDO
279 
280 ! ------------------------------------------------------------------
281 
282 !* 3. REFLECTIVITY/TRANSMISSIVITY FOR PURE SCATTERING
283 ! -----------------------------------------------
284 
285 DO jl = kidia,kfdia
286  pray1(jl,klev+1) = 0.0_jprb
287  pray2(jl,klev+1) = 0.0_jprb
288  prefz(jl,2,1) = palbd(jl,knu)
289  prefz(jl,1,1) = palbd(jl,knu)
290  ptra1(jl,klev+1) = 1.0_jprb
291  ptra2(jl,klev+1) = 1.0_jprb
292 ENDDO
293 
294 DO jk = 2 , klev+1
295  jkm1 = jk-1
296  DO jl = kidia,kfdia
297  zrneb(jl)= pcld(jl,jkm1)
298  zre1(jl)=0.0_jprb
299  ztr1(jl)=0.0_jprb
300  zre2(jl)=0.0_jprb
301  ztr2(jl)=0.0_jprb
302 
303 ! ------------------------------------------------------------------
304 
305 !* 3.1 EQUIVALENT ZENITH ANGLE
306 ! -----------------------
307 
308  zmue = (1.0_jprb-zc1i(jl,jk)) * psec(jl)+ zc1i(jl,jk) * 1.66_jprb
309  prmue(jl,jk) = 1.0_jprb/zmue
310 
311 ! ------------------------------------------------------------------
312 
313 !* 3.2 REFLECT./TRANSMISSIVITY DUE TO RAYLEIGH AND AEROSOLS
314 ! ----------------------------------------------------
315 
316  zgap = pcgaz(jl,jkm1)
317  zbmu0 = 0.5_jprb - 0.75_jprb * zgap / zmue
318  zww = ppizaz(jl,jkm1)
319  zto = ptauaz(jl,jkm1)
320  zden = 1.0_jprb + (1.0_jprb - zww + zbmu0 * zww) * zto * zmue &
321  & + (1-zww) * (1.0_jprb - zww +2.0_jprb*zbmu0*zww)*zto*zto*zmue*zmue
322  ziden=1.0_jprb/zden
323  pray1(jl,jkm1) = zbmu0 * zww * zto * zmue * ziden
324  ptra1(jl,jkm1) = ziden
325 
326  zmu1 = 0.5_jprb
327  zimu1=2.0_jprb
328  zi2mu1=4.0_jprb
329  zbmu1 = 0.5_jprb - 0.75_jprb * zgap * zmu1
330  zden1= 1.0_jprb + (1.0_jprb - zww + zbmu1 * zww) * zto * zimu1 &
331  & + (1-zww) * (1.0_jprb - zww +2.0_jprb*zbmu1*zww)*zto*zto*zi2mu1
332  ziden1=1.0_jprb/zden1
333  pray2(jl,jkm1) = zbmu1 * zww * zto * zimu1 * ziden1
334  ptra2(jl,jkm1) = ziden1
335 
336 ! ------------------------------------------------------------------
337 
338 !* 3.3 EFFECT OF CLOUD LAYER
339 ! ---------------------
340 
341 
342 !++MODIFCODE
343  IF (novlp >= 5)THEN !MESONH VERSION
344  zw(jl) =pcg(jl,knu,jkm1)*pcg(jl,knu,jkm1)
345  zto1(jl) = ptau(jl,knu,jkm1)*(1-(pomega(jl,knu,jkm1)*zw(jl)))
346  zw(jl) =pomega(jl,knu,jkm1)*(1-zw(jl))/(1-(pomega(jl,knu,jkm1)*zw(jl)))
347  zgg(jl) = pcg(jl,knu,jkm1)/(1+pcg(jl,knu,jkm1))
348  zgg(jl)=zto1(jl)*zw(jl)*zgg(jl)+ptauaz(jl,jkm1)*ppizaz(jl,jkm1)*pcgaz(jl,jkm1)
349  zw(jl) =zto1(jl)*zw(jl)+ptauaz(jl,jkm1)*ppizaz(jl,jkm1)
350  zto1(jl) = zto1(jl) + ptauaz(jl,jkm1)
351  zgg(jl)=zgg(jl)/zw(jl)
352  zw(jl) =zw(jl)/zto1(jl)
353  ELSE !ECMWF VERSION
354  zw(jl) = pomega(jl,knu,jkm1)
355  zto1(jl) = ptau(jl,knu,jkm1)/zw(jl)+ ptauaz(jl,jkm1)/ppizaz(jl,jkm1)
356  zr21(jl) = ptau(jl,knu,jkm1) + ptauaz(jl,jkm1)
357  zr22(jl) = ptau(jl,knu,jkm1) / zr21(jl)
358  zgg(jl) = zr22(jl) * pcg(jl,knu,jkm1)&
359  & + (1.0_jprb - zr22(jl)) * pcgaz(jl,jkm1)
360  IF (zw(jl) == 1.0_jprb .AND. ppizaz(jl,jkm1) == 1.0_jprb) THEN
361  zw(jl)=1.0_jprb
362  ELSE
363  zw(jl) = zr21(jl) / zto1(jl)
364  ENDIF
365  ENDIF
366 !--MODIFCODE
367  zref(jl) = prefz(jl,1,jkm1)
368  zrmuz(jl) = prmue(jl,jk)
369  ENDDO
370 
371  CALL swde ( kidia, kfdia , klon,&
372  & zgg , zref , zrmuz , zto1 , zw,&
373  & zre1 , zre2 , ztr1 , ztr2 )
374 
375  DO jl = kidia,kfdia
376 
377  zrr=1.0_jprb/(1.0_jprb-pray2(jl,jkm1)*prefz(jl,1,jkm1))
378 
379  prefz(jl,1,jk) = (1.0_jprb-zrneb(jl)) * (pray1(jl,jkm1)&
380  & + prefz(jl,1,jkm1) * ptra1(jl,jkm1)&
381  & * ptra2(jl,jkm1)&
382  & * zrr ) &
383  & + zrneb(jl) * zre2(jl)
384 
385  ztr(jl,1,jkm1) = zrneb(jl) * ztr2(jl) + (ptra1(jl,jkm1)&
386  & * zrr ) &
387  & * (1.0_jprb-zrneb(jl))
388 
389  prefz(jl,2,jk) = (1.0_jprb-zrneb(jl)) * (pray1(jl,jkm1)&
390  & + prefz(jl,2,jkm1) * ptra1(jl,jkm1)&
391  & * ptra2(jl,jkm1) )&
392  & + zrneb(jl) * zre1(jl)
393 
394  ztr(jl,2,jkm1) = zrneb(jl) * ztr1(jl)+ ptra1(jl,jkm1) * (1.0_jprb-zrneb(jl))
395 
396  ENDDO
397 ENDDO
398 DO jl = kidia,kfdia
399  zmue = (1.0_jprb-zc1i(jl,1))*psec(jl)+zc1i(jl,1)*1.66_jprb
400  prmue(jl,1)=1.0_jprb/zmue
401  ptrcld(jl)=1.0_jprb-zc1i(jl,1)
402 ENDDO
403 
404 ! ------------------------------------------------------------------
405 
406 !* 3.5 REFLECT./TRANSMISSIVITY BETWEEN SURFACE AND LEVEL
407 ! -------------------------------------------------
408 
409 IF (nsw <= 4) THEN
410  inu1=1
411 ELSEIF (nsw == 6) THEN
412  inu1=3
413 ENDIF
414 
415 IF (knu <= inu1) THEN
416  jaj = 2
417  DO jl = kidia,kfdia
418  prj(jl,jaj,klev+1) = 1.0_jprb
419  prk(jl,jaj,klev+1) = prefz(jl, 1,klev+1)
420  ENDDO
421 
422  DO jk = 1 , klev
423  ikl = klev+1 - jk
424  iklp1 = ikl + 1
425  DO jl = kidia,kfdia
426  zre11= prj(jl,jaj,iklp1) * ztr(jl, 1,ikl)
427  prj(jl,jaj,ikl) = zre11
428  prk(jl,jaj,ikl) = zre11 * prefz(jl, 1,ikl)
429  ENDDO
430  ENDDO
431 
432 ELSE
433 
434  DO jaj = 1 , 2
435  DO jl = kidia,kfdia
436  prj(jl,jaj,klev+1) = 1.0_jprb
437  prk(jl,jaj,klev+1) = prefz(jl,jaj,klev+1)
438  ENDDO
439 
440  DO jk = 1 , klev
441  ikl = klev+1 - jk
442  iklp1 = ikl + 1
443  DO jl = kidia,kfdia
444  zre11= prj(jl,jaj,iklp1) * ztr(jl,jaj,ikl)
445  prj(jl,jaj,ikl) = zre11
446  prk(jl,jaj,ikl) = zre11 * prefz(jl,jaj,ikl)
447  ENDDO
448  ENDDO
449  ENDDO
450 
451 ENDIF
452 IF(lldebug) THEN
453  call writefield_phy ('swr_zc1i',zc1i,klev+1)
454  call writefield_phy ('swr_zss1',zss1,1)
455  call writefield_phy ('swr_zclear',zclear,1)
456  call writefield_phy ('swr_prmue',prmue,klev+1)
457  call writefield_phy ('swr_psec',psec,1)
458  call writefield_phy ('swr_prmue',prmue,klev+1)
459  call writefield_phy ('swr_ppizaz',ppizaz,klev)
460  call writefield_phy ('swr_pcgaz',pcgaz,klev)
461  call writefield_phy ('swr_pcg',pcg,klev)
462  call writefield_phy ('swr_ptau',ptau(:,1,:),klev)
463  call writefield_phy ('swr_ptauaz',ptauaz,klev)
464  call writefield_phy ('swr_pcld',pcld,klev)
465 ENDIF
466 ! ------------------------------------------------------------------
467 
468 IF (lhook) CALL dr_hook('SWR',1,zhook_handle)
469 END SUBROUTINE swr
integer, save kidia
Definition: dimphy.F90:6
integer, save klon
Definition: dimphy.F90:3
integer(kind=jpim) novlp
Definition: yoerad.F90:24
integer, save klev
Definition: dimphy.F90:7
real(kind=jprb) repsec
Definition: yoecld.F90:37
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
Definition: calcul_STDlev.h:26
integer, save kfdia
Definition: dimphy.F90:5
subroutine swr(KIDIA, KFDIA, KLON, KLEV, KNU, PALBD, PCG, PCLD, POMEGA, PSEC, PTAU, PCGAZ, PPIZAZ, PRAY1, PRAY2, PREFZ, PRJ, PRK, PRMUE, PTAUAZ, PTRA1, PTRA2, PTRCLD)
Definition: swr.F90:7
integer, parameter jprb
Definition: parkind1.F90:31
Definition: yoerad.F90:1
logical lhook
Definition: yomhook.F90:12
real(kind=jprb), dimension(:), allocatable ra1ovlp
Definition: yoeovlp.F90:13
Definition: yoecld.F90:1
subroutine swde(KIDIA, KFDIA, KLON, PGG, PREF, PRMUZ, PTO1, PW, PRE1, PRE2, PTR1, PTR2)
Definition: swde.F90:7
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
subroutine writefield_phy(name, Field, ll)
integer, parameter jpim
Definition: parkind1.F90:13