/[lmdze]/trunk/libf/phylmd/Radlwsw/swu.f
ViewVC logotype

Contents of /trunk/libf/phylmd/Radlwsw/swu.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 38 - (show annotations)
Thu Jan 6 17:52:19 2011 UTC (13 years, 4 months ago) by guez
File size: 5177 byte(s)
Extracted ASCII art from "inigeom" into a separate text file in the
documentation.

"test_disvert" now creates a separate file for layer thicknesses.

Moved variables from module "yomcst" to module "suphec_m" because this
is where those variables are defined. Kept in "yomcst" only parameters
of Earth orbit. Gave the attribute "parameter" to some variables of
module "suphec_m".

Variables of module "yoethf" were defined in procedure "suphec". Moved
these definitions to a new procedure "yoethf" in module "yoethf_m".

1 c
2 cIM ctes ds clesphys.h SUBROUTINE SWU (PSCT,RCO2,PCLDSW,PPMB,PPSOL,PRMU0,PFRAC,
3 SUBROUTINE SWU (PSCT,PCLDSW,PPMB,PPSOL,PRMU0,PFRAC,
4 S PTAVE,PWV,PAKI,PCLD,PCLEAR,PDSIG,PFACT,
5 S PRMU,PSEC,PUD)
6 use dimens_m
7 use dimphy
8 use clesphys
9 use SUPHEC_M
10 use raddim
11 use radepsi
12 use radopt
13 IMPLICIT none
14 C
15 C* ARGUMENTS:
16 C
17 REAL*8 PSCT
18 cIM ctes ds clesphys.h REAL*8 RCO2
19 REAL*8 PCLDSW(KDLON,KFLEV)
20 REAL*8 PPMB(KDLON,KFLEV+1)
21 REAL*8 PPSOL(KDLON)
22 REAL*8 PRMU0(KDLON)
23 REAL*8 PFRAC(KDLON)
24 REAL*8 PTAVE(KDLON,KFLEV)
25 REAL*8 PWV(KDLON,KFLEV)
26 C
27 REAL*8 PAKI(KDLON,2)
28 REAL*8 PCLD(KDLON,KFLEV)
29 REAL*8 PCLEAR(KDLON)
30 REAL*8 PDSIG(KDLON,KFLEV)
31 REAL*8 PFACT(KDLON)
32 REAL*8 PRMU(KDLON)
33 REAL*8 PSEC(KDLON)
34 REAL*8 PUD(KDLON,5,KFLEV+1)
35 C
36 C* LOCAL VARIABLES:
37 C
38 INTEGER IIND(2)
39 REAL*8 ZC1J(KDLON,KFLEV+1)
40 REAL*8 ZCLEAR(KDLON)
41 REAL*8 ZCLOUD(KDLON)
42 REAL*8 ZN175(KDLON)
43 REAL*8 ZN190(KDLON)
44 REAL*8 ZO175(KDLON)
45 REAL*8 ZO190(KDLON)
46 REAL*8 ZSIGN(KDLON)
47 REAL*8 ZR(KDLON,2)
48 REAL*8 ZSIGO(KDLON)
49 REAL*8 ZUD(KDLON,2)
50 REAL*8 ZRTH, ZRTU, ZWH2O, ZDSCO2, ZDSH2O, ZFPPW
51 INTEGER jl, jk, jkp1, jkl, jklp1, ja
52 C
53 C* Prescribed Data:
54 c
55 REAL*8 ZPDH2O,ZPDUMG
56 SAVE ZPDH2O,ZPDUMG
57 REAL*8 ZPRH2O,ZPRUMG
58 SAVE ZPRH2O,ZPRUMG
59 REAL*8 RTDH2O,RTDUMG
60 SAVE RTDH2O,RTDUMG
61 REAL*8 RTH2O ,RTUMG
62 SAVE RTH2O ,RTUMG
63 DATA ZPDH2O,ZPDUMG / 0.8 , 0.75 /
64 DATA ZPRH2O,ZPRUMG / 30000., 30000. /
65 DATA RTDH2O,RTDUMG / 0.40 , 0.375 /
66 DATA RTH2O ,RTUMG / 240. , 240. /
67 C ------------------------------------------------------------------
68 C
69 C* 1. COMPUTES AMOUNTS OF ABSORBERS
70 C -----------------------------
71 C
72 100 CONTINUE
73 C
74 IIND(1)=1
75 IIND(2)=2
76 C
77 C
78 C* 1.1 INITIALIZES QUANTITIES
79 C ----------------------
80 C
81 110 CONTINUE
82 C
83 DO 111 JL = 1, KDLON
84 PUD(JL,1,KFLEV+1)=0.
85 PUD(JL,2,KFLEV+1)=0.
86 PUD(JL,3,KFLEV+1)=0.
87 PUD(JL,4,KFLEV+1)=0.
88 PUD(JL,5,KFLEV+1)=0.
89 PFACT(JL)= PRMU0(JL) * PFRAC(JL) * PSCT
90 PRMU(JL)=SQRT(1224.* PRMU0(JL) * PRMU0(JL) + 1.) / 35.
91 PSEC(JL)=1./PRMU(JL)
92 ZC1J(JL,KFLEV+1)=0.
93 111 CONTINUE
94 C
95 C* 1.3 AMOUNTS OF ABSORBERS
96 C --------------------
97 C
98 130 CONTINUE
99 C
100 DO 131 JL= 1, KDLON
101 ZUD(JL,1) = 0.
102 ZUD(JL,2) = 0.
103 ZO175(JL) = PPSOL(JL)** (ZPDUMG+1.)
104 ZO190(JL) = PPSOL(JL)** (ZPDH2O+1.)
105 ZSIGO(JL) = PPSOL(JL)
106 ZCLEAR(JL)=1.
107 ZCLOUD(JL)=0.
108 131 CONTINUE
109 C
110 DO 133 JK = 1 , KFLEV
111 JKP1 = JK + 1
112 JKL = KFLEV+1 - JK
113 JKLP1 = JKL+1
114 DO 132 JL = 1, KDLON
115 ZRTH=(RTH2O/PTAVE(JL,JK))**RTDH2O
116 ZRTU=(RTUMG/PTAVE(JL,JK))**RTDUMG
117 ZWH2O = MAX (PWV(JL,JK) , ZEPSCQ )
118 ZSIGN(JL) = 100. * PPMB(JL,JKP1)
119 PDSIG(JL,JK) = (ZSIGO(JL) - ZSIGN(JL))/PPSOL(JL)
120 ZN175(JL) = ZSIGN(JL) ** (ZPDUMG+1.)
121 ZN190(JL) = ZSIGN(JL) ** (ZPDH2O+1.)
122 ZDSCO2 = ZO175(JL) - ZN175(JL)
123 ZDSH2O = ZO190(JL) - ZN190(JL)
124 PUD(JL,1,JK) = 1./( 10.* RG * (ZPDH2O+1.) )/(ZPRH2O**ZPDH2O)
125 . * ZDSH2O * ZWH2O * ZRTH
126 PUD(JL,2,JK) = 1./( 10.* RG * (ZPDUMG+1.) )/(ZPRUMG**ZPDUMG)
127 . * ZDSCO2 * RCO2 * ZRTU
128 ZFPPW=1.6078*ZWH2O/(1.+0.608*ZWH2O)
129 PUD(JL,4,JK)=PUD(JL,1,JK)*ZFPPW
130 PUD(JL,5,JK)=PUD(JL,1,JK)*(1.-ZFPPW)
131 ZUD(JL,1) = ZUD(JL,1) + PUD(JL,1,JK)
132 ZUD(JL,2) = ZUD(JL,2) + PUD(JL,2,JK)
133 ZSIGO(JL) = ZSIGN(JL)
134 ZO175(JL) = ZN175(JL)
135 ZO190(JL) = ZN190(JL)
136 C
137 IF (NOVLP.EQ.1) THEN
138 ZCLEAR(JL)=ZCLEAR(JL)
139 S *(1.-MAX(PCLDSW(JL,JKL),ZCLOUD(JL)))
140 S /(1.-MIN(ZCLOUD(JL),1.-ZEPSEC))
141 ZC1J(JL,JKL)= 1.0 - ZCLEAR(JL)
142 ZCLOUD(JL) = PCLDSW(JL,JKL)
143 ELSE IF (NOVLP.EQ.2) THEN
144 ZCLOUD(JL) = MAX(PCLDSW(JL,JKL),ZCLOUD(JL))
145 ZC1J(JL,JKL) = ZCLOUD(JL)
146 ELSE IF (NOVLP.EQ.3) THEN
147 ZCLEAR(JL) = ZCLEAR(JL)*(1.-PCLDSW(JL,JKL))
148 ZCLOUD(JL) = 1.0 - ZCLEAR(JL)
149 ZC1J(JL,JKL) = ZCLOUD(JL)
150 END IF
151 132 CONTINUE
152 133 CONTINUE
153 DO 134 JL=1, KDLON
154 PCLEAR(JL)=1.-ZC1J(JL,1)
155 134 CONTINUE
156 DO 136 JK=1,KFLEV
157 DO 135 JL=1, KDLON
158 IF (PCLEAR(JL).LT.1.) THEN
159 PCLD(JL,JK)=PCLDSW(JL,JK)/(1.-PCLEAR(JL))
160 ELSE
161 PCLD(JL,JK)=0.
162 END IF
163 135 CONTINUE
164 136 CONTINUE
165 C
166 C
167 C* 1.4 COMPUTES CLEAR-SKY GREY ABSORPTION COEFFICIENTS
168 C -----------------------------------------------
169 C
170 140 CONTINUE
171 C
172 DO 142 JA = 1,2
173 DO 141 JL = 1, KDLON
174 ZUD(JL,JA) = ZUD(JL,JA) * PSEC(JL)
175 141 CONTINUE
176 142 CONTINUE
177 C
178 CALL SWTT1(2, 2, IIND, ZUD, ZR)
179 C
180 DO 144 JA = 1,2
181 DO 143 JL = 1, KDLON
182 PAKI(JL,JA) = -LOG( ZR(JL,JA) ) / ZUD(JL,JA)
183 143 CONTINUE
184 144 CONTINUE
185 C
186 C
187 C ------------------------------------------------------------------
188 C
189 RETURN
190 END

  ViewVC Help
Powered by ViewVC 1.1.21