/[MITgcm]/MITgcm/pkg/aim_v23/aim_aim2dyn.F
ViewVC logotype

Diff of /MITgcm/pkg/aim_v23/aim_aim2dyn.F

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

revision 1.4 by jmc, Thu Mar 11 14:33:19 2004 UTC revision 1.5 by jmc, Thu Jul 8 15:51:19 2004 UTC
# Line 32  C-- size for MITgcm & Physics package : Line 32  C-- size for MITgcm & Physics package :
32  #include "EEPARAMS.h"  #include "EEPARAMS.h"
33  #include "PARAMS.h"  #include "PARAMS.h"
34  #include "GRID.h"  #include "GRID.h"
35    #include "SURFACE.h"
36  #include "DYNVARS.h"  #include "DYNVARS.h"
37    
38  #include "AIM2DYN.h"  #include "AIM2DYN.h"
# Line 57  C     conv_T2theta :: conversion factor Line 58  C     conv_T2theta :: conversion factor
58    
59  C--   Physics tendency term  C--   Physics tendency term
60    
61    C-    Planetary boundary layer drag coeff.
62          DO j=1,sNy
63            DO i=1,sNx
64             I2 = i+(j-1)*sNx
65             aim_drag(i,j,bi,bj) = DRAG(I2,0,myThid)
66            ENDDO
67          ENDDO
68    
69        DO k=1,Nr        DO k=1,Nr
70           Katm = _KD2KA( k )
71         conv_T2theta = (atm_po/rC(k))**atm_kappa         conv_T2theta = (atm_po/rC(k))**atm_kappa
72    
73    C-     temp. & water vap. tendencies (ignoring partial cell factor)
74         DO j=1,sNy         DO j=1,sNy
75          DO i=1,sNx          DO i=1,sNx
76           I2 = i+(j-1)*sNx           I2 = i+(j-1)*sNx
77           Katm = _KD2KA( k )  C        temperature tendency (except LSC, added later)
78  C        Planetary boundary layer drag coeff.           aim_dTdt(i,j,k,bi,bj) =   TT_CNV(I2,Katm,myThid)
          aim_drag(i,j,bi,bj) = DRAG(I2,0,myThid)  
   
 C        Net temperature tendency  
          aim_dTdt(i,j,k,bi,bj) =   TT_LSC(I2,Katm,myThid)  
      &                         + ( TT_CNV(I2,Katm,myThid)  
79       &                            +TT_PBL(I2,Katm,myThid)       &                            +TT_PBL(I2,Katm,myThid)
80       &                            +TT_RSW(I2,Katm,myThid)       &                            +TT_RSW(I2,Katm,myThid)
81       &                            +TT_RLW(I2,Katm,myThid)       &                            +TT_RLW(I2,Katm,myThid)
82       &                           )*recip_hFacC(i,j,k,bi,bj)  C        water vapor tendency (except LSC, added later)
83           aim_dTdt(i,j,k,bi,bj) = aim_dTdt(i,j,k,bi,bj)*conv_T2theta           aim_dSdt(i,j,k,bi,bj) =   QT_CNV(I2,Katm,myThid)
   
 C        Net water vapor tendency  
          aim_dSdt(i,j,k,bi,bj) =   QT_LSC(I2,Katm,myThid)  
      &                         + ( QT_CNV(I2,Katm,myThid)  
84       &                            +QT_PBL(I2,Katm,myThid)       &                            +QT_PBL(I2,Katm,myThid)
85       &                           )*recip_hFacC(i,j,k,bi,bj)          ENDDO
86           ENDDO
87    
88    C-     Account for partial cell filling:
89    #ifdef NONLIN_FRSURF
90           IF ( staggerTimeStep .AND. nonlinFreeSurf.GT.0 ) THEN
91            IF ( select_rStar.GT.0 ) THEN
92             DO j=1,sNy
93              DO i=1,sNx
94               aim_dTdt(i,j,k,bi,bj) = aim_dTdt(i,j,k,bi,bj)
95         &                         *recip_hFacC(i,j,k,bi,bj)
96         &                             /rStarExpC(i,j,bi,bj)
97               aim_dSdt(i,j,k,bi,bj) = aim_dSdt(i,j,k,bi,bj)
98         &                         *recip_hFacC(i,j,k,bi,bj)
99         &                             /rStarExpC(i,j,bi,bj)
100              ENDDO
101             ENDDO
102            ELSE
103             DO j=1,sNy
104             DO i=1,sNx
105              IF ( k.EQ.ksurfC(i,j,bi,bj) ) THEN
106               aim_dTdt(i,j,k,bi,bj) = aim_dTdt(i,j,k,bi,bj)
107         &                            /hFac_surfC(i,j,bi,bj)
108               aim_dSdt(i,j,k,bi,bj) = aim_dSdt(i,j,k,bi,bj)
109         &                            /hFac_surfC(i,j,bi,bj)
110              ELSE
111               aim_dTdt(i,j,k,bi,bj) = aim_dTdt(i,j,k,bi,bj)
112         &                         *recip_hFacC(i,j,k,bi,bj)
113               aim_dSdt(i,j,k,bi,bj) = aim_dSdt(i,j,k,bi,bj)
114         &                         *recip_hFacC(i,j,k,bi,bj)
115              ENDIF
116             ENDDO
117             ENDDO
118            ENDIF
119           ELSE
120    #else /* ndef NONLIN_FRSURF */
121           IF (.TRUE.) THEN
122    #endif /* NONLIN_FRSURF */
123            DO j=1,sNy
124             DO i=1,sNx
125              aim_dTdt(i,j,k,bi,bj) =  aim_dTdt(i,j,k,bi,bj)
126         &                         *recip_hFacC(i,j,k,bi,bj)
127              aim_dSdt(i,j,k,bi,bj) =  aim_dSdt(i,j,k,bi,bj)
128         &                         *recip_hFacC(i,j,k,bi,bj)
129             ENDDO
130            ENDDO
131           ENDIF
132    
133    C-     Net tendencies : Add LSC term & comvert to Pot.Temp.:
134           DO j=1,sNy
135            DO i=1,sNx
136             I2 = i+(j-1)*sNx
137             aim_dTdt(i,j,k,bi,bj) = ( aim_dTdt(i,j,k,bi,bj)
138         &                            +TT_LSC(I2,Katm,myThid)
139         &                           )*conv_T2theta
140             aim_dSdt(i,j,k,bi,bj) =   aim_dSdt(i,j,k,bi,bj)
141         &                            +QT_LSC(I2,Katm,myThid)
142          ENDDO          ENDDO
143         ENDDO         ENDDO
144    
145    C--- end of k loop.
146        ENDDO        ENDDO
147    
148  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22