3 & pavel , ptavel , pz , ptz , ptbound ,&
5 & klaytrop, klayswtch, klaylow ,&
6 & pco2mult, pcolch4 , pcolco2 , pcolh2o , pcolmol , pcoln2o , pcolo2 , pcolo3 ,&
7 & pforfac , pforfrac , kindfor , pselffac, pselffrac, kindself ,&
8 & pfac00 , pfac01 , pfac10 , pfac11 ,&
32 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
33 INTEGER(KIND=JPIM) :: KNMOL
34 REAL(KIND=JPRB) ,
INTENT(IN) :: PAVEL(
jplay)
35 REAL(KIND=JPRB) ,
INTENT(IN) :: PTAVEL(
jplay)
36 REAL(KIND=JPRB) :: PZ(0:
jplay)
37 REAL(KIND=JPRB) ,
INTENT(IN) :: PTZ(0:
jplay)
38 REAL(KIND=JPRB) ,
INTENT(IN) :: PTBOUND
39 REAL(KIND=JPRB) ,
INTENT(IN) :: PCOLDRY(
jplay)
40 REAL(KIND=JPRB) ,
INTENT(IN) :: PWKL(35,
jplay)
41 INTEGER(KIND=JPIM),
INTENT(OUT) :: KLAYTROP
42 INTEGER(KIND=JPIM),
INTENT(OUT) :: KLAYSWTCH
43 INTEGER(KIND=JPIM),
INTENT(OUT) :: KLAYLOW
44 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCO2MULT(
jplay)
45 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCOLCH4(
jplay)
46 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCOLCO2(
jplay)
47 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCOLH2O(
jplay)
48 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCOLMOL(
jplay)
49 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCOLN2O(
jplay)
50 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCOLO2(
jplay)
51 REAL(KIND=JPRB) ,
INTENT(OUT) :: PCOLO3(
jplay)
52 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFORFAC(
jplay)
53 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFORFRAC(
jplay)
54 INTEGER(KIND=JPIM),
INTENT(OUT) :: KINDFOR(
jplay)
55 REAL(KIND=JPRB) ,
INTENT(OUT) :: PSELFFAC(
jplay)
56 REAL(KIND=JPRB) ,
INTENT(OUT) :: PSELFFRAC(
jplay)
57 INTEGER(KIND=JPIM),
INTENT(OUT) :: KINDSELF(
jplay)
58 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFAC00(
jplay)
59 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFAC01(
jplay)
60 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFAC10(
jplay)
61 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFAC11(
jplay)
62 INTEGER(KIND=JPIM),
INTENT(OUT) :: KJP(
jplay)
63 INTEGER(KIND=JPIM),
INTENT(OUT) :: KJT(
jplay)
64 INTEGER(KIND=JPIM),
INTENT(OUT) :: KJT1(
jplay)
69 INTEGER(KIND=JPIM) :: I_NLAYERS, INDBOUND, INDLEV0, JK
70 INTEGER(KIND=JPIM) :: JP1
74 REAL(KIND=JPRB) :: Z_STPFAC, Z_TBNDFRAC, Z_T0FRAC, Z_PLOG, Z_FP, Z_FT, Z_FT1, Z_WATER, Z_SCALEFAC
75 REAL(KIND=JPRB) :: Z_FACTOR, Z_CO2REG, Z_COMPFP
76 REAL(KIND=JPRB) :: ZHOOK_HANDLE
84 z_stpfac = 296._jprb/1013._jprb
86 indbound = ptbound - 159._jprb
87 z_tbndfrac = ptbound - int(ptbound)
88 indlev0 = ptz(0) - 159._jprb
89 z_t0frac = ptz(0) - int(ptz(0))
98 8990
format(18
x,
' T PFAC00, 01, 10, 11 PCO2MULT MOL &
99 & CH4 CO2 H2O N2O O2 O3 SFAC &
100 & SFRAC FFAC FFRAC ISLF IFOR')
109 z_plog = log(pavel(jk))
110 kjp(jk) = int(36. - 5*(z_plog+0.04))
111 IF (kjp(jk) < 1)
THEN
113 ELSEIF (kjp(jk) > 58)
THEN
117 z_fp = 5. * (
preflog(kjp(jk)) - z_plog)
127 kjt(jk) = int(3. + (ptavel(jk)-
tref(kjp(jk)))/15.)
128 IF (kjt(jk) < 1)
THEN
130 ELSEIF (kjt(jk) > 4)
THEN
133 z_ft = ((ptavel(jk)-
tref(kjp(jk)))/15.) -
REAL(kjt(jk)-3)
134 kjt1(jk) = int(3. + (ptavel(jk)-
tref(jp1))/15.)
135 IF (kjt1(jk) < 1)
THEN
137 ELSEIF (kjt1(jk) > 4)
THEN
140 z_ft1 = ((ptavel(jk)-
tref(jp1))/15.) -
REAL(kjt1(jk)-3)
142 z_water = pwkl(1,jk)/pcoldry(jk)
143 z_scalefac = pavel(jk) * z_stpfac / ptavel(jk)
148 IF (z_plog <= 4.56)
GO TO 5300
149 klaytrop = klaytrop + 1
150 IF (z_plog >= 6.62) klaylow = klaylow + 1
155 pforfac(jk) = z_scalefac / (1.+z_water)
156 z_factor = (332.0-ptavel(jk))/36.0
157 kindfor(jk) = min(2, max(1, int(z_factor)))
158 pforfrac(jk) = z_factor -
REAL(kindfor(jk))
163 pselffac(jk) = z_water * pforfac(jk)
164 z_factor = (ptavel(jk)-188.0)/7.2
165 kindself(jk) = min(9, max(1, int(z_factor)-7))
166 pselffrac(jk) = z_factor -
REAL(KINDSELF(JK) + 7)
170 pcolh2o(jk) = 1.e-20 * pwkl(1,jk)
171 pcolco2(jk) = 1.e-20 * pwkl(2,jk)
172 pcolo3(jk) = 1.e-20 * pwkl(3,jk)
175 pcoln2o(jk) = 1.e-20 * pwkl(4,jk)
176 pcolch4(jk) = 1.e-20 * pwkl(6,jk)
177 pcolo2(jk) = 1.e-20 * pwkl(7,jk)
178 pcolmol(jk) = 1.e-20 * pcoldry(jk) + pcolh2o(jk)
185 IF (pcolco2(jk) == 0.) pcolco2(jk) = 1.e-32 * pcoldry(jk)
186 IF (pcoln2o(jk) == 0.) pcoln2o(jk) = 1.e-32 * pcoldry(jk)
187 IF (pcolch4(jk) == 0.) pcolch4(jk) = 1.e-32 * pcoldry(jk)
188 IF (pcolo2(jk) == 0.) pcolo2(jk) = 1.e-32 * pcoldry(jk)
190 z_co2reg = 3.55e-24 * pcoldry(jk)
191 pco2mult(jk)= (pcolco2(jk) - z_co2reg) * &
192 & 272.63*exp(-1919.4/ptavel(jk))/(8.7604e-4*ptavel(jk))
201 pforfac(jk) = z_scalefac / (1.+z_water)
202 z_factor = (ptavel(jk)-188.0)/36.0
204 pforfrac(jk) = z_factor - 1.0
208 pcolh2o(jk) = 1.e-20 * pwkl(1,jk)
209 pcolco2(jk) = 1.e-20 * pwkl(2,jk)
210 pcolo3(jk) = 1.e-20 * pwkl(3,jk)
211 pcoln2o(jk) = 1.e-20 * pwkl(4,jk)
212 pcolch4(jk) = 1.e-20 * pwkl(6,jk)
213 pcolo2(jk) = 1.e-20 * pwkl(7,jk)
214 pcolmol(jk) = 1.e-20 * pcoldry(jk) + pcolh2o(jk)
215 IF (pcolco2(jk) == 0.) pcolco2(jk) = 1.e-32 * pcoldry(jk)
216 IF (pcoln2o(jk) == 0.) pcoln2o(jk) = 1.e-32 * pcoldry(jk)
217 IF (pcolch4(jk) == 0.) pcolch4(jk) = 1.e-32 * pcoldry(jk)
218 IF (pcolo2(jk) == 0.) pcolo2(jk) = 1.e-32 * pcoldry(jk)
219 z_co2reg = 3.55e-24 * pcoldry(jk)
220 pco2mult(jk)= (pcolco2(jk) - z_co2reg) * &
221 & 272.63*exp(-1919.4/ptavel(jk))/(8.7604e-4*ptavel(jk))
223 pselffac(jk) =0.0_jprb
224 pselffrac(jk)=0.0_jprb
237 pfac10(jk) = z_compfp * z_ft
238 pfac00(jk) = z_compfp * (1. - z_ft)
239 pfac11(jk) = z_fp * z_ft1
240 pfac01(jk) = z_fp * (1. - z_ft1)
248 9000
format(1
x,2i3,3i4,f6.1,4f7.2,12e9.2,2i5)
integer(kind=jpim), parameter jplay
real(kind=jprb), dimension(59) preflog
real(kind=jprb), dimension(59) tref
!$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
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)