2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
#include "FIZHI_OPTIONS.h" |
#include "FIZHI_OPTIONS.h" |
5 |
SUBROUTINE QCHECK ( idim1,idim2,jdim1,jdim2,ldim,im1,im2,jm1,jm2, |
SUBROUTINE QCHECK ( idim1,idim2,jdim1,jdim2,ldim,Nsx,Nsy,im1,im2, |
6 |
. dp,pz,qz) |
. jm1,jm2,bi,bj,dp,qz) |
7 |
C*********************************************************************** |
C*********************************************************************** |
8 |
C Purpose |
C Purpose |
9 |
C Check Specific Humidity Field for Negative values |
C Check Specific Humidity Field for Negative values |
19 |
C JM2 ...... End Meridional Span |
C JM2 ...... End Meridional Span |
20 |
C LDIM ..... Vertical Dimension |
C LDIM ..... Vertical Dimension |
21 |
C DP ....... Delta Pressure |
C DP ....... Delta Pressure |
|
C PZ ........Surface Pressure |
|
22 |
C QZ ........Specific Humidity (g/g) |
C QZ ........Specific Humidity (g/g) |
23 |
C*********************************************************************** |
C*********************************************************************** |
24 |
implicit none |
implicit none |
25 |
|
|
26 |
integer idim1,idim2,jdim1,jdim2,Ldim,im1,im2,jm1,jm2 |
integer idim1,idim2,jdim1,jdim2,Ldim,im1,im2,jm1,jm2 |
27 |
_RL delt |
integer Nsx,Nsy,bi,bj |
28 |
_RL qz(idim1:idim2,jdim1:jdim2,ldim) |
_RL qz(idim1:idim2,jdim1:jdim2,ldim,Nsx,Nsy) |
29 |
_RL dp(idim1:idim2,jdim1:jdim2,ldim) |
_RL dp(idim1:idim2,jdim1:jdim2,ldim,Nsx,Nsy) |
|
_RL pz(idim1:idim2,jdim1:jdim2) |
|
30 |
|
|
31 |
integer i,j,L,LM1 |
integer i,j,L,LM1 |
32 |
_RL getcon,grav,ddsig |
_RL ddsig |
33 |
|
|
|
grav = getcon('GRAVITY') |
|
|
|
|
34 |
c Fill Negative Specific Humidities |
c Fill Negative Specific Humidities |
35 |
c --------------------------------- |
c --------------------------------- |
36 |
DO L=2,Ldim |
DO L=2,Ldim |
37 |
LM1 = L-1 |
LM1 = L-1 |
38 |
do j=jm1,jm2 |
do j=jm1,jm2 |
39 |
do i=im1,im2 |
do i=im1,im2 |
40 |
ddsig = dp(i,j,LM1)/dp(i,j,L) |
ddsig = dp(i,j,LM1,bi,bj)/dp(i,j,L,bi,bj) |
41 |
if( qz(i,j,LM1).lt.0.0 ) then |
if( qz(i,j,LM1,bi,bj).lt.0.0 _d 0) then |
42 |
qz(i,j,L ) = qz(i,j,L) + qz(i,j,LM1)*ddsig |
qz(i,j,L,bi,bj ) = qz(i,j,L,bi,bj) + qz(i,j,LM1,bi,bj)*ddsig |
43 |
qz(i,j,LM1) = 0.0 |
qz(i,j,LM1,bi,bj) = 0.0 _d 0 |
44 |
endif |
endif |
45 |
enddo |
enddo |
46 |
enddo |
enddo |
48 |
|
|
49 |
do j=jm1,jm2 |
do j=jm1,jm2 |
50 |
do i=im1,im2 |
do i=im1,im2 |
51 |
if( qz(i,j,Ldim).lt.0.0 ) qz(i,j,Ldim) = 0.0 |
if(qz(i,j,Ldim,bi,bj).lt.0.0 _d 0)qz(i,j,Ldim,bi,bj) = 0.0 _d 0 |
52 |
enddo |
enddo |
53 |
enddo |
enddo |
54 |
|
|