/[MITgcm]/MITgcm/verification/hs94.128x64x5/code/external_forcing.F
ViewVC logotype

Diff of /MITgcm/verification/hs94.128x64x5/code/external_forcing.F

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

revision 1.3 by cnh, Sun Feb 4 14:38:52 2001 UTC revision 1.4 by adcroft, Tue May 29 14:01:57 2001 UTC
# Line 48  C     _RL decayFac Line 48  C     _RL decayFac
48  C     _RL velDragHeightFac  C     _RL velDragHeightFac
49        _RL termP,kV,kF        _RL termP,kV,kF
50    
51    C--   Forcing term(s)
52        kF=1./86400.        kF=1./86400.
53        DO J=jMin,jMax        DO J=jMin,jMax
54         DO I=iMin,iMax         DO I=iMin,iMax
# Line 55  C     _RL velDragHeightFac Line 56  C     _RL velDragHeightFac
56  C        termP=0.5*( rF(kLev) + min( rF(kLev+1) ,  C        termP=0.5*( rF(kLev) + min( rF(kLev+1) ,
57  C    &           min(H(I,J,bi,bj),H(I,J-1,bi,bj))            ) )  C    &           min(H(I,J,bi,bj),H(I,J-1,bi,bj))            ) )
58           termP=0.5*( rF(kLev) + rF(kLev+1) )           termP=0.5*( rF(kLev) + rF(kLev+1) )
59  C        termP=rC(kLev)           kV=kF*MAX(0., (termP*recip_Rcol(I,J,bi,bj)-0.7)/(1.-0.7) )
          kV=kF*MAX(0., (termP*recip_H(I,J,bi,bj)-0.7)/(1.-0.7) )  
60           gU(i,j,kLev,bi,bj)=gU(i,j,kLev,bi,bj)           gU(i,j,kLev,bi,bj)=gU(i,j,kLev,bi,bj)
61       &                      -kV*uVel(i,j,kLev,bi,bj)       &                      -kV*uVel(i,j,kLev,bi,bj)
62          ENDIF          ENDIF
# Line 110  C     _RL decayFac Line 110  C     _RL decayFac
110  C     _RL velDragHeightFac  C     _RL velDragHeightFac
111        _RL termP,kV,kF        _RL termP,kV,kF
112    
113    C--   Forcing term(s)
114        kF=1./86400.        kF=1./86400.
115        DO J=jMin,jMax        DO J=jMin,jMax
116         DO I=iMin,iMax         DO I=iMin,iMax
# Line 117  C     _RL velDragHeightFac Line 118  C     _RL velDragHeightFac
118  C        termP=0.5*( rF(kLev) + min( rF(kLev+1) ,  C        termP=0.5*( rF(kLev) + min( rF(kLev+1) ,
119  C    &           min(H(I,J,bi,bj),H(I,J-1,bi,bj))            ) )  C    &           min(H(I,J,bi,bj),H(I,J-1,bi,bj))            ) )
120           termP=0.5*( rF(kLev) + rF(kLev+1) )           termP=0.5*( rF(kLev) + rF(kLev+1) )
121  C        termP=rC(kLev)           kV=kF*MAX(0., (termP*recip_Rcol(I,J,bi,bj)-0.7)/(1.-0.7) )
          kV=kF*MAX(0., (termP*recip_H(I,J,bi,bj)-0.7)/(1.-0.7) )  
122           gV(i,j,kLev,bi,bj)=gV(i,j,kLev,bi,bj)           gV(i,j,kLev,bi,bj)=gV(i,j,kLev,bi,bj)
123       &                      -kV*vVel(i,j,kLev,bi,bj)       &                      -kV*vVel(i,j,kLev,bi,bj)
124          ENDIF          ENDIF
# Line 130  C        termP=rC(kLev) Line 130  C        termP=rC(kLev)
130  CStartOfInterface  CStartOfInterface
131        SUBROUTINE EXTERNAL_FORCING_T(        SUBROUTINE EXTERNAL_FORCING_T(
132       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin, iMax, jMin, jMax,bi,bj,kLev,
      I           maskC,  
133       I           myCurrentTime,myThid)       I           myCurrentTime,myThid)
134  C     /==========================================================\  C     /==========================================================\
135  C     | S/R EXTERNAL_FORCING_T                                   |  C     | S/R EXTERNAL_FORCING_T                                   |
# Line 155  C     iMax Line 154  C     iMax
154  C     jMin  C     jMin
155  C     jMax  C     jMax
156  C     kLev  C     kLev
       _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
157        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
158        _RL myCurrentTime        _RL myCurrentTime
159        INTEGER myThid        INTEGER myThid
# Line 166  C     Loop counters Line 164  C     Loop counters
164        INTEGER I, J        INTEGER I, J
165        _RL thetaLim,kT,ka,ks,term1,term2,thetaEq,termP,rSurf        _RL thetaLim,kT,ka,ks,term1,term2,thetaEq,termP,rSurf
166    
167    C--   Forcing term(s)
168        rSurf=1.E5        rSurf=1.E5
169        ka=1./(40.*86400.)        ka=1./(40.*86400.)
170        ks=1./(4. *86400.)        ks=1./(4. *86400.)
# Line 173  C     Loop counters Line 172  C     Loop counters
172         term1=60.*(sin(yC(1,J,bi,bj)*deg2rad)**2)         term1=60.*(sin(yC(1,J,bi,bj)*deg2rad)**2)
173  C      termP=0.5*( rF(kLev) + min( rF(kLev+1) , H(I,J,bi,bj) ) )  C      termP=0.5*( rF(kLev) + min( rF(kLev+1) , H(I,J,bi,bj) ) )
174         termP=0.5*( rF(kLev) + rF(kLev+1) )         termP=0.5*( rF(kLev) + rF(kLev+1) )
 C      termP=rC(kLev)  
175         term2=10.*log(termP/rSurf)         term2=10.*log(termP/rSurf)
176       &          *(cos(yC(1,J,bi,bj)*deg2rad)**2)       &          *(cos(yC(1,J,bi,bj)*deg2rad)**2)
177         thetaLim = 200. / ((termP/rSurf)**(2./7.))         thetaLim = 200. / ((termP/rSurf)**(2./7.))
# Line 181  C      termP=rC(kLev) Line 179  C      termP=rC(kLev)
179         thetaEq=MAX(thetaLim,thetaEq)         thetaEq=MAX(thetaLim,thetaEq)
180         DO I=iMin,iMax         DO I=iMin,iMax
181          kT=ka+(ks-ka)          kT=ka+(ks-ka)
182       &    *MAX(0., (termP*recip_H(I,J,bi,bj)-0.7)/(1.-0.7) )       &    *MAX(0., (termP*recip_Rcol(I,J,bi,bj)-0.7)/(1.-0.7) )
183       &    *COS((yC(1,J,bi,bj)*deg2rad))**4       &    *COS((yC(1,J,bi,bj)*deg2rad))**4
184           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
185       &        - kT*( theta(I,J,kLev,bi,bj)-thetaEq )       &        - kT*( theta(I,J,kLev,bi,bj)-thetaEq )
186       &            *maskC(i,j)       &            *maskC(i,j,kLev,bi,bj)
187         ENDDO         ENDDO
188        ENDDO        ENDDO
189    
# Line 194  C      termP=rC(kLev) Line 192  C      termP=rC(kLev)
192  CStartOfInterface  CStartOfInterface
193        SUBROUTINE EXTERNAL_FORCING_S(        SUBROUTINE EXTERNAL_FORCING_S(
194       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin, iMax, jMin, jMax,bi,bj,kLev,
      I           maskC,  
195       I           myCurrentTime,myThid)       I           myCurrentTime,myThid)
196  C     /==========================================================\  C     /==========================================================\
197  C     | S/R EXTERNAL_FORCING_S                                   |  C     | S/R EXTERNAL_FORCING_S                                   |
# Line 219  C     iMax Line 216  C     iMax
216  C     jMin  C     jMin
217  C     jMax  C     jMax
218  C     kLev  C     kLev
       _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
219        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
220        _RL myCurrentTime        _RL myCurrentTime
221        INTEGER myThid        INTEGER myThid
# Line 229  C     == Local variables == Line 225  C     == Local variables ==
225  C     Loop counters  C     Loop counters
226        INTEGER I, J        INTEGER I, J
227    
228    C--   Forcing term(s)
229    
230        RETURN        RETURN
231        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22