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

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

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

revision 1.1 by dfer, Fri Jan 5 01:35:00 2007 UTC revision 1.2 by jmc, Sun Apr 26 19:34:25 2009 UTC
# Line 15  C     | o Compute a correction for the s Line 15  C     | o Compute a correction for the s
15  C     |   due to the linear free surface.  C     |   due to the linear free surface.
16  C     | o The source/sink results from W*Tr not summing to  C     | o The source/sink results from W*Tr not summing to
17  C     |   zero at the free surface.  C     |   zero at the free surface.
18  C     | o Here, we compute an area-weighted mean correction  C     | o Here, we compute an area-weighted mean correction
19  C     |   to be applied in external_forcing.F  C     |   to be applied in external_forcing.F
20  C     *==========================================================*  C     *==========================================================*
21  C     \ev  C     \ev
# Line 49  C     Local variables Line 49  C     Local variables
49  C     i,j,k,bi,bj  :: loop counter  C     i,j,k,bi,bj  :: loop counter
50        INTEGER i,j,bi,bj,ks        INTEGER i,j,bi,bj,ks
51        _RL wT_Mean, wS_Mean        _RL wT_Mean, wS_Mean
52        _RL wT_Tile, wS_Tile        _RL wT_Tile(nSx,nSy)
53          _RL wS_Tile(nSx,nSy)
54  CEOP  CEOP
55    
56  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
57    
58        TsurfCor=0.        TsurfCor= 0.
59        SsurfCor=0.        SsurfCor= 0.
60    
61        wT_Mean = 0.        wT_Mean = 0.
62        wS_Mean = 0.        wS_Mean = 0.
63    
64        DO bj=myByLo(myThid), myByHi(myThid)        DO bj=myByLo(myThid), myByHi(myThid)
65         DO bi=myBxLo(myThid), myBxHi(myThid)         DO bi=myBxLo(myThid), myBxHi(myThid)
66           wT_Tile = 0.           wT_Tile(bi,bj) = 0.
67           wS_Tile = 0.           wS_Tile(bi,bj) = 0.
68           DO j=1,sNy           DO j=1,sNy
69            DO i=1,sNx            DO i=1,sNx
70               ks = ksurfC(i,j,bi,bj)               ks = ksurfC(i,j,bi,bj)
71               IF (ks.LE.Nr) THEN               IF (ks.LE.Nr) THEN
72                  wT_Tile = wT_Tile                  wT_Tile(bi,bj) = wT_Tile(bi,bj)
73       &           + rA(i,j,bi,bj)*wVelFld(i,j,ks,bi,bj)       &           + rA(i,j,bi,bj)*wVelFld(i,j,ks,bi,bj)
74       &                          *thetaFld(i,j,ks,bi,bj)       &                          *thetaFld(i,j,ks,bi,bj)
75                  wS_Tile = wS_Tile                  wS_Tile(bi,bj) = wS_Tile(bi,bj)
76       &           + rA(i,j,bi,bj)*wVelFld(i,j,ks,bi,bj)       &           + rA(i,j,bi,bj)*wVelFld(i,j,ks,bi,bj)
77       &                          *saltFld(i,j,ks,bi,bj)       &                          *saltFld(i,j,ks,bi,bj)
78               ENDIF               ENDIF
79            ENDDO            ENDDO
80           ENDDO           ENDDO
81           wT_Mean = wT_Mean   + wT_Tile  c#ifdef ALLOW_AUTODIFF_TAMC
82           wS_Mean = wS_Mean   + wS_Tile  c        wT_Mean = wT_Mean + wT_Tile(bi,bj)
83    c        wS_Mean = wS_Mean + wS_Tile(bi,bj)
84    c#endif
85  C-     end bi,bj loop.  C-     end bi,bj loop.
86         ENDDO         ENDDO
87        ENDDO        ENDDO
88    
89  C-- Global diagnostic :  C-- Global diagnostic :
90        _GLOBAL_SUM_R8(wT_Mean,myThid)  c#ifdef ALLOW_AUTODIFF_TAMC
91        _GLOBAL_SUM_R8(wS_Mean,myThid)  c     _GLOBAL_SUM_RL(wT_Mean,myThid)
92        IF (globalArea.GT.0.) THEN  c     _GLOBAL_SUM_RL(wS_Mean,myThid)
93    c#else
94          CALL GLOBAL_SUM_TILE_RL( wT_Tile, wT_Mean, myThid )
95          CALL GLOBAL_SUM_TILE_RL( wS_Tile, wS_Mean, myThid )
96    c#endif
97    
98          IF ( globalArea.GT.0. ) THEN
99          _BEGIN_MASTER( myThid )          _BEGIN_MASTER( myThid )
100          TsurfCor = wT_Mean / globalArea          TsurfCor = wT_Mean / globalArea
101          SsurfCor = wS_Mean / globalArea          SsurfCor = wS_Mean / globalArea

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

  ViewVC Help
Powered by ViewVC 1.1.22