3 |
|
|
4 |
cch SUBROUTINE VDIFSC (UA,VA,SE,RH,QA,QSAT, |
cch SUBROUTINE VDIFSC (UA,VA,SE,RH,QA,QSAT, |
5 |
SUBROUTINE VDIFSC (UA,VA,Ta,RH,QA,QSAT, |
SUBROUTINE VDIFSC (UA,VA,Ta,RH,QA,QSAT, |
6 |
& UTENVD,VTENVD,TTENVD,QTENVD) |
& UTENVD,VTENVD,TTENVD,QTENVD, |
7 |
|
& myThid) |
8 |
C- |
C- |
9 |
C-- SUBROUTINE VDIFSC (UA,VA,SE,RH,QA,QSAT, |
C-- SUBROUTINE VDIFSC (UA,VA,SE,RH,QA,QSAT, |
10 |
C-- & UTENVD,VTENVD,TTENVD,QTENVD) |
C-- & UTENVD,VTENVD,TTENVD,QTENVD) |
25 |
|
|
26 |
|
|
27 |
IMPLICIT rEAL*8 (A-H,O-Z) |
IMPLICIT rEAL*8 (A-H,O-Z) |
28 |
|
INTEGER myThid |
29 |
|
|
30 |
C Resolution parameters |
C Resolution parameters |
31 |
|
|
32 |
#include "atparam.h" |
#include "atparam.h" |
33 |
#include "atparam1.h" |
#include "atparam1.h" |
34 |
|
#include "EEPARAMS.h" |
35 |
#include "Lev_def.h" |
#include "Lev_def.h" |
36 |
C |
C |
37 |
PARAMETER ( NLON=IX, NLAT=IL, NLEV=KX, NGP=NLON*NLAT ) |
PARAMETER ( NLON=IX, NLAT=IL, NLEV=KX, NGP=NLON*NLAT ) |
103 |
C-- 2. Vertical diffusion and shallow convection |
C-- 2. Vertical diffusion and shallow convection |
104 |
C |
C |
105 |
DO J=1,NGP |
DO J=1,NGP |
106 |
NL1(J)=NLEVxy(J)-1 |
NL1(J)=NLEVxy(J,myThid)-1 |
107 |
ENDDO |
ENDDO |
108 |
C |
C |
109 |
RTVD = -1./(3600.*TRVDI) |
RTVD = -1./(3600.*TRVDI) |
110 |
RTSQ = -1./(3600.*TRSHC) |
RTSQ = -1./(3600.*TRSHC) |
111 |
C |
C |
112 |
DO J=1,NGP |
DO J=1,NGP |
113 |
IF ( NLEVxy(J) .GT. 0 ) THEN |
IF ( NLEVxy(J,myThid) .GT. 0 ) THEN |
114 |
RTST(J) = RTSQ*DSIG(NL1(J))/((DSIG(NLEVxy(J))+DSIG(NL1(J)))*CP) |
RTST(J) = RTSQ*DSIG(NL1(J))/((DSIG(NLEVxy(J,myThid))+DSIG(NL1(J)))*CP) |
115 |
RNL1(J) = -DSIG(NLEVxy(J))/DSIG(NL1(J)) |
RNL1(J) = -DSIG(NLEVxy(J,myThid))/DSIG(NL1(J)) |
116 |
ENDIF |
ENDIF |
117 |
ENDDO |
ENDDO |
118 |
C |
C |
120 |
C New writing of the Conditional stability |
C New writing of the Conditional stability |
121 |
C ---------------------------------------- |
C ---------------------------------------- |
122 |
DO J=1,NGP |
DO J=1,NGP |
123 |
IF ( NLEVxy(J) .GT. 0 ) THEN |
IF ( NLEVxy(J,myThid) .GT. 0 ) THEN |
124 |
DO k=NL1(J),NLEVxy(J) |
DO k=NL1(J),NLEVxy(J,myThid) |
125 |
Th(J,K)=Ta(J,K)*(Pground/Prefs(k))**(RD/CP) |
Th(J,K)=Ta(J,K)*(Pground/Prefs(k))**(RD/CP) |
126 |
ENDDO |
ENDDO |
127 |
ENDIF |
ENDIF |
128 |
ENDDO |
ENDDO |
129 |
C |
C |
130 |
DO J=1,NGP |
DO J=1,NGP |
131 |
IF ( NLEVxy(J) .GT. 0 ) THEN |
IF ( NLEVxy(J,myThid) .GT. 0 ) THEN |
132 |
dThdp=(Th(J,NL1(J))-Th(J,NLEVxy(J))) |
dThdp=(Th(J,NL1(J))-Th(J,NLEVxy(J,myThid))) |
133 |
& *((Prefw(NLEVxy(J))/Pground)**(RD/CP))*CP |
& *((Prefw(NLEVxy(J,myThid))/Pground)**(RD/CP))*CP |
134 |
stab(J)=dThdp+ALHC*(QSAT(J,NL1(J))-QSAT(J,NLEVxy(J))) |
stab(J)=dThdp+ALHC*(QSAT(J,NL1(J))-QSAT(J,NLEVxy(J,myThid))) |
135 |
ENDIF |
ENDIF |
136 |
ENDDO |
ENDDO |
137 |
121 continue |
121 continue |
138 |
C |
C |
139 |
DO J=1,NGP |
DO J=1,NGP |
140 |
C |
C |
141 |
cch DMSE = (SE(J,NLEVxy(J))-SE(J,NL1(J)))+ |
cch DMSE = (SE(J,NLEVxy(J,myThid))-SE(J,NL1(J)))+ |
142 |
cch & ALHC*(QA(J,NLEVxy(J))-QSAT(J,NL1(J))) |
cch & ALHC*(QA(J,NLEVxy(J,myThid))-QSAT(J,NL1(J))) |
143 |
DMSE = - stab(J) |
DMSE = - stab(J) |
144 |
IF ( NLEVxy(J) .GT. 0 ) THEN |
IF ( NLEVxy(J,myThid) .GT. 0 ) THEN |
145 |
QEQL = MIN(QA(J,NLEVxy(J)),RH(J,NL1(J))*QSAT(J,NLEVxy(J))) |
QEQL = MIN(QA(J,NLEVxy(J,myThid)),RH(J,NL1(J))*QSAT(J,NLEVxy(J,myThid))) |
146 |
cchdbg QEQL = MIN(QA(J,NLEVxy(J)),QA(J,NL1(J))) |
cchdbg QEQL = MIN(QA(J,NLEVxy(J,myThid)),QA(J,NL1(J))) |
147 |
ENDIF |
ENDIF |
148 |
C |
C |
149 |
IF (DMSE.GE.0.0) THEN |
IF (DMSE.GE.0.0) THEN |
167 |
C |
C |
168 |
C 2.1 Shallow convection |
C 2.1 Shallow convection |
169 |
C |
C |
170 |
IF ( NLEVxy(J) .GT. 0 ) THEN |
IF ( NLEVxy(J,myThid) .GT. 0 ) THEN |
171 |
TTENVD(J,NLEVxy(J)) = RTST(J)*DMSE |
TTENVD(J,NLEVxy(J,myThid)) = RTST(J)*DMSE |
172 |
TTENVD(J,NL1(J)) = RNL1(J)*TTENVD(J,NLEVxy(J)) |
TTENVD(J,NL1(J)) = RNL1(J)*TTENVD(J,NLEVxy(J,myThid)) |
173 |
QTENVD(J,NLEVxy(J)) = RTSQ*(QA(J,NLEVxy(J))-QEQL) |
QTENVD(J,NLEVxy(J,myThid)) = RTSQ*(QA(J,NLEVxy(J,myThid))-QEQL) |
174 |
QTENVD(J,NL1(J)) = RNL1(J)*QTENVD(J,NLEVxy(J)) |
QTENVD(J,NL1(J)) = RNL1(J)*QTENVD(J,NLEVxy(J,myThid)) |
175 |
ENDIF |
ENDIF |
176 |
C |
C |
177 |
ELSE |
ELSE |
178 |
C |
C |
179 |
C 2.2 Vertical diffusion of moisture |
C 2.2 Vertical diffusion of moisture |
180 |
|
|
181 |
QTENVD(J,NLEVxy(J)) = RTVD*(QA(J,NLEVxy(J))-QEQL) |
QTENVD(J,NLEVxy(J,myThid)) = RTVD*(QA(J,NLEVxy(J,myThid))-QEQL) |
182 |
QTENVD(J,NL1(J)) = RNL1(J)*QTENVD(J,NLEVxy(J)) |
QTENVD(J,NL1(J)) = RNL1(J)*QTENVD(J,NLEVxy(J,myThid)) |
183 |
C |
C |
184 |
ENDIF |
ENDIF |
185 |
C |
C |