LMDZ
sw1s.F90
Go to the documentation of this file.
1 SUBROUTINE sw1s &
2  & ( kidia , kfdia , klon , klev , kaer , knu,&
3  & paer , palbd , palbp, pcg , pcld , pclear,&
4  & pdsig , pomega, poz , prmu , psec , ptau , pud,&
5  & pfd , pfu , pcd , pcu , psudu1,pdiff , pdirf, &
6 !++MODIFCODE
7  & lrdust,ppiza_dst,pcga_dst,ptaurel_dst &
8 !--MODIFCODE
9  &)
10 
11 !**** *SW1S* - SHORTWAVE RADIATION, FIRST SPECTRAL INTERVAL
12 
13 ! PURPOSE.
14 ! --------
15 
16 ! THIS ROUTINE COMPUTES THE SHORTWAVE RADIATION FLUXES IN TWO
17 ! SPECTRAL INTERVALS FOLLOWING FOUQUART AND BONNEL (1980).
18 
19 !** INTERFACE.
20 ! ----------
21 
22 ! *SW1S* IS CALLED FROM *SW*.
23 
24 ! IMPLICIT ARGUMENTS :
25 ! --------------------
26 
27 ! ==== INPUTS ===
28 ! ==== OUTPUTS ===
29 
30 ! METHOD.
31 ! -------
32 
33 ! 1. COMPUTES QUANTITIES FOR THE CLEAR-SKY FRACTION OF THE
34 ! COLUMN
35 ! 2. COMPUTES UPWARD AND DOWNWARD FLUXES CORRESPONDING TO
36 ! CONTINUUM SCATTERING
37 ! 3. MULTIPLY BY OZONE TRANSMISSION FUNCTION
38 
39 ! EXTERNALS.
40 ! ----------
41 
42 ! *SWCLR*, *SWR*, *SWTT*, *SWUVO3*
43 
44 ! REFERENCE.
45 ! ----------
46 
47 ! SEE RADIATION'S PART OF THE ECMWF RESEARCH DEPARTMENT
48 ! DOCUMENTATION, AND FOUQUART AND BONNEL (1980)
49 
50 ! AUTHOR.
51 ! -------
52 ! JEAN-JACQUES MORCRETTE *ECMWF*
53 
54 ! MODIFICATIONS.
55 ! --------------
56 ! ORIGINAL : 89-07-14
57 ! 94-11-15 J.-J. MORCRETTE DIRECT/DIFFUSE ALBEDO
58 ! 96-01-15 J.-J. MORCRETTE SW in nsw SPECTRAL INTERVALS
59 ! 990128 JJMorcrette sunshine duration
60 ! 99-05-25 JJMorcrette Revised aerosols
61 ! 00-12-18 JJMorcrette 6 spectral intervals
62 ! M.Hamrud 01-Oct-2003 CY28 Cleaning
63 ! Y.Seity 04-11-19 : add two arguments for AROME externalized surface
64 ! Y.Seity 05-10-10 : add 3 optional arg. for dust SW properties
65 ! Y.Seity 06-09-09 : add modset from O.Thouron (MesoNH) under NOVLP tests
66 ! ------------------------------------------------------------------
67 
68 USE parkind1 ,ONLY : jpim ,jprb
69 USE yomhook ,ONLY : lhook, dr_hook
70 
71 USE yoesw , ONLY : rray ,rsun
72 !USE YOERAD , ONLY : NSW
73 ! NSW mis dans .def MPL 20140211
75 
76 IMPLICIT NONE
77 
78 include "clesphys.h"
79 
80 INTEGER(KIND=JPIM),INTENT(IN) :: KLON
81 INTEGER(KIND=JPIM),INTENT(IN) :: KLEV
82 INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA
83 INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA
84 INTEGER(KIND=JPIM),INTENT(IN) :: KAER
85 INTEGER(KIND=JPIM),INTENT(IN) :: KNU
86 REAL(KIND=JPRB) ,INTENT(IN) :: PAER(klon,6,klev)
87 REAL(KIND=JPRB) ,INTENT(IN) :: PALBD(klon,nsw)
88 REAL(KIND=JPRB) ,INTENT(IN) :: PALBP(klon,nsw)
89 REAL(KIND=JPRB) ,INTENT(IN) :: PCG(klon,nsw,klev)
90 REAL(KIND=JPRB) ,INTENT(IN) :: PCLD(klon,klev)
91 REAL(KIND=JPRB) ,INTENT(IN) :: PCLEAR(klon)
92 REAL(KIND=JPRB) ,INTENT(IN) :: PDSIG(klon,klev)
93 REAL(KIND=JPRB) ,INTENT(IN) :: POMEGA(klon,nsw,klev)
94 REAL(KIND=JPRB) ,INTENT(IN) :: POZ(klon,klev)
95 REAL(KIND=JPRB) ,INTENT(IN) :: PRMU(klon)
96 REAL(KIND=JPRB) ,INTENT(IN) :: PSEC(klon)
97 REAL(KIND=JPRB) ,INTENT(IN) :: PTAU(klon,nsw,klev)
98 REAL(KIND=JPRB) ,INTENT(IN) :: PUD(klon,5,klev+1)
99 !++MODIFCODE
100 LOGICAL ,INTENT(IN) :: LRDUST ! flag for DUST
101 REAL(KIND=JPRB) ,INTENT(IN) :: PPIZA_DST(klon,klev)
102 REAL(KIND=JPRB) ,INTENT(IN) :: PCGA_DST(klon,klev)
103 REAL(KIND=JPRB) ,INTENT(IN) :: PTAUREL_DST(klon,klev)
104 !--MODIFCODE
105 REAL(KIND=JPRB) ,INTENT(OUT) :: PFD(klon,klev+1)
106 REAL(KIND=JPRB) ,INTENT(OUT) :: PFU(klon,klev+1)
107 REAL(KIND=JPRB) ,INTENT(OUT) :: PCD(klon,klev+1)
108 REAL(KIND=JPRB) ,INTENT(OUT) :: PCU(klon,klev+1)
109 REAL(KIND=JPRB) ,INTENT(OUT) :: PSUDU1(klon)
110 REAL(KIND=JPRB) ,INTENT(OUT) :: PDIFF(klon,klev)
111 REAL(KIND=JPRB) ,INTENT(OUT) :: PDIRF(klon,klev)
112 ! ------------------------------------------------------------------
113 
114 !* 0.1 ARGUMENTS
115 ! ---------
116 
117 ! ------------------------------------------------------------------
118 
119 ! ------------
120 
121 INTEGER(KIND=JPIM) :: IIND(6)
122 
123 REAL(KIND=JPRB) :: ZCGAZ(klon,klev)&
124  & , ZDIFF(KLON) , ZDIRF(KLON) &
125  & , ZDIFT(KLON) , ZDIRT(KLON) &
126  & , ZPIZAZ(KLON,KLEV)&
127  & , ZRAYL(KLON), ZRAY1(KLON,KLEV+1), ZRAY2(KLON,KLEV+1)&
128  & , ZREFZ(KLON,2,KLEV+1)&
129  & , ZRJ(KLON,6,KLEV+1), ZRJ0(KLON,6,KLEV+1)&
130  & , ZRK(KLON,6,KLEV+1), ZRK0(KLON,6,KLEV+1)&
131  & , ZRMUE(KLON,KLEV+1), ZRMU0(KLON,KLEV+1)&
132  & , ZR(KLON,6)&
133  & , ZTAUAZ(KLON,KLEV)&
134  & , ZTRA1(KLON,KLEV+1), ZTRA2(KLON,KLEV+1)&
135  & , ZTRCLD(KLON) , ZTRCLR(KLON)&
136  & , ZW(KLON,6) , ZO(KLON,2) ,ZT(KLON,2)
137 
138 INTEGER(KIND=JPIM) :: IKL, IKM1, JAJ, JK, JL , JJ
139 REAL(KIND=JPRB) :: ZHOOK_HANDLE
140 LOGICAL :: LLDEBUG
141 
142 #include "swclr.intfb.h"
143 #include "swr.intfb.h"
144 #include "swtt1.intfb.h"
145 #include "swuvo3.intfb.h"
146 
147 ! ------------------------------------------------------------------
148 
149 !* 1. FIRST SPECTRAL INTERVAL (0.25-0.68 MICRON)
150 ! ----------------------- ------------------
151 
152 !* 1.1 OPTICAL THICKNESS FOR RAYLEIGH SCATTERING
153 ! -----------------------------------------
154 
155 IF (lhook) CALL dr_hook('SW1S',0,zhook_handle)
156 lldebug=.false.
157 DO jl = kidia,kfdia
158  zrayl(jl) = rray(knu,1) + prmu(jl) * (rray(knu,2) + prmu(jl)&
159  & * (rray(knu,3) + prmu(jl) * (rray(knu,4) + prmu(jl)&
160  & * (rray(knu,5) + prmu(jl) * rray(knu,6) ))))
161 ENDDO
162 ! ------------------------------------------------------------------
163 
164 !* 2. CONTINUUM SCATTERING CALCULATIONS
165 ! ---------------------------------
166 
167 !* 2.1 CLEAR-SKY FRACTION OF THE COLUMN
168 ! --------------------------------
169 
170 !++MODIFCODE
171 CALL swclr &
172  &( kidia , kfdia , klon , klev , kaer , knu &
173  &, paer , palbp , pdsig , zrayl, psec &
174  &, zcgaz , zpizaz, zray1 , zray2, zrefz, zrj0 &
175  &, zrk0 , zrmu0 , ztauaz, ztra1, ztra2, ztrclr &
176  &, lrdust , ppiza_dst,pcga_dst &
177  &, ptaurel_dst )
178 
179 !--MODIFCODE
180 
181 !* 2.2 CLOUDY FRACTION OF THE COLUMN
182 ! -----------------------------
183 
184 CALL swr &
185  & ( kidia ,kfdia ,klon ,klev , knu,&
186  & palbd ,pcg ,pcld ,pomega, psec , ptau,&
187  & zcgaz ,zpizaz,zray1 ,zray2 , zrefz, zrj ,zrk , zrmue,&
188  & ztauaz,ztra1 ,ztra2 ,ztrcld &
189  & )
190 
191 ! DO JK = 1 , KLEV
192 ! IKL = KLEV+1-JK
193 ! DO JL = KIDIA,KFDIA
194 ! print *,'Apres SWCLR,SWR RMU0 RMUE ',ZRMU0(JL,IKL),ZRMUE(JL,IKL)
195 ! ENDDO
196 ! ENDDO
197 ! ------------------------------------------------------------------
198 
199 !* 3. OZONE ABSORPTION
200 ! ----------------
201 
202 IF (nsw <= 4) THEN
203 
204 !* 3.1 TWO OR FOUR SPECTRAL INTERVALS
205 ! ------------------------------
206 
207  iind(1)=1
208  iind(2)=2
209  iind(3)=3
210  iind(4)=1
211  iind(5)=2
212  iind(6)=3
213 
214 !* 3.1.1 DOWNWARD FLUXES
215 ! ---------------
216 
217  jaj = 2
218 
219  DO jl = kidia,kfdia
220  zw(jl,1)=0.0_jprb
221  zw(jl,2)=0.0_jprb
222  zw(jl,3)=0.0_jprb
223  zw(jl,4)=0.0_jprb
224  zw(jl,5)=0.0_jprb
225  zw(jl,6)=0.0_jprb
226  pfd(jl,klev+1)=((1.0_jprb-pclear(jl))*zrj(jl,jaj,klev+1)&
227  & + pclear(jl) *zrj0(jl,jaj,klev+1)) * rsun(knu)
228  pcd(jl,klev+1)= zrj0(jl,jaj,klev+1) * rsun(knu)
229  ENDDO
230  DO jk = 1 , klev
231  ikl = klev+1-jk
232  DO jl = kidia,kfdia
233  zw(jl,1)=zw(jl,1)+pud(jl,1,ikl)/zrmue(jl,ikl)
234  zw(jl,2)=zw(jl,2)+pud(jl,2,ikl)/zrmue(jl,ikl)
235  zw(jl,3)=zw(jl,3)+poz(jl, ikl)/zrmue(jl,ikl)
236  zw(jl,4)=zw(jl,4)+pud(jl,1,ikl)/zrmu0(jl,ikl)
237  zw(jl,5)=zw(jl,5)+pud(jl,2,ikl)/zrmu0(jl,ikl)
238  zw(jl,6)=zw(jl,6)+poz(jl, ikl)/zrmu0(jl,ikl)
239  ENDDO
240 
241  CALL swtt1 ( kidia, kfdia, klon, knu, 6,&
242  & iind,&
243  & zw,&
244  & zr )
245 
246  DO jl = kidia,kfdia
247  zdiff(jl) = zr(jl,1)*zr(jl,2)*zr(jl,3)*zrj(jl,jaj,ikl)
248  zdirf(jl) = zr(jl,4)*zr(jl,5)*zr(jl,6)*zrj0(jl,jaj,ikl)
249  pdiff(jl,ikl) = zdiff(jl) * rsun(knu)*(1.0_jprb-pclear(jl))
250  pdirf(jl,ikl) = zdirf(jl) * rsun(knu)*pclear(jl)
251  pfd(jl,ikl) = ((1.0_jprb-pclear(jl)) * zdiff(jl)&
252  & +pclear(jl) * zdirf(jl)) * rsun(knu)
253  pcd(jl,ikl) = zdirf(jl) * rsun(knu)
254  ENDDO
255  ENDDO
256 
257  DO jl=kidia,kfdia
258  zdift(jl) = zr(jl,1)*zr(jl,2)*zr(jl,3)*ztrcld(jl)
259  zdirt(jl) = zr(jl,4)*zr(jl,5)*zr(jl,6)*ztrclr(jl)
260  psudu1(jl) = ((1.0_jprb-pclear(jl)) * zdift(jl)&
261  & +pclear(jl) * zdirt(jl)) * rsun(knu)
262  ENDDO
263 
264 !* 3.1.2 UPWARD FLUXES
265 ! -------------
266 
267  DO jl = kidia,kfdia
268  pfu(jl,1) = ((1.0_jprb-pclear(jl))*zdiff(jl)*palbd(jl,knu)&
269  & + pclear(jl) *zdirf(jl)*palbp(jl,knu))&
270  & * rsun(knu)
271  pcu(jl,1) = zdirf(jl) * palbp(jl,knu) * rsun(knu)
272  ENDDO
273 
274  DO jk = 2 , klev+1
275  ikm1=jk-1
276  DO jl = kidia,kfdia
277  zw(jl,1)=zw(jl,1)+pud(jl,1,ikm1)*1.66_jprb
278  zw(jl,2)=zw(jl,2)+pud(jl,2,ikm1)*1.66_jprb
279  zw(jl,3)=zw(jl,3)+poz(jl, ikm1)*1.66_jprb
280  zw(jl,4)=zw(jl,4)+pud(jl,1,ikm1)*1.66_jprb
281  zw(jl,5)=zw(jl,5)+pud(jl,2,ikm1)*1.66_jprb
282  zw(jl,6)=zw(jl,6)+poz(jl, ikm1)*1.66_jprb
283  ENDDO
284 
285  CALL swtt1 ( kidia, kfdia, klon, knu, 6,&
286  & iind,&
287  & zw,&
288  & zr )
289 
290  DO jl = kidia,kfdia
291  zdiff(jl) = zr(jl,1)*zr(jl,2)*zr(jl,3)*zrk(jl,jaj,jk)
292  zdirf(jl) = zr(jl,4)*zr(jl,5)*zr(jl,6)*zrk0(jl,jaj,jk)
293  pfu(jl,jk) = ((1.0_jprb-pclear(jl)) * zdiff(jl)&
294  & +pclear(jl) * zdirf(jl)) * rsun(knu)
295  pcu(jl,jk) = zdirf(jl) * rsun(knu)
296  ENDDO
297 !WRITE(*,'("---> Dans SW1S:")')
298 !WRITE(*,'("PFU",10E12.5)') (PFU(1,JJ),JJ=1,KLEV+1)
299 !WRITE(*,'("PCLEAR",10E12.5)') (PCLEAR(1))
300 !WRITE(*,'("ZDIFF",10E12.5)') (ZDIFF(1))
301 !WRITE(*,'("ZDIRF",10E12.5)') (ZDIRF(1))
302 !WRITE(*,'("RSUN",10E12.5)') (RSUN(KNU))
303  ENDDO
304 
305 ELSEIF (nsw == 6) THEN
306 !print *,'... dans SW1S: NSW=',NSW
307 
308 !* 3.2 SIX SPECTRAL INTERVALS
309 ! ----------------------
310 
311  iind(1)=1
312  iind(2)=2
313  iind(3)=1
314  iind(4)=2
315 
316 !* 3.2,1 DOWNWARD FLUXES
317 ! ---------------
318 
319  jaj = 2
320 
321  DO jl = kidia,kfdia
322  zw(jl,1)=0.0_jprb
323  zw(jl,2)=0.0_jprb
324  zw(jl,3)=0.0_jprb
325  zw(jl,4)=0.0_jprb
326 
327  zo(jl,1)=0.0_jprb
328  zo(jl,2)=0.0_jprb
329  pfd(jl,klev+1)=((1.0_jprb-pclear(jl))*zrj(jl,jaj,klev+1)&
330  & + pclear(jl) *zrj0(jl,jaj,klev+1)) * rsun(knu)
331  pcd(jl,klev+1)= zrj0(jl,jaj,klev+1) * rsun(knu)
332  ENDDO
333  DO jk = 1 , klev
334  ikl = klev+1-jk
335  DO jl = kidia,kfdia
336  zw(jl,1)=zw(jl,1)+pud(jl,1,ikl)/zrmue(jl,ikl)
337  zw(jl,2)=zw(jl,2)+pud(jl,2,ikl)/zrmue(jl,ikl)
338  zw(jl,3)=zw(jl,3)+pud(jl,1,ikl)/zrmu0(jl,ikl)
339  zw(jl,4)=zw(jl,4)+pud(jl,2,ikl)/zrmu0(jl,ikl)
340 
341  zo(jl,1)=zo(jl,1)+poz(jl, ikl)/zrmue(jl,ikl)
342  zo(jl,2)=zo(jl,2)+poz(jl, ikl)/zrmu0(jl,ikl)
343  ENDDO
344 
345 ! WRITE(*,'("---> Dans SW1S avant SWTT1:")')
346  CALL swtt1 ( kidia, kfdia, klon, knu, 4,&
347  & iind,&
348  & zw,&
349  & zr &
350  & )
351 
352 ! WRITE(*,'("---> Dans SW1S avant SWUVO3 flux dwn:")')
353  CALL swuvo3 ( kidia, kfdia, klon, knu, 2,&
354  & zo,&
355  & zt &
356  & )
357 
358  DO jl = kidia,kfdia
359  zdiff(jl) = zr(jl,1)*zr(jl,2)*zt(jl,1)*zrj(jl,jaj,ikl)
360  zdirf(jl) = zr(jl,3)*zr(jl,4)*zt(jl,2)*zrj0(jl,jaj,ikl)
361  pdiff(jl,ikl) = zdiff(jl) * rsun(knu)*(1.0_jprb-pclear(jl))
362  pdirf(jl,ikl) = zdirf(jl) * rsun(knu)*pclear(jl)
363  pfd(jl,ikl) = ((1.0_jprb-pclear(jl)) * zdiff(jl)&
364  & +pclear(jl) * zdirf(jl)) * rsun(knu)
365  pcd(jl,ikl) = zdirf(jl) * rsun(knu)
366  ENDDO
367  ENDDO
368 
369  IF(lldebug) THEN
370  call writefield_phy('sw1s_pud1',pud(:,1,:),klev)
371  call writefield_phy('sw1s_pud2',pud(:,2,:),klev)
372  call writefield_phy('sw1s_psec',psec,1)
373  call writefield_phy('sw1s_zrmue',zrmue,klev+1)
374  call writefield_phy('sw1s_zrmu0',zrmu0,klev+1)
375  call writefield_phy('sw1s_pdirf',pdirf,klev)
376  call writefield_phy('sw1s_pdiff',pdiff,klev)
377  call writefield_phy('sw1s_pfd',pfd,klev)
378  ENDIF
379  DO jl=kidia,kfdia
380  zdift(jl) = zr(jl,1)*zr(jl,2)*zt(jl,1)*ztrcld(jl)
381  zdirt(jl) = zr(jl,3)*zr(jl,4)*zt(jl,2)*ztrclr(jl)
382  psudu1(jl) = ((1.0_jprb-pclear(jl)) * zdift(jl)&
383  & +pclear(jl) * zdirt(jl)) * rsun(knu)
384  ENDDO
385 
386 !* 3.2.2 UPWARD FLUXES
387 ! -------------
388 
389  DO jl = kidia,kfdia
390  pfu(jl,1) = ((1.0_jprb-pclear(jl))*zdiff(jl)*palbd(jl,knu)&
391  & + pclear(jl) *zdirf(jl)*palbp(jl,knu))&
392  & * rsun(knu)
393  pcu(jl,1) = zdirf(jl) * palbp(jl,knu) * rsun(knu)
394  ENDDO
395 
396  DO jk = 2 , klev+1
397  ikm1=jk-1
398  DO jl = kidia,kfdia
399  zw(jl,1)=zw(jl,1)+pud(jl,1,ikm1)*1.66_jprb
400  zw(jl,2)=zw(jl,2)+pud(jl,2,ikm1)*1.66_jprb
401  zw(jl,3)=zw(jl,3)+pud(jl,1,ikm1)*1.66_jprb
402  zw(jl,4)=zw(jl,4)+pud(jl,2,ikm1)*1.66_jprb
403 
404  zo(jl,1)=zo(jl,1)+poz(jl, ikm1)*1.66_jprb
405  zo(jl,2)=zo(jl,2)+poz(jl, ikm1)*1.66_jprb
406  ENDDO
407 
408 ! WRITE(*,'("---> Dans SW1S avant SWTT1:")')
409  CALL swtt1 ( kidia, kfdia, klon, knu, 4,&
410  & iind,&
411  & zw,&
412  & zr &
413  & )
414 
415 ! WRITE(*,'("---> Dans SW1S avant SWUVO3 flux up:")')
416  CALL swuvo3 ( kidia, kfdia, klon, knu, 2,&
417  & zo,&
418  & zt &
419  & )
420 
421  DO jl = kidia,kfdia
422  zdiff(jl) = zr(jl,1)*zr(jl,2)*zt(jl,1)*zrk(jl,jaj,jk)
423  zdirf(jl) = zr(jl,3)*zr(jl,4)*zt(jl,2)*zrk0(jl,jaj,jk)
424  pfu(jl,jk) = ((1.0_jprb-pclear(jl)) * zdiff(jl)&
425  & +pclear(jl) * zdirf(jl)) * rsun(knu)
426  pcu(jl,jk) = zdirf(jl) * rsun(knu)
427 !WRITE(*,'("---> Dans SW1S:")')
428 !print *,'===JL= ',jl
429 !WRITE(*,'("ZR1",10E12.5)') (ZR(JL,1))
430 !WRITE(*,'("ZR2",10E12.5)') (ZR(JL,2))
431 !WRITE(*,'("ZR3",10E12.5)') (ZR(JL,3))
432 !WRITE(*,'("ZR4",10E12.5)') (ZR(JL,4))
433 !WRITE(*,'("ZT1",10E12.5)') (ZT(JL,1))
434 !WRITE(*,'("ZT2",10E12.5)') (ZT(JL,2))
435  ENDDO
436  ENDDO
437 
438 !WRITE(*,'("---> Dans SW1S:")')
439 !WRITE(*,'("PFU",10E12.5)') (PFU(1,JJ),JJ=1,KLEV+1)
440 !WRITE(*,'("ZR",10E12.5)') (ZR(1,JJ),JJ=1,4)
441 !WRITE(*,'("PCLEAR",10E12.5)') (PCLEAR(1))
442 !WRITE(*,'("ZDIFF",10E12.5)') (ZDIFF(1))
443 !WRITE(*,'("ZDIRF",10E12.5)') (ZDIRF(1))
444 !WRITE(*,'("RSUN",10E12.5)') (RSUN(KNU))
445 ENDIF
446 
447 ! ------------------------------------------------------------------
448 
449 IF (lhook) CALL dr_hook('SW1S',1,zhook_handle)
450 END SUBROUTINE sw1s
subroutine swclr(KIDIA, KFDIA, KLON, KLEV, KAER, KNU, PAER, PALBP, PDSIG, PRAYL, PSEC, PCGAZ, PPIZAZ, PRAY1, PRAY2, PREFZ, PRJ, PRK, PRMU0, PTAUAZ, PTRA1, PTRA2, PTRCLR,
Definition: swclr.F90:7
Definition: yoesw.F90:1
integer, save kidia
Definition: dimphy.F90:6
integer, save klon
Definition: dimphy.F90:3
real(kind=jprb), dimension(:), allocatable rsun
Definition: yoesw.F90:16
integer, save klev
Definition: dimphy.F90:7
subroutine sw1s(KIDIA, KFDIA, KLON, KLEV, KAER, KNU, PAER, PALBD, PALBP, PCG, PCLD, PCLEAR, PDSIG, POMEGA, POZ, PRMU, PSEC, PTAU, PUD, PFD, PFU, PCD, PCU, PSUDU1, PDIFF, PDIRF,
Definition: sw1s.F90:7
!$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
subroutine swuvo3(KIDIA, KFDIA, KLON, KNU, KABS, PU, PTR)
Definition: swuvo3.F90:5
logical lhook
Definition: yomhook.F90:12
subroutine swtt1(KIDIA, KFDIA, KLON, KNU, KABS, KIND, PU, PTR)
Definition: swtt1.F90:2
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
subroutine writefield_phy(name, Field, ll)
integer, parameter jpim
Definition: parkind1.F90:13
real(kind=jprb), dimension(6, 6) rray
Definition: yoesw.F90:15
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer