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)
81 call thermodyn_rhot2temp_pres( ka, ks, ke, ia, is, ie, ja, js, je, &
82 dens(:,:,:), rhot(:,:,:), &
83 rtot(:,:,:), cvtot(:,:,:), cptot(:,:,:), &
84 temp(:,:,:), pres(:,:,:) )
96 pott(k,i,j) = rhot(k,i,j) / dens(k,i,j)
97 exner(k,i,j) = temp(k,i,j) / pott(k,i,j)
113 KA, KS, KE, IA, IS, IE, JA, JS, JE, &
114 DENS, RHOE, Rtot, CPtot, CVtot, & ! (in)
115 temp, pott, pres, exner )
119 integer,
intent(in) :: ka, ks, ke
120 integer,
intent(in) :: ia, is, ie
121 integer,
intent(in) :: ja, js, je
123 real(
rp),
intent(in) :: dens (ka,ia,ja)
124 real(
rp),
intent(in) :: rhoe (ka,ia,ja)
125 real(
rp),
intent(in) :: rtot (ka,ia,ja)
126 real(
rp),
intent(in) :: cptot(ka,ia,ja)
127 real(
rp),
intent(in) :: cvtot(ka,ia,ja)
129 real(
rp),
intent(out) :: pott (ka,ia,ja)
130 real(
rp),
intent(out) :: temp (ka,ia,ja)
131 real(
rp),
intent(out) :: pres (ka,ia,ja)
132 real(
rp),
intent(out) :: exner(ka,ia,ja)
141 temp(k,i,j) = rhoe(k,i,j) / ( cvtot(k,i,j) * dens(k,i,j) )
142 pres(k,i,j) = dens(k,i,j) * rtot(k,i,j) * temp(k,i,j)
143 exner(k,i,j) = ( pres(k,i,j) / pre00 )**( rtot(k,i,j) / cptot(k,i,j) )
144 pott(k,i,j) = temp(k,i,j) / exner(k,i,j)
170 integer,
intent(in) :: ka, ks, ke
171 integer,
intent(in) :: ia, is, ie
172 integer,
intent(in) :: ja, js, je
173 real(
rp),
intent(in) :: dens ( ka,ia,ja)
174 real(
rp),
intent(in) :: pres ( ka,ia,ja)
175 real(
rp),
intent(in) :: cz ( ka,ia,ja)
176 real(
rp),
intent(in) :: fz (0:ka,ia,ja)
177 real(
rp),
intent(out) :: phyd ( ka,ia,ja)
178 real(
rp),
intent(out) :: phydh(0:ka,ia,ja)
193 phydh(ke,i,j) = pres(ke,i,j) - dens(ke,i,j) * grav * ( fz(ke,i,j) - cz(ke,i,j) )
194 do k = ke-1, ks-1, -1
195 phydh(k,i,j) = phydh(k+1,i,j) + dens(k+1,i,j) * grav * ( fz(k+1,i,j) - fz(k,i,j) )
197 phyd(ke,i,j) = pres(ke,i,j)
199 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
203 diff = diff + ( pres(k,i,j) - phyd(k,i,j) ) * ( fz(k,i,j) - fz(k-1,i,j) )
205 diff = diff / ( fz(ke,i,j) - fz(ks-1,i,j) )
206 diff = max( diff, eps - phydh(ke,i,j) )
208 phydh(k,i,j) = phydh(k,i,j) + diff
211 phyd(k,i,j) = phyd(k,i,j) + diff
233 integer,
intent(in) :: ka, ks, ke
234 integer,
intent(in) :: ia, is, ie
235 integer,
intent(in) :: ja, js, je
237 real(
rp),
intent(in) :: pott(ka,ia,ja)
238 real(
rp),
intent(in) :: rtot(ka,ia,ja)
240 real(
rp),
intent(in) :: cz ( ka,ia,ja)
241 real(
rp),
intent(in) :: fz (0:ka,ia,ja)
242 real(
rp),
intent(in) :: f2h(ka,2,ia,ja)
244 real(
rp),
intent(out) :: n2 (ka,ia,ja)
247 real(
rp) :: rpt_h(ka)
263 rpt(k) = rtot(k,i,j) * pott(k,i,j)
267 rpt_h(k) = f2h(k,1,i,j) * rpt(k+1) + f2h(k,2,i,j) * rpt(k)
270 n2(ks,i,j) = grav * ( rpt_h(ks) - rpt(ks) ) / ( ( fz(ks,i,j) - cz(ks,i,j) ) * rpt(ks) )
272 n2(k,i,j) = grav * ( rpt_h(k) - rpt_h(k-1) ) / ( ( fz(k,i,j) - fz(k-1,i,j) ) * rpt(k) )
274 n2(ke,i,j) = grav * ( rpt(ke) - rpt_h(ke-1) ) / ( ( cz(ke,i,j) - fz(ke-1,i,j) ) * rpt(ke) )
295 integer,
intent(in) :: ka, ks, ke
296 integer,
intent(in) :: ia, is, ie
297 integer,
intent(in) :: ja, js, je
299 real(
rp),
intent(in) :: pott(ka,ia,ja)
300 real(
rp),
intent(in) :: rtot(ka,ia,ja)
302 real(
rp),
intent(out) :: potv(ka,ia,ja)
316 potv(k,i,j) = pott(k,i,j) * rtot(k,i,j) / rdry
338 integer,
intent(in) :: ka, ks, ke
339 integer,
intent(in) :: ia, is, ie
340 integer,
intent(in) :: ja, js, je
342 real(
rp),
intent(in) :: temp (ka,ia,ja)
343 real(
rp),
intent(in) :: lhv (ka,ia,ja)
344 real(
rp),
intent(in) :: lhs (ka,ia,ja)
345 real(
rp),
intent(in) :: qc (ka,ia,ja)
346 real(
rp),
intent(in) :: qi (ka,ia,ja)
347 real(
rp),
intent(in) :: cptot(ka,ia,ja)
349 real(
rp),
intent(out) :: teml(ka,ia,ja)
363 teml(k,i,j) = temp(k,i,j) &
364 - ( lhv(k,i,j) * qc(k,i,j) + lhs(k,i,j) * qi(k,i,j) ) / cptot(k,i,j)