6 & pfrcl , ptauc , pasyc , pomgc ,&
28 INTEGER(KIND=JPIM),
INTENT(IN) :: KLON
29 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
30 INTEGER(KIND=JPIM),
INTENT(IN) :: KSW
31 INTEGER(KIND=JPIM),
INTENT(IN) :: KIDIA
32 INTEGER(KIND=JPIM),
INTENT(IN) :: KFDIA
33 INTEGER(KIND=JPIM),
INTENT(IN) :: KCOLS
34 INTEGER(KIND=JPIM),
INTENT(IN) :: KCLDLY(kcols)
36 REAL(KIND=JPRB) ,
INTENT(IN) :: PAER(klon,6,klev)
37 REAL(KIND=JPRB) ,
INTENT(IN) :: PALBD(klon,ksw)
38 REAL(KIND=JPRB) ,
INTENT(IN) :: PALBP(klon,ksw)
39 REAL(KIND=JPRB) ,
INTENT(IN) :: PAPH(klon,klev+1)
40 REAL(KIND=JPRB) ,
INTENT(IN) :: PAP(klon,klev)
41 REAL(KIND=JPRB) ,
INTENT(IN) :: PTS(klon)
42 REAL(KIND=JPRB) ,
INTENT(IN) :: PTH(klon,klev+1)
43 REAL(KIND=JPRB) ,
INTENT(IN) :: PT(klon,klev)
44 REAL(KIND=JPRB) ,
INTENT(IN) :: PQ(klon,klev)
45 REAL(KIND=JPRB) ,
INTENT(IN) :: PCCO2
46 REAL(KIND=JPRB) ,
INTENT(IN) :: POZN(klon,klev)
47 REAL(KIND=JPRB) ,
INTENT(IN) :: PRMU0(klon)
49 REAL(KIND=JPRB) ,
INTENT(IN) :: PFRCL(klon,kcols,klev)
50 REAL(KIND=JPRB) ,
INTENT(IN) :: PTAUC(klon,kcols,klev)
51 REAL(KIND=JPRB) ,
INTENT(IN) :: PASYC(klon,kcols,klev)
52 REAL(KIND=JPRB) ,
INTENT(IN) :: POMGC(klon,kcols,klev)
54 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFSUX(klon,2,klev+1)
55 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFSUC(klon,2,klev+1)
63 INTEGER(KIND=JPIM) :: ICLDATM, INFLAG, ICEFLAG, I_LIQFLAG, ITMOL, I_NSTR
65 INTEGER(KIND=JPIM) :: IK, IMOL, J1, J2, JAE, JL, JK, JSW
75 REAL(KIND=JPRB) :: ZTBOUND , ZONEMINUS , ZRMU0 , ZADJI0
76 REAL(KIND=JPRB) :: ZALBD(ksw) , ZALBP(ksw)
78 REAL(KIND=JPRB) :: ZFRCL(kcols,
jplay), ZTAUC(
jplay,kcols), ZASYC(
jplay,kcols), ZOMGC(
jplay,kcols)
86 INTEGER(KIND=JPIM) :: ILAYTROP, ILAYSWTCH, ILAYLOW
87 INTEGER(KIND=JPIM) :: INDFOR(
jplay), INDSELF(
jplay)
90 REAL(KIND=JPRB) :: ZAMD
91 REAL(KIND=JPRB) :: ZAMW
92 REAL(KIND=JPRB) :: ZAMCO2
93 REAL(KIND=JPRB) :: ZAMO
94 REAL(KIND=JPRB) :: ZAMCH4
95 REAL(KIND=JPRB) :: ZAMN2O
96 REAL(KIND=JPRB) :: ZAMC11
97 REAL(KIND=JPRB) :: ZAMC12
98 REAL(KIND=JPRB) :: ZAVGDRO
99 REAL(KIND=JPRB) :: ZGRAVIT
100 REAL(KIND=JPRB) :: ZAMM
102 REAL(KIND=JPRB) :: RAMW
103 REAL(KIND=JPRB) :: RAMCO2
104 REAL(KIND=JPRB) :: RAMO
105 REAL(KIND=JPRB) :: RAMCH4
106 REAL(KIND=JPRB) :: RAMN2O
110 data zamd / 28.970_jprb /
111 data zamw / 18.0154_jprb /
112 data zamco2 / 44.011_jprb /
113 data zamo / 47.9982_jprb /
114 data zamch4 / 16.043_jprb /
115 data zamn2o / 44.013_jprb /
116 data zamc11 / 137.3686_jprb /
117 data zamc12 / 120.9140_jprb /
118 data zavgdro/ 6.02214e23_jprb /
119 data zgravit/ 9.80665e02_jprb /
120 data ramw / 0.05550_jprb /
121 data ramco2 / 0.02272_jprb /
122 data ramo / 0.02083_jprb /
123 data ramch4 / 0.06233_jprb /
124 data ramn2o / 0.02272_jprb /
127 REAL(KIND=JPRB) :: ZCLEAR, ZCLOUD, ZEPSEC, ZTOTCC
129 INTEGER(KIND=JPIM) :: IOVLP
130 REAL(KIND=JPRB) :: ZHOOK_HANDLE
133 #include "srtm_setcoef.intfb.h"
134 #include "srtm_spcvrt_mcica.intfb.h"
140 IF (
lhook)
CALL dr_hook(
'SRTM_SRTM_224GP_MCICA',0,zhook_handle)
142 zoneminus=1.0_jprb - zepsec
158 IF (zrmu0 > 0.0_jprb)
THEN
175 9101
format(1
x,
'srtm_srtm_224gp Cld :',i3,f7.4,7e12.5)
194 zpz(0) = paph(jl,klev+1)*0.01_jprb
195 ztz(0) = pth(jl,klev+1)
201 zpavel(jk) = pap(jl,klev-jk+1) *0.01_jprb
202 ztavel(jk) = pt(jl,klev-jk+1)
203 zpz(jk) = paph(jl,klev-jk+1) *0.01_jprb
204 ztz(jk) = pth(jl,klev-jk+1)
205 zwkl(1,jk) = pq(jl,klev-jk+1) *zamd*ramw
206 zwkl(2,jk) = pcco2 *zamd*ramco2
207 zwkl(3,jk) = pozn(jl,klev-jk+1)*zamd*ramo
208 zwkl(4,jk) =
rn2o *zamd*ramn2o
209 zwkl(6,jk) =
rch4 *zamd*ramch4
210 zamm = (1-zwkl(1,jk))*zamd + zwkl(1,jk)*zamw
211 zcoldry(jk) = (zpz(jk-1)-zpz(jk))*1.e3_jprb*zavgdro/(zgravit*zamm*(1+zwkl(1,jk)))
213 9200
format(1
x,
'SRTM ',i3,2f7.1,6e13.5)
223 zwkl(imol,jk)=zcoldry(jk)* zwkl(imol,jk)
231 & zpavel , ztavel , zpz , ztz , ztbound,&
233 & ilaytrop, ilayswtch, ilaylow,&
234 & zco2mult, zcolch4 , zcolco2 , zcolh2o , zcolmol , zcoln2o , zcolo2 , zcolo3,&
235 & zforfac , zforfrac , indfor , zselffac, zselffrac, indself, &
236 & zfac00 , zfac01 , zfac10 , zfac11,&
245 zalbd(jsw)=palbd(jl,jsw)
246 zalbp(jsw)=palbp(jl,jsw)
251 zfrcl(jsw,jk) = pfrcl(jl,jsw,jk)
252 ztauc(jk,jsw) = ptauc(jl,jsw,jk)
253 zasyc(jk,jsw) = pasyc(jl,jsw,jk)
254 zomgc(jk,jsw) = pomgc(jl,jsw,jk)
263 9002
format(1
x,
'srtm_224gp_McICA ClOPropECmodel ',2i3,f8.4,3e12.5)
273 9012
format(i3,(/,i3,3e13.5))
278 9013
format(1
x,i3,6e12.5)
284 ztaua(jk,jsw)= 0.0_jprb
285 zasya(jk,jsw)= 0.0_jprb
286 zomga(jk,jsw)= 1.0_jprb
293 ztaua(jk,jsw)=0.0_jprb
294 zasya(jk,jsw)=0.0_jprb
295 zomga(jk,jsw)=0.0_jprb
297 ztaua(jk,jsw)=ztaua(jk,jsw)+
rsrtaua(jsw,jae)*paer(jl,jae,ik)
298 zomga(jk,jsw)=zomga(jk,jsw)+
rsrtaua(jsw,jae)*paer(jl,jae,ik) &
300 zasya(jk,jsw)=zasya(jk,jsw)+
rsrtaua(jsw,jae)*paer(jl,jae,ik) &
303 IF (zomga(jk,jsw) /= 0.0_jprb)
THEN
304 zasya(jk,jsw)=zasya(jk,jsw)/zomga(jk,jsw)
306 IF (ztaua(jk,jsw) /= 0.0_jprb)
THEN
307 zomga(jk,jsw)=zomga(jk,jsw)/ztaua(jk,jsw)
310 9003
format(1
x,
'Aerosols ',2i3,3f10.4)
337 &( klev , itmol , ksw , kcols , zoneminus,&
338 & zpavel , ztavel , zpz , ztz , ztbound , zalbd , zalbp,&
339 & zfrcl , ztauc , zasyc , zomgc , ztaua , zasya , zomga , zrmu0,&
341 & ilaytrop, ilayswtch, ilaylow,&
342 & zco2mult, zcolch4 , zcolco2, zcolh2o , zcolmol , zcoln2o, zcolo2 , zcolo3,&
343 & zforfac , zforfrac , indfor , zselffac, zselffrac, indself,&
344 & zfac00 , zfac01 , zfac10 , zfac11 ,&
346 & zbbfd , zbbfu , zbbcd , zbbcu )
356 9004
format(1
x,
'Clear-sky and total fluxes U & D ',i3,4f10.3)
365 pfsuc(jl,1,jk)=zadji0 * zbbcu(jk)
366 pfsuc(jl,2,jk)=zadji0 * zbbcd(jk)
367 pfsux(jl,1,jk)=zadji0 * ( (1.0_jprb-zclear)*zbbfu(jk)+zclear*zbbcu(jk) )
368 pfsux(jl,2,jk)=zadji0 * ( (1.0_jprb-zclear)*zbbfd(jk)+zclear*zbbcd(jk) )
370 pfsuc(jl,1,jk)=zadji0 * zbbcu(jk)
371 pfsuc(jl,2,jk)=zadji0 * zbbcd(jk)
372 pfsux(jl,1,jk)=zadji0 * zbbfu(jk)
373 pfsux(jl,2,jk)=zadji0 * zbbfd(jk)
379 9005
format(1
x,
'Clear-sky and total fluxes U & D ',i3,4f10.3)
384 pfsuc(jl,1,jk)=0.0_jprb
385 pfsuc(jl,2,jk)=0.0_jprb
386 pfsux(jl,1,jk)=0.0_jprb
387 pfsux(jl,2,jk)=0.0_jprb
395 IF (
lhook)
CALL dr_hook(
'SRTM_SRTM_224GP_MCICA',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_mcica(KLEV, KMOL, KSW, KCOLS, 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_mcica(KIDIA, KFDIA, KLON, KLEV, KSW, KCOLS, KCLDLY, PAER, PALBD, PALBP, PAPH, PAP, PTS, PTH, PT, PQ, PCCO2, POZN, PRMU0, PFRCL, PTAUC, PASYC, POMGC, PFSUX, PFSUC)
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer
INTERFACE SUBROUTINE RRTM_ECRT_140GP && pts
INTERFACE SUBROUTINE RRTM_ECRT_140GP && pq