9 & pfrcl , ptauc , pasyc , pomgc ,&
10 & palbt , pfsux , pfsuc &
34 INTEGER(KIND=JPIM),
INTENT(IN) :: KLON
35 INTEGER(KIND=JPIM) :: KLEV
36 INTEGER(KIND=JPIM) :: KSW
37 INTEGER(KIND=JPIM),
INTENT(IN) :: KIDIA
38 INTEGER(KIND=JPIM),
INTENT(IN) :: KFDIA
39 INTEGER(KIND=JPIM),
INTENT(IN) :: KOVLP
40 REAL(KIND=JPRB) ,
INTENT(IN) :: PAER(klon,6,klev)
41 REAL(KIND=JPRB) ,
INTENT(IN) :: PALBD(klon,ksw)
42 REAL(KIND=JPRB) ,
INTENT(IN) :: PALBP(klon,ksw)
43 REAL(KIND=JPRB) ,
INTENT(IN) :: PAPH(klon,klev+1)
44 REAL(KIND=JPRB) ,
INTENT(IN) :: PAP(klon,klev)
45 REAL(KIND=JPRB) ,
INTENT(IN) :: PTS(klon)
46 REAL(KIND=JPRB) ,
INTENT(IN) :: PTH(klon,klev+1)
47 REAL(KIND=JPRB) ,
INTENT(IN) :: PT(klon,klev)
48 REAL(KIND=JPRB) ,
INTENT(IN) :: PQ(klon,klev)
49 REAL(KIND=JPRB) ,
INTENT(IN) :: PCCO2
50 REAL(KIND=JPRB) ,
INTENT(IN) :: POZN(klon,klev)
51 REAL(KIND=JPRB) ,
INTENT(IN) :: PRMU0(klon)
52 REAL(KIND=JPRB) ,
INTENT(IN) :: PFRCL(klon,klev)
53 REAL(KIND=JPRB) ,
INTENT(IN) :: PTAUC(klon,ksw,klev)
54 REAL(KIND=JPRB) ,
INTENT(IN) :: PASYC(klon,ksw,klev)
55 REAL(KIND=JPRB) ,
INTENT(IN) :: POMGC(klon,ksw,klev)
56 REAL(KIND=JPRB) :: PALBT(klon,ksw)
57 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFSUX(klon,2,klev+1)
58 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFSUC(klon,2,klev+1)
67 INTEGER(KIND=JPIM) :: ICLDATM, INFLAG, ICEFLAG, I_LIQFLAG, I_NMOL, I_NSTR
69 INTEGER(KIND=JPIM) :: IK, IMOL, J1, J2, JAE, JL, JK, JSW
79 REAL(KIND=JPRB) :: Z_TBOUND , Z_ONEMINUS , ZRMU0 , ZADJI0
80 REAL(KIND=JPRB) :: ZALBD(ksw) , ZALBP(ksw) , ZFRCL(
jplay)
89 INTEGER(KIND=JPIM) :: I_LAYTROP, I_LAYSWTCH, I_LAYLOW
90 INTEGER(KIND=JPIM) :: INDFOR(
jplay), INDSELF(
jplay)
93 REAL(KIND=JPRB) :: Z_AMD
94 REAL(KIND=JPRB) :: Z_AMW
95 REAL(KIND=JPRB) :: Z_AMCO2
96 REAL(KIND=JPRB) :: Z_AMO
97 REAL(KIND=JPRB) :: Z_AMCH4
98 REAL(KIND=JPRB) :: Z_AMN2O
99 REAL(KIND=JPRB) :: Z_AMC11
100 REAL(KIND=JPRB) :: Z_AMC12
101 REAL(KIND=JPRB) :: Z_AVGDRO
102 REAL(KIND=JPRB) :: Z_GRAVIT
103 REAL(KIND=JPRB) :: Z_AMM
107 data z_amd / 28.970_jprb /
108 data z_amw / 18.0154_jprb /
109 data z_amco2 / 44.011_jprb /
110 data z_amo / 47.9982_jprb /
111 data z_amch4 / 16.043_jprb /
112 data z_amn2o / 44.013_jprb /
113 data z_amc11 / 137.3686_jprb /
114 data z_amc12 / 120.9140_jprb /
115 data z_avgdro/ 6.02214e23_jprb /
116 data z_gravit/ 9.80665e02_jprb /
118 REAL(KIND=JPRB) :: ZCLEAR, ZCLOUD, ZEPSEC, ZTOTCC
120 INTEGER(KIND=JPIM) :: IOVLP
121 REAL(KIND=JPRB) :: ZHOOK_HANDLE
124 #include "srtm_setcoef.intfb.h"
125 #include "srtm_spcvrt.intfb.h"
131 IF (
lhook)
CALL dr_hook(
'SRTM_SRTM_224GP',0,zhook_handle)
133 z_oneminus=1.0_jprb - zepsec
149 IF (zrmu0 > 0.0_jprb)
THEN
166 9101
format(1
x,
'srtm_srtm_224gp Cld :',i3,f7.4,7e12.5)
180 z_wkl(j1,j2)=0.0_jprb
185 z_pz(0) = paph(jl,klev+1)/100._jprb
186 z_tz(0) = pth(jl,klev+1)
192 z_pavel(jk) = pap(jl,klev-jk+1) /100._jprb
193 z_tavel(jk) = pt(jl,klev-jk+1)
194 z_pz(jk) = paph(jl,klev-jk+1)/100._jprb
195 z_tz(jk) = pth(jl,klev-jk+1)
196 z_wkl(1,jk) = pq(jl,klev-jk+1) *z_amd/z_amw
197 z_wkl(2,jk) = pcco2 *z_amd/z_amco2
198 z_wkl(3,jk) = pozn(jl,klev-jk+1)*z_amd/z_amo
199 z_wkl(4,jk) = rn2o *z_amd/z_amn2o
200 z_wkl(6,jk) = rch4 *z_amd/z_amch4
201 z_amm = (1-z_wkl(1,jk))*z_amd + z_wkl(1,jk)*z_amw
202 z_coldry(jk) = (z_pz(jk-1)-z_pz(jk))*1.e3_jprb*z_avgdro/(z_gravit*z_amm*(1+z_wkl(1,jk)))
204 9200
format(1
x,
'SRTM ',i3,2f7.1,6e13.5)
207 zclear=zclear*(1.0_jprb-max(pfrcl(jl,jk),zcloud)) &
208 & /(1.0_jprb-min(zcloud,1.0_jprb-zepsec))
210 ztotcc=1.0_jprb-zclear
211 ELSEIF (kovlp == 2)
THEN
212 zcloud=max(zcloud,pfrcl(jl,jk))
213 zclear=1.0_jprb-zcloud
215 ELSEIF (kovlp == 3)
THEN
216 zclear=zclear*(1.0_jprb-pfrcl(jl,jk))
217 zcloud=1.0_jprb-zclear
227 z_wkl(imol,jk)=z_coldry(jk)* z_wkl(imol,jk)
243 zfrcl(1:klev)=pfrcl(jl,1:klev)
249 & z_pavel , z_tavel , z_pz , z_tz , z_tbound,&
251 & i_laytrop, i_layswtch, i_laylow,&
252 & z_co2mult, z_colch4 , z_colco2 , z_colh2o , z_colmol , z_coln2o , z_colo2 , z_colo3,&
253 & z_forfac , z_forfrac , indfor , z_selffac, z_selffrac, indself,&
254 & z_fac00 , z_fac01 , z_fac10 , z_fac11,&
263 zalbd(jsw)=palbd(jl,jsw)
264 zalbp(jsw)=palbp(jl,jsw)
266 ztauc(jk,jsw) = ptauc(jl,jsw,jk)
267 zasyc(jk,jsw) = pasyc(jl,jsw,jk)
268 zomgc(jk,jsw) = pomgc(jl,jsw,jk)
270 9002
format(1
x,
'srtm_224gp ClOPropECmodel ',2i3,f8.4,3e12.5)
279 9012
format(i3,(/,i3,3e13.5))
284 9013
format(1
x,i3,6e12.5)
290 ztaua(jk,jsw)= 0.0_jprb
291 zasya(jk,jsw)= 0.0_jprb
292 zomga(jk,jsw)= 1.0_jprb
299 ztaua(jk,jsw)=0.0_jprb
300 zasya(jk,jsw)=0.0_jprb
301 zomga(jk,jsw)=0.0_jprb
303 ztaua(jk,jsw)=ztaua(jk,jsw)+
rsrtaua(jsw,jae)*paer(jl,jae,ik)
304 zomga(jk,jsw)=zomga(jk,jsw)+
rsrtaua(jsw,jae)*paer(jl,jae,ik) &
306 zasya(jk,jsw)=zasya(jk,jsw)+
rsrtaua(jsw,jae)*paer(jl,jae,ik) &
309 IF (zomga(jk,jsw) /= 0.0_jprb)
THEN
310 zasya(jk,jsw)=zasya(jk,jsw)/zomga(jk,jsw)
312 IF (ztaua(jk,jsw) /= 0.0_jprb)
THEN
313 zomga(jk,jsw)=zomga(jk,jsw)/ztaua(jk,jsw)
316 9003
format(1
x,
'Aerosols ',2i3,3f10.4)
343 & ( klev , i_nmol , ksw , z_oneminus,&
344 & z_pavel , z_tavel , z_pz , z_tz , z_tbound , zalbd , zalbp,&
345 & zfrcl , ztauc , zasyc , zomgc , ztaua , zasya , zomga , zrmu0,&
347 & i_laytrop, i_layswtch, i_laylow,&
348 & z_co2mult, z_colch4 , z_colco2 , z_colh2o , z_colmol , z_coln2o , z_colo2 , z_colo3,&
349 & z_forfac , z_forfrac , indfor , z_selffac, z_selffrac, indself,&
350 & z_fac00 , z_fac01 , z_fac10 , z_fac11,&
352 & zbbfd , zbbfu , zuvfd , zuvfu , zvsfd , zvsfu , znifd , znifu,&
353 & zbbcd , zbbcu , zuvcd , zuvcu , zvscd , zvscu , znicd , znicu &
360 9004
format(1
x,
'Clear-sky and total fluxes U & D ',i3,4f10.3)
369 pfsuc(jl,1,jk)=zadji0 * zbbcu(jk)
370 pfsuc(jl,2,jk)=zadji0 * zbbcd(jk)
371 pfsux(jl,1,jk)=zadji0 * ( (1.0_jprb-zclear)*zbbfu(jk)+zclear*zbbcu(jk) )
372 pfsux(jl,2,jk)=zadji0 * ( (1.0_jprb-zclear)*zbbfd(jk)+zclear*zbbcd(jk) )
378 9005
format(1
x,
'Clear-sky and total fluxes U & D ',i3,4f10.3)
383 pfsuc(jl,1,jk)=0.0_jprb
384 pfsuc(jl,2,jk)=0.0_jprb
385 pfsux(jl,1,jk)=0.0_jprb
386 pfsux(jl,2,jk)=0.0_jprb
394 IF (
lhook)
CALL dr_hook(
'SRTM_SRTM_224GP',1,zhook_handle)
INTERFACE SUBROUTINE RRTM_ECRT_140GP pcco2
real(kind=jprb), dimension(14, 6) rsrpiza
INTERFACE SUBROUTINE RRTM_ECRT_140GP pth
integer(kind=jpim), parameter jplay
subroutine srtm_spcvrt(KLEV, KMOL, KSW, PONEMINUS,PAVEL, PTAVEL, PZ, PTZ, PTBOUND, PALBD, PALBP,PFRCL, PTAUC, PASYC, POMGC, PTAUA, PASYA, POMGA, PRMU0,PCOLDRY, PWKL,KLAYTROP, KLAYSWTCH, KLAYLOW,PCO2MULT, PCOLCH4, PCOLCO2, PCOLH2O, PCOLMOL, PCOLN2O, PCOLO2, PCOLO3,PFORFAC, PFORFRAC, KINDFOR, PSELFFAC, PSELFFRAC, KINDSELF,PFAC00, PFAC01, PFAC10, PFAC11,KJP, KJT, KJT1,
real(kind=jprb), dimension(14, 6) rsrtaua
INTERFACE SUBROUTINE RRTM_ECRT_140GP pozn
real(kind=jprb), dimension(14, 6) rsrasya
!$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
INTERFACE SUBROUTINE RRTM_ECRT_140GP paph
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
subroutine srtm_setcoef(KLEV, KNMOL, PAVEL, PTAVEL, PZ, PTZ, PTBOUND, PCOLDRY, PWKL, KLAYTROP, KLAYSWTCH, KLAYLOW, PCO2MULT, PCOLCH4, PCOLCO2, PCOLH2O, PCOLMOL, PCOLN2O, PCOLO2, PCOLO3, PFORFAC, PFORFRAC, KINDFOR, PSELFFAC, PSELFFRAC, KINDSELF, PFAC00, PFAC01, PFAC10, PFAC11, KJP, KJT, KJT1)
INTERFACE SUBROUTINE RRTM_ECRT_140GP pt
INTERFACE SUBROUTINE RRTM_ECRT_140GP pap
subroutine srtm_srtm_224gp(KIDIA, KFDIA, KLON, KLEV, KSW, KOVLP, PAER, PALBD, PALBP, PAPH, PAP, PTS, PTH, PT, PQ, PCCO2, POZN, PRMU0, PFRCL, PTAUC, PASYC, POMGC, PALBT, PFSUX, PFSUC)
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer
INTERFACE SUBROUTINE RRTM_ECRT_140GP && pts
INTERFACE SUBROUTINE RRTM_ECRT_140GP && pq