58 POTT, TEMP, PRES, EXNER )
60 thermodyn_rhot2temp_pres => atmos_thermodyn_rhot2temp_pres
61 integer,
intent(in) :: ka, ks, ke
62 integer,
intent(in) :: ia, is, ie
63 integer,
intent(in) :: ja, js, je
65 real(
rp),
intent(in) :: dens (ka,ia,ja)
66 real(
rp),
intent(in) :: rhot (ka,ia,ja)
67 real(
rp),
intent(in) :: rtot (ka,ia,ja)
68 real(
rp),
intent(in) :: cvtot(ka,ia,ja)
69 real(
rp),
intent(in) :: cptot(ka,ia,ja)
71 real(
rp),
intent(out) :: pott (ka,ia,ja)
72 real(
rp),
intent(out) :: temp (ka,ia,ja)
73 real(
rp),
intent(out) :: pres (ka,ia,ja)
74 real(
rp),
intent(out) :: exner(ka,ia,ja)
79 call thermodyn_rhot2temp_pres( ka, ks, ke, ia, is, ie, ja, js, je, &
80 dens(:,:,:), rhot(:,:,:), &
81 rtot(:,:,:), cvtot(:,:,:), cptot(:,:,:), &
82 temp(:,:,:), pres(:,:,:) )
93 pott(k,i,j) = rhot(k,i,j) / dens(k,i,j)
94 exner(k,i,j) = temp(k,i,j) / pott(k,i,j)
107 KA, KS, KE, IA, IS, IE, JA, JS, JE, &
108 DENS, RHOE, Rtot, CPtot, CVtot, & ! (in)
109 temp, pott, pres, exner )
113 integer,
intent(in) :: ka, ks, ke
114 integer,
intent(in) :: ia, is, ie
115 integer,
intent(in) :: ja, js, je
117 real(
rp),
intent(in) :: dens (ka,ia,ja)
118 real(
rp),
intent(in) :: rhoe (ka,ia,ja)
119 real(
rp),
intent(in) :: rtot (ka,ia,ja)
120 real(
rp),
intent(in) :: cptot(ka,ia,ja)
121 real(
rp),
intent(in) :: cvtot(ka,ia,ja)
123 real(
rp),
intent(out) :: pott (ka,ia,ja)
124 real(
rp),
intent(out) :: temp (ka,ia,ja)
125 real(
rp),
intent(out) :: pres (ka,ia,ja)
126 real(
rp),
intent(out) :: exner(ka,ia,ja)
134 temp(k,i,j) = rhoe(k,i,j) / ( cvtot(k,i,j) * dens(k,i,j) )
135 pres(k,i,j) = dens(k,i,j) * rtot(k,i,j) * temp(k,i,j)
136 exner(k,i,j) = ( pres(k,i,j) / pre00 )**( rtot(k,i,j) / cptot(k,i,j) )
137 pott(k,i,j) = temp(k,i,j) / exner(k,i,j)
162 integer,
intent(in) :: ka, ks, ke
163 integer,
intent(in) :: ia, is, ie
164 integer,
intent(in) :: ja, js, je
165 real(
rp),
intent(in) :: dens ( ka,ia,ja)
166 real(
rp),
intent(in) :: pres ( ka,ia,ja)
167 real(
rp),
intent(in) :: cz ( ka,ia,ja)
168 real(
rp),
intent(in) :: fz (0:ka,ia,ja)
169 real(
rp),
intent(out) :: phyd ( ka,ia,ja)
170 real(
rp),
intent(out) :: phydh(0:ka,ia,ja)
184 phydh(ke,i,j) = pres(ke,i,j) - dens(ke,i,j) * grav * ( fz(ke,i,j) - cz(ke,i,j) )
185 do k = ke-1, ks-1, -1
186 phydh(k,i,j) = phydh(k+1,i,j) + dens(k+1,i,j) * grav * ( fz(k+1,i,j) - fz(k,i,j) )
188 phyd(ke,i,j) = pres(ke,i,j)
191 phyd(k,i,j) = phyd(k+1,i,j) + ( dens(k+1,i,j) + dens(k,i,j) ) * grav * ( cz(k+1,i,j) - cz(k,i,j) ) * 0.5_rp
192 diff = diff + ( pres(k,i,j) - phyd(k,i,j) ) * ( fz(k,i,j) - fz(k-1,i,j) )
194 diff = diff / ( fz(ke,i,j) - fz(ks-1,i,j) )
195 diff = max( diff, eps - phydh(ke,i,j) )
197 phydh(k,i,j) = phydh(k,i,j) + diff
200 phyd(k,i,j) = phyd(k,i,j) + diff
221 integer,
intent(in) :: ka, ks, ke
222 integer,
intent(in) :: ia, is, ie
223 integer,
intent(in) :: ja, js, je
225 real(
rp),
intent(in) :: pott(ka,ia,ja)
226 real(
rp),
intent(in) :: rtot(ka,ia,ja)
228 real(
rp),
intent(in) :: cz ( ka,ia,ja)
229 real(
rp),
intent(in) :: fz (0:ka,ia,ja)
230 real(
rp),
intent(in) :: f2h(ka,2,ia,ja)
232 real(
rp),
intent(out) :: n2 (ka,ia,ja)
235 real(
rp) :: rpt_h(ka)
248 rpt(k) = rtot(k,i,j) * pott(k,i,j)
252 rpt_h(k) = f2h(k,1,i,j) * rpt(k+1) + f2h(k,2,i,j) * rpt(k)
255 n2(ks,i,j) = grav * ( rpt_h(ks) - rpt(ks) ) / ( ( fz(ks,i,j) - cz(ks,i,j) ) * rpt(ks) )
257 n2(k,i,j) = grav * ( rpt_h(k) - rpt_h(k-1) ) / ( ( fz(k,i,j) - fz(k-1,i,j) ) * rpt(k) )
259 n2(ke,i,j) = grav * ( rpt(ke) - rpt_h(ke-1) ) / ( ( cz(ke,i,j) - fz(ke-1,i,j) ) * rpt(ke) )
279 integer,
intent(in) :: ka, ks, ke
280 integer,
intent(in) :: ia, is, ie
281 integer,
intent(in) :: ja, js, je
283 real(
rp),
intent(in) :: pott(ka,ia,ja)
284 real(
rp),
intent(in) :: rtot(ka,ia,ja)
286 real(
rp),
intent(out) :: potv(ka,ia,ja)
299 potv(k,i,j) = pott(k,i,j) * rtot(k,i,j) / rdry
320 integer,
intent(in) :: ka, ks, ke
321 integer,
intent(in) :: ia, is, ie
322 integer,
intent(in) :: ja, js, je
324 real(
rp),
intent(in) :: temp (ka,ia,ja)
325 real(
rp),
intent(in) :: lhv (ka,ia,ja)
326 real(
rp),
intent(in) :: lhs (ka,ia,ja)
327 real(
rp),
intent(in) :: qc (ka,ia,ja)
328 real(
rp),
intent(in) :: qi (ka,ia,ja)
329 real(
rp),
intent(in) :: cptot(ka,ia,ja)
331 real(
rp),
intent(out) :: teml(ka,ia,ja)
344 teml(k,i,j) = temp(k,i,j) &
345 - ( lhv(k,i,j) * qc(k,i,j) + lhs(k,i,j) * qi(k,i,j) ) / cptot(k,i,j)