/[MITgcm]/MITgcm/pkg/aim/phy_vdifsc.F
ViewVC logotype

Diff of /MITgcm/pkg/aim/phy_vdifsc.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by adcroft, Fri Feb 2 21:36:29 2001 UTC revision 1.3 by cnh, Tue May 29 19:28:53 2001 UTC
# Line 3  C $Name$ Line 3  C $Name$
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)
# Line 24  C- Line 25  C-
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 )
# Line 101  C Line 103  C
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
# Line 118  C Line 120  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
# Line 165  C ************************************** Line 167  C **************************************
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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22