1 | SUBROUTINE SRTM_SRTM_224GP_MCICA & |
---|
2 | & ( KIDIA , KFDIA , KLON , KLEV , KSW , KCOLS , KCLDLY ,& |
---|
3 | & PAER , PALBD , PALBP , PAPH , PAP , & |
---|
4 | & PTS , PTH , PT ,& |
---|
5 | & PQ , PCCO2 , POZN , PRMU0 ,& |
---|
6 | & PFRCL , PTAUC , PASYC , POMGC ,& |
---|
7 | & PFSUX , PFSUC & |
---|
8 | & ) |
---|
9 | |
---|
10 | !-- interface to RRTM_SW |
---|
11 | ! JJMorcrette 030225 |
---|
12 | ! JJMorcrette 20050110 McICA version |
---|
13 | |
---|
14 | USE PARKIND1 ,ONLY : JPIM ,JPRB |
---|
15 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK |
---|
16 | |
---|
17 | USE PARSRTM , ONLY : JPLAY |
---|
18 | !MPL/IM 20160915 on prend GES de phylmd USE YOERDI , ONLY : RCH4 , RN2O |
---|
19 | USE YOERAD , ONLY : NAER |
---|
20 | USE YOESRTAER, ONLY : RSRTAUA, RSRPIZA, RSRASYA |
---|
21 | USE YOMPHY3 , ONLY : RII0 |
---|
22 | USE YOMCST , ONLY : RI0 |
---|
23 | ! Temporary fix waiting for cleaner interface (or not) |
---|
24 | USE clesphys_mod_h, ONLY: NSW, rch4, rn2o |
---|
25 | |
---|
26 | IMPLICIT NONE |
---|
27 | |
---|
28 | !-- Input arguments |
---|
29 | |
---|
30 | INTEGER(KIND=JPIM),INTENT(IN) :: KLON |
---|
31 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV |
---|
32 | INTEGER(KIND=JPIM),INTENT(IN) :: KSW |
---|
33 | INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA |
---|
34 | INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA |
---|
35 | INTEGER(KIND=JPIM),INTENT(IN) :: KCOLS |
---|
36 | INTEGER(KIND=JPIM),INTENT(IN) :: KCLDLY(KCOLS) |
---|
37 | |
---|
38 | REAL(KIND=JPRB) ,INTENT(IN) :: PAER(KLON,6,KLEV) ! top to bottom |
---|
39 | REAL(KIND=JPRB) ,INTENT(IN) :: PALBD(KLON,KSW) |
---|
40 | REAL(KIND=JPRB) ,INTENT(IN) :: PALBP(KLON,KSW) |
---|
41 | REAL(KIND=JPRB) ,INTENT(IN) :: PAPH(KLON,KLEV+1) |
---|
42 | REAL(KIND=JPRB) ,INTENT(IN) :: PAP(KLON,KLEV) |
---|
43 | REAL(KIND=JPRB) ,INTENT(IN) :: PTS(KLON) |
---|
44 | REAL(KIND=JPRB) ,INTENT(IN) :: PTH(KLON,KLEV+1) |
---|
45 | REAL(KIND=JPRB) ,INTENT(IN) :: PT(KLON,KLEV) |
---|
46 | REAL(KIND=JPRB) ,INTENT(IN) :: PQ(KLON,KLEV) |
---|
47 | REAL(KIND=JPRB) ,INTENT(IN) :: PCCO2 |
---|
48 | REAL(KIND=JPRB) ,INTENT(IN) :: POZN(KLON,KLEV) |
---|
49 | REAL(KIND=JPRB) ,INTENT(IN) :: PRMU0(KLON) |
---|
50 | |
---|
51 | REAL(KIND=JPRB) ,INTENT(IN) :: PFRCL(KLON,KCOLS,KLEV) ! bottom to top |
---|
52 | REAL(KIND=JPRB) ,INTENT(IN) :: PTAUC(KLON,KCOLS,KLEV) ! bottom to top |
---|
53 | REAL(KIND=JPRB) ,INTENT(IN) :: PASYC(KLON,KCOLS,KLEV) ! bottom to top |
---|
54 | REAL(KIND=JPRB) ,INTENT(IN) :: POMGC(KLON,KCOLS,KLEV) ! bottom to top |
---|
55 | |
---|
56 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFSUX(KLON,2,KLEV+1) |
---|
57 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFSUC(KLON,2,KLEV+1) |
---|
58 | |
---|
59 | !-- Output arguments |
---|
60 | |
---|
61 | !----------------------------------------------------------------------- |
---|
62 | |
---|
63 | !-- dummy integers |
---|
64 | |
---|
65 | INTEGER(KIND=JPIM) :: ICLDATM, INFLAG, ICEFLAG, I_LIQFLAG, ITMOL, I_NSTR |
---|
66 | |
---|
67 | INTEGER(KIND=JPIM) :: IK, IMOL, J1, J2, JAE, JL, JK, JSW |
---|
68 | |
---|
69 | !-- dummy reals |
---|
70 | |
---|
71 | REAL(KIND=JPRB) :: ZPZ(0:JPLAY) , ZTZ(0:JPLAY) , ZPAVEL(JPLAY) , ZTAVEL(JPLAY) |
---|
72 | REAL(KIND=JPRB) :: ZCOLDRY(JPLAY) , ZCOLMOL(JPLAY) , ZWKL(35,JPLAY) |
---|
73 | REAL(KIND=JPRB) :: ZCO2MULT(JPLAY), ZCOLCH4(JPLAY) , ZCOLCO2(JPLAY) , ZCOLH2O(JPLAY) |
---|
74 | REAL(KIND=JPRB) :: ZCOLN2O(JPLAY) , ZCOLO2(JPLAY) , ZCOLO3(JPLAY) |
---|
75 | REAL(KIND=JPRB) :: ZFORFAC(JPLAY) , ZFORFRAC(JPLAY), ZSELFFAC(JPLAY), ZSELFFRAC(JPLAY) |
---|
76 | REAL(KIND=JPRB) :: ZFAC00(JPLAY) , ZFAC01(JPLAY) , ZFAC10(JPLAY) , ZFAC11(JPLAY) |
---|
77 | REAL(KIND=JPRB) :: ZTBOUND , ZONEMINUS , ZRMU0 , ZADJI0 |
---|
78 | REAL(KIND=JPRB) :: ZALBD(KSW) , ZALBP(KSW) |
---|
79 | |
---|
80 | REAL(KIND=JPRB) :: ZFRCL(KCOLS,JPLAY), ZTAUC(JPLAY,KCOLS), ZASYC(JPLAY,KCOLS), ZOMGC(JPLAY,KCOLS) |
---|
81 | REAL(KIND=JPRB) :: ZTAUA(JPLAY,KSW), ZASYA(JPLAY,KSW), ZOMGA(JPLAY,KSW) |
---|
82 | |
---|
83 | REAL(KIND=JPRB) :: ZBBCD(JPLAY+1), ZBBCU(JPLAY+1), ZBBFD(JPLAY+1), ZBBFU(JPLAY+1) |
---|
84 | !REAL(KIND=JPRB) :: ZUVCD(JPLAY+1), ZUVCU(JPLAY+1), ZUVFD(JPLAY+1), ZUVFU(JPLAY+1) |
---|
85 | !REAL(KIND=JPRB) :: ZVSCD(JPLAY+1), ZVSCU(JPLAY+1), ZVSFD(JPLAY+1), ZVSFU(JPLAY+1) |
---|
86 | !REAL(KIND=JPRB) :: ZNICD(JPLAY+1), ZNICU(JPLAY+1), ZNIFD(JPLAY+1), ZNIFU(JPLAY+1) |
---|
87 | |
---|
88 | INTEGER(KIND=JPIM) :: ILAYTROP, ILAYSWTCH, ILAYLOW |
---|
89 | INTEGER(KIND=JPIM) :: INDFOR(JPLAY), INDSELF(JPLAY) |
---|
90 | INTEGER(KIND=JPIM) :: JP(JPLAY), JT(JPLAY), JT1(JPLAY) |
---|
91 | |
---|
92 | REAL(KIND=JPRB) :: ZAMD ! Effective molecular weight of dry air (g/mol) |
---|
93 | REAL(KIND=JPRB) :: ZAMW ! Molecular weight of water vapor (g/mol) |
---|
94 | REAL(KIND=JPRB) :: ZAMCO2 ! Molecular weight of carbon dioxide (g/mol) |
---|
95 | REAL(KIND=JPRB) :: ZAMO ! Molecular weight of ozone (g/mol) |
---|
96 | REAL(KIND=JPRB) :: ZAMCH4 ! Molecular weight of methane (g/mol) |
---|
97 | REAL(KIND=JPRB) :: ZAMN2O ! Molecular weight of nitrous oxide (g/mol) |
---|
98 | REAL(KIND=JPRB) :: ZAMC11 ! Molecular weight of CFC11 (g/mol) - CFCL3 |
---|
99 | REAL(KIND=JPRB) :: ZAMC12 ! Molecular weight of CFC12 (g/mol) - CF2CL2 |
---|
100 | REAL(KIND=JPRB) :: ZAVGDRO ! Avogadro's number (molecules/mole) |
---|
101 | REAL(KIND=JPRB) :: ZGRAVIT ! Gravitational acceleration (cm/sec2) |
---|
102 | REAL(KIND=JPRB) :: ZAMM |
---|
103 | |
---|
104 | REAL(KIND=JPRB) :: RAMW ! Molecular weight of water vapor (g/mol) |
---|
105 | REAL(KIND=JPRB) :: RAMCO2 ! Molecular weight of carbon dioxide (g/mol) |
---|
106 | REAL(KIND=JPRB) :: RAMO ! Molecular weight of ozone (g/mol) |
---|
107 | REAL(KIND=JPRB) :: RAMCH4 ! Molecular weight of methane (g/mol) |
---|
108 | REAL(KIND=JPRB) :: RAMN2O ! Molecular weight of nitrous oxide (g/mol) |
---|
109 | |
---|
110 | ! Atomic weights for conversion from mass to volume mixing ratios; these |
---|
111 | ! are the same values used in ECRT to assure accurate conversion to vmr |
---|
112 | data ZAMD / 28.970_JPRB / |
---|
113 | data ZAMW / 18.0154_JPRB / |
---|
114 | data ZAMCO2 / 44.011_JPRB / |
---|
115 | data ZAMO / 47.9982_JPRB / |
---|
116 | data ZAMCH4 / 16.043_JPRB / |
---|
117 | data ZAMN2O / 44.013_JPRB / |
---|
118 | data ZAMC11 / 137.3686_JPRB / |
---|
119 | data ZAMC12 / 120.9140_JPRB / |
---|
120 | data ZAVGDRO/ 6.02214E23_JPRB / |
---|
121 | data ZGRAVIT/ 9.80665E02_JPRB / |
---|
122 | data RAMW / 0.05550_JPRB / |
---|
123 | data RAMCO2 / 0.02272_JPRB / |
---|
124 | data RAMO / 0.02083_JPRB / |
---|
125 | data RAMCH4 / 0.06233_JPRB / |
---|
126 | data RAMN2O / 0.02272_JPRB / |
---|
127 | |
---|
128 | |
---|
129 | REAL(KIND=JPRB) :: ZCLEAR, ZCLOUD, ZEPSEC, ZTOTCC |
---|
130 | |
---|
131 | INTEGER(KIND=JPIM) :: IOVLP |
---|
132 | REAL(KIND=JPRB) :: ZHOOK_HANDLE |
---|
133 | |
---|
134 | |
---|
135 | #include "srtm_setcoef.intfb.h" |
---|
136 | #include "srtm_spcvrt_mcica.intfb.h" |
---|
137 | !MPL/IM 20160915 on prend GES de phylmd |
---|
138 | !!#include "clesphys.h" |
---|
139 | |
---|
140 | !----------------------------------------------------------------------- |
---|
141 | !-- calculate information needed ny the radiative transfer routine |
---|
142 | |
---|
143 | IF (LHOOK) CALL DR_HOOK('SRTM_SRTM_224GP_MCICA',0,ZHOOK_HANDLE) |
---|
144 | ZEPSEC = 1.E-06_JPRB |
---|
145 | ZONEMINUS=1.0_JPRB - ZEPSEC |
---|
146 | ZADJI0 = RII0 / RI0 |
---|
147 | !-- overlap: 1=max-ran, 2=maximum, 3=random |
---|
148 | IOVLP=3 |
---|
149 | |
---|
150 | !print *,'Entering srtm_srtm_224gp_mcica' |
---|
151 | |
---|
152 | ICLDATM = 1 |
---|
153 | INFLAG = 2 |
---|
154 | ICEFLAG = 3 |
---|
155 | I_LIQFLAG= 1 |
---|
156 | ITMOL = 6 |
---|
157 | I_NSTR = 2 |
---|
158 | |
---|
159 | DO JL = KIDIA, KFDIA |
---|
160 | ZRMU0=PRMU0(JL) |
---|
161 | IF (ZRMU0 > 0.0_JPRB) THEN |
---|
162 | |
---|
163 | !- coefficients related to the cloud optical properties (original RRTM_SW) |
---|
164 | |
---|
165 | ! print *,'just before SRTM_CLDPROP' |
---|
166 | |
---|
167 | ! DO JK=1,KLEV |
---|
168 | ! CLDFRAC(JK) = PFRCL (JL,JK) |
---|
169 | ! CLDDAT1(JK) = PSCLA1(JL,JK) |
---|
170 | ! CLDDAT2(JK) = PSCLA2(JL,JK) |
---|
171 | ! CLDDAT3(JK) = PSCLA3(JL,JK) |
---|
172 | ! CLDDAT4(JK) = PSCLA4(JL,JK) |
---|
173 | ! DO JMOM=0,16 |
---|
174 | ! CLDDATMOM(JMOM,JK)=PSCLMOM(JL,JMOM,JK) |
---|
175 | ! ENDDO |
---|
176 | ! print 9101,JK,CLDFRAC(JK),CLDDAT1(JK),CLDDAT2(JK),CLDDAT3(JK)& |
---|
177 | ! &,CLDDAT4(JK),(CLDDATMOM(JMOM,JK),JMOM=0,NSTR) |
---|
178 | 9101 format(1x,'srtm_srtm_224gp Cld :',I3,f7.4,7E12.5) |
---|
179 | ! ENDDO |
---|
180 | |
---|
181 | ! CALL SRTM_CLDPROP & |
---|
182 | ! &( KLEV, ICLDATM, INFLAG, ICEFLAG, LIQFLAG, NSTR & |
---|
183 | ! &, CLDFRAC, CLDDAT1, CLDDAT2, CLDDAT3, CLDDAT4, CLDDATMOM & |
---|
184 | ! &, TAUCLDORIG, TAUCLOUD, SSACLOUD, XMOM & |
---|
185 | ! &) |
---|
186 | |
---|
187 | !- coefficients for the temperature and pressure dependence of the |
---|
188 | ! molecular absorption coefficients |
---|
189 | |
---|
190 | DO J1=1,35 |
---|
191 | DO J2=1,KLEV |
---|
192 | ZWKL(J1,J2)=0.0_JPRB |
---|
193 | ENDDO |
---|
194 | ENDDO |
---|
195 | |
---|
196 | ZTBOUND=PTS(JL) |
---|
197 | ZPZ(0) = paph(JL,klev+1)*0.01_JPRB |
---|
198 | ZTZ(0) = pth (JL,klev+1) |
---|
199 | |
---|
200 | ZCLEAR=1.0_JPRB |
---|
201 | ZCLOUD=0.0_JPRB |
---|
202 | ZTOTCC=0.0_JPRB |
---|
203 | DO JK = 1, KLEV |
---|
204 | ZPAVEL(JK) = pap(JL,KLEV-JK+1) *0.01_JPRB |
---|
205 | ZTAVEL(JK) = pt (JL,KLEV-JK+1) |
---|
206 | ZPZ(JK) = paph(JL,KLEV-JK+1) *0.01_JPRB |
---|
207 | ZTZ(JK) = pth (JL,KLEV-JK+1) |
---|
208 | ZWKL(1,JK) = pq(JL,KLEV-JK+1) *ZAMD*RAMW |
---|
209 | ZWKL(2,JK) = pcco2 *ZAMD*RAMCO2 |
---|
210 | ZWKL(3,JK) = pozn(JL,KLEV-JK+1)*ZAMD*RAMO |
---|
211 | ZWKL(4,JK) = rn2o *ZAMD*RAMN2O |
---|
212 | ZWKL(6,JK) = rch4 *ZAMD*RAMCH4 |
---|
213 | ZAMM = (1-ZWKL(1,JK))*ZAMD + ZWKL(1,JK)*ZAMW |
---|
214 | ZCOLDRY(JK) = (ZPZ(JK-1)-ZPZ(JK))*1.E3_JPRB*ZAVGDRO/(ZGRAVIT*ZAMM*(1+ZWKL(1,JK))) |
---|
215 | ! print 9200,JK,PAVEL(JK),TAVEL(JK),(WKL(JA,JK),JA=1,4),WKL(6,JK),COLDRY(JK) |
---|
216 | 9200 format(1x,'SRTM ',I3,2F7.1,6E13.5) |
---|
217 | |
---|
218 | |
---|
219 | |
---|
220 | ENDDO |
---|
221 | |
---|
222 | ! print *,'ZTOTCC ZCLEAR : ',ZTOTCC,' ',ZCLEAR |
---|
223 | |
---|
224 | DO IMOL=1,ITMOL |
---|
225 | DO JK=1,KLEV |
---|
226 | ZWKL(IMOL,JK)=ZCOLDRY(JK)* ZWKL(IMOL,JK) |
---|
227 | ENDDO |
---|
228 | ENDDO |
---|
229 | |
---|
230 | ! print *,'just before SRTM_SETCOEF' |
---|
231 | |
---|
232 | CALL SRTM_SETCOEF & |
---|
233 | & ( KLEV , ITMOL,& |
---|
234 | & ZPAVEL , ZTAVEL , ZPZ , ZTZ , ZTBOUND,& |
---|
235 | & ZCOLDRY , ZWKL,& |
---|
236 | & ILAYTROP, ILAYSWTCH, ILAYLOW,& |
---|
237 | & ZCO2MULT, ZCOLCH4 , ZCOLCO2 , ZCOLH2O , ZCOLMOL , ZCOLN2O , ZCOLO2 , ZCOLO3,& |
---|
238 | & ZFORFAC , ZFORFRAC , INDFOR , ZSELFFAC, ZSELFFRAC, INDSELF, & |
---|
239 | & ZFAC00 , ZFAC01 , ZFAC10 , ZFAC11,& |
---|
240 | & JP , JT , JT1 & |
---|
241 | & ) |
---|
242 | |
---|
243 | ! print *,'just after SRTM_SETCOEF' |
---|
244 | |
---|
245 | !- call the radiation transfer routine |
---|
246 | |
---|
247 | DO JSW=1,KSW |
---|
248 | ZALBD(JSW)=PALBD(JL,JSW) |
---|
249 | ZALBP(JSW)=PALBP(JL,JSW) |
---|
250 | ENDDO |
---|
251 | |
---|
252 | DO JSW=1,KCOLS |
---|
253 | DO JK=1,KLEV |
---|
254 | ZFRCL(JSW,JK) = PFRCL(JL,JSW,JK) |
---|
255 | ZTAUC(JK,JSW) = PTAUC(JL,JSW,JK) |
---|
256 | ZASYC(JK,JSW) = PASYC(JL,JSW,JK) |
---|
257 | ZOMGC(JK,JSW) = POMGC(JL,JSW,JK) |
---|
258 | |
---|
259 | !---- security: might have to be moved upstream to radlswr ------- |
---|
260 | ! IF(ZTAUC(JK,JSW) == 0._JPRB) ZFRCL(JSW,JK) = 0._JPRB |
---|
261 | !----------------------------------------------------------------- |
---|
262 | |
---|
263 | |
---|
264 | ! IF (ZFRCL(JSW,JK) /= 0._JPRB) THEN |
---|
265 | ! print 9002,JSW,JK,ZFRCL(JSW,JK),ZTAUC(JK,JSW),ZASYC(JK,JSW),ZOMGC(JK,JSW) |
---|
266 | 9002 format(1x,'srtm_224gp_McICA ClOPropECmodel ',2I3,f8.4,3E12.5) |
---|
267 | ! ENDIF |
---|
268 | ENDDO |
---|
269 | ENDDO |
---|
270 | |
---|
271 | !- mixing of aerosols |
---|
272 | |
---|
273 | ! print *,'Aerosol optical properties computations' |
---|
274 | ! DO JSW=1,KSW |
---|
275 | ! print 9012,JSW,(JAE,RSRTAUA(JSW,JAE),RSRPIZA(JSW,JAE),RSRASYA(JSW,JAE),JAE=1,6) |
---|
276 | 9012 format(I3,(/,I3,3E13.5)) |
---|
277 | ! ENDDO |
---|
278 | |
---|
279 | ! DO JK=1,KLEV |
---|
280 | ! print 9013,JK,(PAER(JL,JAE,JK),JAE=1,6) |
---|
281 | 9013 format(1x,I3,6E12.5) |
---|
282 | ! ENDDO |
---|
283 | |
---|
284 | IF (NAER == 0) THEN |
---|
285 | DO JSW=1,KSW |
---|
286 | DO JK=1,KLEV |
---|
287 | ZTAUA(JK,JSW)= 0.0_JPRB |
---|
288 | ZASYA(JK,JSW)= 0.0_JPRB |
---|
289 | ZOMGA(JK,JSW)= 1.0_JPRB |
---|
290 | ENDDO |
---|
291 | ENDDO |
---|
292 | ELSE |
---|
293 | DO JSW=1,KSW |
---|
294 | DO JK=1,KLEV |
---|
295 | IK=KLEV+1-JK |
---|
296 | ZTAUA(JK,JSW)=0.0_JPRB |
---|
297 | ZASYA(JK,JSW)=0.0_JPRB |
---|
298 | ZOMGA(JK,JSW)=0.0_JPRB |
---|
299 | DO JAE=1,6 |
---|
300 | ZTAUA(JK,JSW)=ZTAUA(JK,JSW)+RSRTAUA(JSW,JAE)*PAER(JL,JAE,IK) |
---|
301 | ZOMGA(JK,JSW)=ZOMGA(JK,JSW)+RSRTAUA(JSW,JAE)*PAER(JL,JAE,IK) & |
---|
302 | & *RSRPIZA(JSW,JAE) |
---|
303 | ZASYA(JK,JSW)=ZASYA(JK,JSW)+RSRTAUA(JSW,JAE)*PAER(JL,JAE,IK) & |
---|
304 | & *RSRPIZA(JSW,JAE)*RSRASYA(JSW,JAE) |
---|
305 | ENDDO |
---|
306 | IF (ZOMGA(JK,JSW) /= 0.0_JPRB) THEN |
---|
307 | ZASYA(JK,JSW)=ZASYA(JK,JSW)/ZOMGA(JK,JSW) |
---|
308 | ENDIF |
---|
309 | IF (ZTAUA(JK,JSW) /= 0.0_JPRB) THEN |
---|
310 | ZOMGA(JK,JSW)=ZOMGA(JK,JSW)/ZTAUA(JK,JSW) |
---|
311 | ENDIF |
---|
312 | ! print 9003,JSW,JK,ZTAUA(JK,JSW),ZOMGA(JK,JSW),ZASYA(JK,JSW) |
---|
313 | 9003 format(1x,'Aerosols ',2I3,3F10.4) |
---|
314 | ENDDO |
---|
315 | ENDDO |
---|
316 | ENDIF |
---|
317 | |
---|
318 | DO JK=1,KLEV+1 |
---|
319 | ZBBCU(JK)=0.0_JPRB |
---|
320 | ZBBCD(JK)=0.0_JPRB |
---|
321 | ZBBFU(JK)=0.0_JPRB |
---|
322 | ZBBFD(JK)=0.0_JPRB |
---|
323 | ! ZUVCU(JK)=0.0_JPRB |
---|
324 | ! ZUVCD(JK)=0.0_JPRB |
---|
325 | ! ZUVFU(JK)=0.0_JPRB |
---|
326 | ! ZUVFD(JK)=0.0_JPRB |
---|
327 | ! ZVSCU(JK)=0.0_JPRB |
---|
328 | ! ZVSCD(JK)=0.0_JPRB |
---|
329 | ! ZVSFU(JK)=0.0_JPRB |
---|
330 | ! ZVSFD(JK)=0.0_JPRB |
---|
331 | ! ZNICU(JK)=0.0_JPRB |
---|
332 | ! ZNICD(JK)=0.0_JPRB |
---|
333 | ! ZNIFU(JK)=0.0_JPRB |
---|
334 | ! ZNIFD(JK)=0.0_JPRB |
---|
335 | ENDDO |
---|
336 | |
---|
337 | ! print *,'just before calling STRM_SPCVRT for JL=',JL,' and ZRMU0=',ZRMU0 |
---|
338 | |
---|
339 | CALL SRTM_SPCVRT_MCICA & |
---|
340 | &( KLEV , ITMOL , KSW , KCOLS , ZONEMINUS,& |
---|
341 | & ZPAVEL , ZTAVEL , ZPZ , ZTZ , ZTBOUND , ZALBD , ZALBP,& |
---|
342 | & ZFRCL , ZTAUC , ZASYC , ZOMGC , ZTAUA , ZASYA , ZOMGA , ZRMU0,& |
---|
343 | & ZCOLDRY , ZWKL ,& |
---|
344 | & ILAYTROP, ILAYSWTCH, ILAYLOW,& |
---|
345 | & ZCO2MULT, ZCOLCH4 , ZCOLCO2, ZCOLH2O , ZCOLMOL , ZCOLN2O, ZCOLO2 , ZCOLO3,& |
---|
346 | & ZFORFAC , ZFORFRAC , INDFOR , ZSELFFAC, ZSELFFRAC, INDSELF,& |
---|
347 | & ZFAC00 , ZFAC01 , ZFAC10 , ZFAC11 ,& |
---|
348 | & JP , JT , JT1 ,& |
---|
349 | & ZBBFD , ZBBFU , ZBBCD , ZBBCU ) |
---|
350 | |
---|
351 | ! & ZBBFD , ZBBFU , ZUVFD , ZUVFU , ZVSFD , ZVSFU , ZNIFD , ZNIFU,& |
---|
352 | ! & ZBBCD , ZBBCU , ZUVCD , ZUVCU , ZVSCD , ZVSCU , ZNICD , ZNICU & |
---|
353 | ! & ) |
---|
354 | |
---|
355 | ! print *,'SRTM_SRTM_224GP before potential scaling' |
---|
356 | ! IF (IOVLP == 3) THEN |
---|
357 | ! DO JK=1,KLEV+1 |
---|
358 | !! print 9004,JK,ZBBCU(JK),ZBBCD(JK),ZBBFU(JK),ZBBFD(JK) |
---|
359 | 9004 format(1x,'Clear-sky and total fluxes U & D ',I3,4F10.3) |
---|
360 | ! PFSUC(JL,1,JK)=ZBBCU(JK) |
---|
361 | ! PFSUC(JL,2,JK)=ZBBCD(JK) |
---|
362 | ! PFSUX(JL,1,JK)=ZBBFU(JK) |
---|
363 | ! PFSUX(JL,2,JK)=ZBBFD(JK) |
---|
364 | ! ENDDO |
---|
365 | ! ELSE |
---|
366 | ! print *,'SRTM_SRTM_224GP after potential scaling' |
---|
367 | DO JK=1,KLEV+1 |
---|
368 | PFSUC(JL,1,JK)=ZADJI0 * ZBBCU(JK) |
---|
369 | PFSUC(JL,2,JK)=ZADJI0 * ZBBCD(JK) |
---|
370 | PFSUX(JL,1,JK)=ZADJI0 * ( (1.0_JPRB-ZCLEAR)*ZBBFU(JK)+ZCLEAR*ZBBCU(JK) ) |
---|
371 | PFSUX(JL,2,JK)=ZADJI0 * ( (1.0_JPRB-ZCLEAR)*ZBBFD(JK)+ZCLEAR*ZBBCD(JK) ) |
---|
372 | !-- for testing only |
---|
373 | PFSUC(JL,1,JK)=ZADJI0 * ZBBCU(JK) |
---|
374 | PFSUC(JL,2,JK)=ZADJI0 * ZBBCD(JK) |
---|
375 | PFSUX(JL,1,JK)=ZADJI0 * ZBBFU(JK) |
---|
376 | PFSUX(JL,2,JK)=ZADJI0 * ZBBFD(JK) |
---|
377 | ENDDO |
---|
378 | ! ENDIF |
---|
379 | |
---|
380 | ! DO JK=1,KLEV+1 |
---|
381 | ! print 9005,JK,PFSUC(JL,1,JK),PFSUC(JL,2,JK),PFSUX(JL,1,JK),PFSUX(JL,2,JK) |
---|
382 | 9005 format(1x,'Clear-sky and total fluxes U & D ',I3,4F10.3) |
---|
383 | ! ENDDO |
---|
384 | |
---|
385 | ELSE |
---|
386 | DO JK=1,KLEV+1 |
---|
387 | PFSUC(JL,1,JK)=0.0_JPRB |
---|
388 | PFSUC(JL,2,JK)=0.0_JPRB |
---|
389 | PFSUX(JL,1,JK)=0.0_JPRB |
---|
390 | PFSUX(JL,2,JK)=0.0_JPRB |
---|
391 | ENDDO |
---|
392 | ENDIF |
---|
393 | ENDDO |
---|
394 | |
---|
395 | !PRINT *,'OUT OF SRTM_224GP_MCICA' |
---|
396 | |
---|
397 | !----------------------------------------------------------------------- |
---|
398 | IF (LHOOK) CALL DR_HOOK('SRTM_SRTM_224GP_MCICA',1,ZHOOK_HANDLE) |
---|
399 | END SUBROUTINE SRTM_SRTM_224GP_MCICA |
---|