46 SUBROUTINE ngmfld(RH4710,RH4796,RH1847,RH8498,QM8510)
51 use vrbls3d, only: q, uh, vh, pint, alpint, zint, t
53 use params_mod, only: d00, d50, h1m12, pq0, a2, a3, a4, h1, d01, small
54 use ctlblk_mod
, only: jsta, jend, lm, jsta_2l, jend_2u, jsta_m2, jend_m2,&
56 ista, iend, ista_2l, iend_2u, ista_m2, iend_m2, ista_m, iend_m
61 real,
PARAMETER :: sig100=1.00000, sig98=0.98230, sig96=0.96470
62 real,
PARAMETER :: sig89 =0.89671, sig85=0.85000, sig84=0.84368
63 real,
PARAMETER :: sig78 =0.78483, sig47=0.47191, sig18=0.18018
66 LOGICAL got8510,got4710,got4796,got1847,got8498
67 REAL,
dimension(ista_2l:iend_2u,jsta_2l:jend_2u),
intent(out) :: qm8510,rh4710,rh8498, &
69 REAL,
dimension(ista_2l:iend_2u,jsta_2l:jend_2u) :: z8510,z4710,z8498,z4796,z1847
70 real,
dimension(ista_2l:iend_2u,jsta_2l:jend_2u) :: q1d, u1d, v1d, qcnvg
73 real p100,p85,p98,p96,p84,p47,p18,alpm,de,pm,tm,qm, &
114 CALL calmcvg(q1d,u1d,v1d,qcnvg)
121 p100 = pint(i,j,nint(lmh(i,j)))
133 alpm = d50*(alpint(i,j,l)+alpint(i,j,l+1))
134 dz = zint(i,j,l)-zint(i,j,l+1)
144 qs=pq0/pm*exp(a2*(tm-a3)/(tm-a4))
157 IF ((pm<=p100).AND.(pm>=p85))
THEN
158 z8510(i,j) = z8510(i,j) + dz
159 qm8510(i,j) = qm8510(i,j) + qmcvg*dz
163 IF ((pm<=p100).AND.(pm>=p47))
THEN
164 z4710(i,j) = z4710(i,j) + dz
165 rh4710(i,j) = rh4710(i,j) + rh*dz
169 IF ((pm<=p98).AND.(pm>=p84))
THEN
170 z8498(i,j) = z8498(i,j) + dz
171 rh8498(i,j) = rh8498(i,j) + rh*dz
175 IF ((pm<=p96).AND.(pm>=p47))
THEN
176 z4796(i,j) = z4796(i,j) + dz
177 rh4796(i,j) = rh4796(i,j) + rh*dz
181 IF ((pm<=p47).AND.(pm>=p18))
THEN
182 z1847(i,j) = z1847(i,j) + dz
183 rh1847(i,j) = rh1847(i,j) + rh*dz
193 IF (z8510(i,j)>0)
THEN
194 qm8510(i,j) = qm8510(i,j)/z8510(i,j)
198 IF (abs(qm8510(i,j)-spval)<small)qm8510(i,j)=h1m12
200 IF (z4710(i,j)>0)
THEN
201 rh4710(i,j) = rh4710(i,j)/z4710(i,j)
206 IF (z8498(i,j)>0)
THEN
207 rh8498(i,j) = rh8498(i,j)/z8498(i,j)
212 IF (z4796(i,j)>0)
THEN
213 rh4796(i,j) = rh4796(i,j)/z4796(i,j)
218 IF (z1847(i,j)>0)
THEN
219 rh1847(i,j) = rh1847(i,j)/z1847(i,j)