/[MITgcm]/MITgcm/model/src/calc_common_factors.F
ViewVC logotype

Diff of /MITgcm/model/src/calc_common_factors.F

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

revision 1.4 by cnh, Wed May 27 21:01:47 1998 UTC revision 1.9 by cnh, Wed Oct 28 03:11:36 1998 UTC
# Line 5  C $Header$ Line 5  C $Header$
5  CStartOfInterFace  CStartOfInterFace
6        SUBROUTINE CALC_COMMON_FACTORS(        SUBROUTINE CALC_COMMON_FACTORS(
7       I        bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,       I        bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,
8       O        xA,yA,uTrans,vTrans,wTrans,maskC,maskUp,       O        xA,yA,uTrans,vTrans,rTrans,rVel,maskC,maskUp,
9       I        myThid)       I        myThid)
10    
11  C     /==========================================================\  C     /==========================================================\
# Line 18  C     | that are used at various points Line 18  C     | that are used at various points
18  C     | This reduces the amount of total work, total memory      |  C     | This reduces the amount of total work, total memory      |
19  C     | and therefore execution time and is generally a good     |  C     | and therefore execution time and is generally a good     |
20  C     | idea.                                                    |  C     | idea.                                                    |
 C     | We also think lower taxes are a good idea but we doubt   |  
 C     | whether we'll ever get them.                             |  
21  C     \==========================================================/  C     \==========================================================/
22        IMPLICIT NONE        IMPLICIT NONE
23    
# Line 37  C     xA      - Tracer cell face area no Line 35  C     xA      - Tracer cell face area no
35  C     yA      - Tracer cell face area normal to X  C     yA      - Tracer cell face area normal to X
36  C     uTrans  - Zonal volume transport through cell face  C     uTrans  - Zonal volume transport through cell face
37  C     vTrans  - Meridional volume transport through cell face  C     vTrans  - Meridional volume transport through cell face
38  C     wTrans  - Vertical volume transport through cell face  C     rTrans  - R-direction volume transport through cell face
39    C     rVel    - R-direction velocity at cell upper and lower faces
40  C     maskC   - land/water mask for tracer points  C     maskC   - land/water mask for tracer points
41  C     maskUp  - land/water mask for Wvel points (above tracer level)  C     maskUp  - land/water mask for Wvel points (above tracer level)
42  C     myThid - Instance number for this innvocation of CALC_COMMON_FACTORS  C     myThid - Instance number for this innvocation of CALC_COMMON_FACTORS
# Line 47  C Line 46  C
46        _RS yA    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS yA    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
47        _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
48        _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
49        _RL wTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
50          _RL rVel  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
51        _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
52        _RS maskUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS maskUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
53  C  C
# Line 60  C     kUp, kDown, kM1 - Index for layer Line 60  C     kUp, kDown, kM1 - Index for layer
60  C                         are switched with layer to be the appropriate index  C                         are switched with layer to be the appropriate index
61  C                         into fluxUD.  C                         into fluxUD.
62        INTEGER i,j        INTEGER i,j
63          LOGICAL TOP_LAYER
64    
65  C--    Calculate tracer cell face open areas        TOP_LAYER = K .EQ. 1
66    
67    C--   Calculate tracer cell face open areas
68        DO j=jMin,jMax        DO j=jMin,jMax
69         DO i=iMin,iMax         DO i=iMin,iMax
70          xA(i,j) = _dyG(i,j,bi,bj)*dzF(k)*_hFacW(i,j,k,bi,bj)          xA(i,j) = _dyG(i,j,bi,bj)
71          yA(i,j) = _dxG(i,j,bi,bj)*dzF(k)*_hFacS(i,j,k,bi,bj)       &   *drF(k)*_hFacW(i,j,k,bi,bj)
72            yA(i,j) = _dxG(i,j,bi,bj)
73         &   *drF(k)*_hFacS(i,j,k,bi,bj)
74         ENDDO         ENDDO
75        ENDDO        ENDDO
76    
77  C--    Calculate velocity field "volume transports" through  C--   Calculate velocity field "volume transports" through
78  C--    tracer cell faces.  C--   tracer cell faces.
79        DO j=jMin,jMax        DO j=jMin,jMax
80         DO i=iMin,iMax         DO i=iMin,iMax
81          uTrans(i,j) = uVel(i,j,k,bi,bj)*xA(i,j)          uTrans(i,j) = uVel(i,j,k,bi,bj)*xA(i,j)
# Line 78  C--    tracer cell faces. Line 83  C--    tracer cell faces.
83         ENDDO         ENDDO
84        ENDDO        ENDDO
85    
86  C--    Calculate vertical "volume transport" through  C--   Calculate vertical "volume transport" through
87  C--    tracer cell face *above* this level.  C--   tracer cell face *above* this level.
88          DO j=jMin,jMax
89           DO i=iMin,iMax
90            rTrans(i,j) =
91         &   uTrans(i,j)*recip_rkFac-uTrans(i+1,j)*recip_rkFac
92         &  +vTrans(i,j)*recip_rkFac-vTrans(i,j+1)*recip_rkFac
93         &  +rTrans(i,j)
94           ENDDO
95          ENDDO
96    
97    C--   Vertical velocity at upper face
98        DO j=jMin,jMax        DO j=jMin,jMax
99         DO i=iMin,iMax         DO i=iMin,iMax
100          wTrans(i,j) = uTrans(i,j)-uTrans(i+1,j)          rVel(i,j,kUp) = rTrans(i,j)/_rA(i,j,bi,bj)
      &               +vTrans(i,j)-vTrans(i,j+1)  
      &               +wTrans(i,j)  
101         ENDDO         ENDDO
102        ENDDO        ENDDO
103    
# Line 94  C--    Calculate mask for tracer cells Line 107  C--    Calculate mask for tracer cells
107          maskC(i,j) = 1.          maskC(i,j) = 1.
108          if (_hFacC(i,j,k,bi,bj).eq.0.) maskC(i,j)=0.          if (_hFacC(i,j,k,bi,bj).eq.0.) maskC(i,j)=0.
109          maskUp(i,j) = 1.          maskUp(i,j) = 1.
110          if (_hFacC(i,j,kM1,bi,bj).eq.0.) maskUp(i,j)=0.          if (_hFacC(i,j,k,bi,bj).eq.0. .or. TOP_LAYER )
111         &   maskUp(i,j)=0.
112         ENDDO         ENDDO
113        ENDDO        ENDDO
114    

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

  ViewVC Help
Powered by ViewVC 1.1.22