/[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.6 by adcroft, Wed Jun 6 16:59:07 2001 UTC revision 1.7 by jmc, Wed May 1 00:56:11 2002 UTC
# Line 38  CEndOfInterface Line 38  CEndOfInterface
38  C     == Local variables ==  C     == Local variables ==
39  C     Loop counters  C     Loop counters
40        INTEGER I, J        INTEGER I, J
41  C     _RL uKf        _RL recip_P0g,termP,kV,kF,sigma_b
 C     _RL levelOfGround  
 C     _RL criticalLevel  
 C     _RL levelOfVelPoint  
 C     _RL dist1  
 C     _RL dist2  
 C     _RL decayFac  
 C     _RL velDragHeightFac  
       _RL termP,kV,kF  
42    
43  C--   Forcing term(s)  C--   Forcing term(s)
44        kF=1./86400.        kF=1. _d 0/86400. _d 0
45        DO J=jMin,jMax        sigma_b = 0.7 _d 0
46         DO I=iMin,iMax  c     DO J=jMin,jMax
47          IF ( HFacW(i,j,kLev,bi,bj) .GT. 0. ) THEN  c      DO I=iMin,iMax
48  C        termP=0.5*( rF(kLev) + min( rF(kLev+1) ,        DO J=1,sNy
49  C    &           min(H(I,J,bi,bj),H(I,J-1,bi,bj))            ) )         DO I=1,sNx+1
50           termP=0.5 _d 0*( rF(kLev) + rF(kLev+1) )          IF ( hFacW(i,j,kLev,bi,bj) .GT. 0. ) THEN
51           kV=kF*MAX(0. _d 0,           recip_P0g=MAX(recip_Rcol(I,J,bi,bj),recip_Rcol(I-1,J,bi,bj))
52       &   (termP*recip_Rcol(I,J,bi,bj)-0.7 _d 0)/(1. _d 0-0.7 _d 0) )           termP=0.5 _d 0*( MIN(rF(kLev)*recip_P0g,1. _d 0)
53         &                   +rF(kLev+1)*recip_P0g )
54             kV=kF*MAX( 0. _d 0, (termP-sigma_b)/(1. _d 0-sigma_b) )
55           gU(i,j,kLev,bi,bj)=gU(i,j,kLev,bi,bj)           gU(i,j,kLev,bi,bj)=gU(i,j,kLev,bi,bj)
56       &                      -kV*uVel(i,j,kLev,bi,bj)       &                      -kV*uVel(i,j,kLev,bi,bj)
57          ENDIF          ENDIF
# Line 101  CEndOfInterface Line 95  CEndOfInterface
95  C     == Local variables ==  C     == Local variables ==
96  C     Loop counters  C     Loop counters
97        INTEGER I, J        INTEGER I, J
98  C     _RL uKf        _RL recip_P0g,termP,kV,kF,sigma_b
 C     _RL levelOfGround  
 C     _RL criticalLevel  
 C     _RL levelOfVelPoint  
 C     _RL dist1  
 C     _RL dist2  
 C     _RL decayFac  
 C     _RL velDragHeightFac  
       _RL termP,kV,kF  
99    
100  C--   Forcing term(s)  C--   Forcing term(s)
101        kF=1./86400.        kF=1. _d 0/86400. _d 0
102        DO J=jMin,jMax        sigma_b = 0.7 _d 0
103         DO I=iMin,iMax  c     DO J=jMin,jMax
104          IF ( HFacS(i,j,kLev,bi,bj) .GT. 0. ) THEN  c      DO I=iMin,iMax
105  C        termP=0.5*( rF(kLev) + min( rF(kLev+1) ,        DO J=1,sNy+1
106  C    &           min(H(I,J,bi,bj),H(I,J-1,bi,bj))            ) )         DO I=1,sNx
107           termP=0.5 _d 0*( rF(kLev) + rF(kLev+1) )          IF ( hFacS(i,j,kLev,bi,bj) .GT. 0. ) THEN
108           kV=kF*MAX(0. _d 0,           recip_P0g=MAX(recip_Rcol(I,J,bi,bj),recip_Rcol(I,J-1,bi,bj))
109       &   (termP*recip_Rcol(I,J,bi,bj)-0.7 _d 0)/(1. _d 0-0.7 _d 0) )           termP=0.5 _d 0*( MIN(rF(kLev)*recip_P0g,1. _d 0)
110         &                   +rF(kLev+1)*recip_P0g )
111             kV=kF*MAX( 0. _d 0, (termP-sigma_b)/(1. _d 0-sigma_b) )
112           gV(i,j,kLev,bi,bj)=gV(i,j,kLev,bi,bj)           gV(i,j,kLev,bi,bj)=gV(i,j,kLev,bi,bj)
113       &                      -kV*vVel(i,j,kLev,bi,bj)       &                      -kV*vVel(i,j,kLev,bi,bj)
114          ENDIF          ENDIF
# Line 164  CEndOfInterface Line 152  CEndOfInterface
152  C     == Local variables ==  C     == Local variables ==
153  C     Loop counters  C     Loop counters
154        INTEGER I, J        INTEGER I, J
155        _RL thetaLim,kT,ka,ks,term1,term2,thetaEq,termP,rSurf        _RL thetaLim,kT,ka,ks,sigma_b,term1,term2,thetaEq,termP
156    
157  C--   Forcing term(s)  C--   Forcing term(s)
       rSurf=1. _d 05  
158        ka=1. _d 0/(40. _d 0*86400. _d 0)        ka=1. _d 0/(40. _d 0*86400. _d 0)
159        ks=1. _d 0/(4. _d 0 *86400. _d 0)        ks=1. _d 0/(4. _d 0 *86400. _d 0)
160          sigma_b = 0.7 _d 0
161        DO J=jMin,jMax        DO J=jMin,jMax
        term1=60. _d 0*(sin(yC(1,J,bi,bj)*deg2rad)**2)  
 C      termP=0.5*( rF(kLev) + min( rF(kLev+1) , H(I,J,bi,bj) ) )  
        termP=0.5 _d 0*( rF(kLev) + rF(kLev+1) )  
        term2=10. _d 0*log(termP/rSurf)  
      &          *(cos(yC(1,J,bi,bj)*deg2rad)**2)  
        thetaLim = 200. _d 0/((termP/rSurf)**(2. _d 0/7. _d 0))  
        thetaEq=315. _d 0-term1-term2  
        thetaEq=MAX(thetaLim,thetaEq)  
162         DO I=iMin,iMax         DO I=iMin,iMax
163          kT=ka+(ks-ka)           term1=60. _d 0*(sin(yC(I,J,bi,bj)*deg2rad)**2)
164       &    *MAX(0. _d 0,           termP=0.5 _d 0*( rF(kLev) + rF(kLev+1) )
165       &    (termP*recip_Rcol(I,J,bi,bj)-0.7 _d 0)/(1. _d 0-0.7 _d 0) )           term2=10. _d 0*log(termP/atm_po)
166       &    *COS((yC(1,J,bi,bj)*deg2rad))**4       &            *(cos(yC(I,J,bi,bj)*deg2rad)**2)
167             thetaLim = 200. _d 0/ ((termP/atm_po)**atm_kappa)
168             thetaEq=315. _d 0-term1-term2
169             thetaEq=MAX(thetaLim,thetaEq)
170             termP=0.5 _d 0*( MIN(rF(kLev),Ro_surf(I,J,bi,bj))+rF(kLev+1) )
171             kT=ka+(ks-ka)
172         &     *MAX(0. _d 0,
173         &       (termP*recip_Rcol(I,J,bi,bj)-sigma_b)/(1. _d 0-sigma_b) )
174         &     *COS((yC(I,J,bi,bj)*deg2rad))**4
175           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
176       &        - kT*( theta(I,J,kLev,bi,bj)-thetaEq )       &        - kT*( theta(I,J,kLev,bi,bj)-thetaEq )
177       &            *maskC(i,j,kLev,bi,bj)       &            *maskC(i,j,kLev,bi,bj)

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22