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

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

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

revision 1.15 by adcroft, Mon Mar 25 16:17:31 2002 UTC revision 1.20 by edhill, Thu Oct 9 04:19:18 2003 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    #ifdef ALLOW_OBCS
7    # include "OBCS_OPTIONS.h"
8    #endif
9    
10  CBOP  CBOP
11  C     !ROUTINE: EXTERNAL_FORCING_U  C     !ROUTINE: EXTERNAL_FORCING_U
# Line 44  C     !LOCAL VARIABLES: Line 48  C     !LOCAL VARIABLES:
48  C     == Local variables ==  C     == Local variables ==
49  C     Loop counters  C     Loop counters
50        INTEGER I, J        INTEGER I, J
51    C     number of surface interface layer
52          INTEGER kSurface
53  CEOP  CEOP
54    
55          if ( buoyancyRelation .eq. 'OCEANICP' ) then
56           kSurface = Nr
57          else
58           kSurface = 1
59          endif
60    
61  C--   Forcing term  C--   Forcing term
62  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
63        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
64         DO j=jMin,jMax         DO j=jMin,jMax
65          DO i=iMin,iMax          DO i=iMin,iMax
66           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
# Line 58  C     Add windstress momentum impulse in Line 70  C     Add windstress momentum impulse in
70         ENDDO         ENDDO
71        ENDIF        ENDIF
72    
73  #ifdef ALLOW_OBCS  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
74  C     IF (useOBCS) THEN        IF (useOBCS) THEN
75  C      CALL OBCS_SPONGE_U(         CALL OBCS_SPONGE_U(
76  C    I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin, iMax, jMin, jMax,bi,bj,kLev,
77  C    I           myCurrentTime,myThid)       I           myCurrentTime,myThid)
78  C     ENDIF        ENDIF
79  #endif  #endif
80    
81        RETURN        RETURN
# Line 109  C     !LOCAL VARIABLES: Line 121  C     !LOCAL VARIABLES:
121  C     == Local variables ==  C     == Local variables ==
122  C     Loop counters  C     Loop counters
123        INTEGER I, J        INTEGER I, J
124    C     number of surface interface layer
125          INTEGER kSurface
126  CEOP  CEOP
127    
128          if ( buoyancyRelation .eq. 'OCEANICP' ) then
129           kSurface = Nr
130          else
131           kSurface = 1
132          endif
133    
134  C--   Forcing term  C--   Forcing term
135  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
136        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
137         DO j=jMin,jMax         DO j=jMin,jMax
138          DO i=iMin,iMax          DO i=iMin,iMax
139           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)
# Line 123  C     Add windstress momentum impulse in Line 143  C     Add windstress momentum impulse in
143         ENDDO         ENDDO
144        ENDIF        ENDIF
145    
146  #ifdef ALLOW_OBCS  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
147  C     IF (useOBCS) THEN        IF (useOBCS) THEN
148  C      CALL OBCS_SPONGE_V(         CALL OBCS_SPONGE_V(
149  C    I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin, iMax, jMin, jMax,bi,bj,kLev,
150  C    I           myCurrentTime,myThid)       I           myCurrentTime,myThid)
151  C     ENDIF        ENDIF
152  #endif  #endif
153    
154        RETURN        RETURN
# Line 181  C     !LOCAL VARIABLES: Line 201  C     !LOCAL VARIABLES:
201  C     == Local variables ==  C     == Local variables ==
202  C     Loop counters  C     Loop counters
203        INTEGER I, J        INTEGER I, J
204    C     number of surface interface layer
205          INTEGER kSurface
206  CEOP  CEOP
207    
208          if ( buoyancyRelation .eq. 'OCEANICP' ) then
209           kSurface = Nr
210          else
211           kSurface = 1
212          endif
213    
214  C--   Forcing term  C--   Forcing term
215  C     Add heat in top-layer  C     Add heat in top-layer
216        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
217         DO j=jMin,jMax         DO j=jMin,jMax
218          DO i=iMin,iMax          DO i=iMin,iMax
219           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
# Line 201  C Penetrating SW radiation Line 229  C Penetrating SW radiation
229        call SWFRAC(        call SWFRAC(
230       I     two,minusone,       I     two,minusone,
231       I     myCurrentTime,myThid,       I     myCurrentTime,myThid,
232       O     swfracb)       U     swfracb)
233        DO j=jMin,jMax        DO j=jMin,jMax
234         DO i=iMin,iMax         DO i=iMin,iMax
235          gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)          gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)
236       &   -maskC(i,j,klev,bi,bj)*Qsw(i,j,bi,bj)*(swfracb(1)-swfracb(2))       &   -maskC(i,j,klev,bi,bj)*Qsw(i,j,bi,bj)*(swfracb(1)-swfracb(2))
237       &    *recip_Cp*recip_rhoNil*recip_drF(klev)       &    *recip_Cp*recip_rhoConst*recip_drF(klev)
238         ENDDO         ENDDO
239        ENDDO        ENDDO
240  #endif  #endif
241    
242  #ifdef ALLOW_OBCS  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
243  C     IF (useOBCS) THEN        IF (useOBCS) THEN
244  C      CALL OBCS_SPONGE_T(         CALL OBCS_SPONGE_T(
245  C    I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin, iMax, jMin, jMax,bi,bj,kLev,
246  C    I           myCurrentTime,myThid)       I           myCurrentTime,myThid)
247  C     ENDIF        ENDIF
248  #endif  #endif
249    
250        RETURN        RETURN
# Line 263  C     !LOCAL VARIABLES: Line 291  C     !LOCAL VARIABLES:
291  C     == Local variables ==  C     == Local variables ==
292  C     Loop counters  C     Loop counters
293        INTEGER I, J        INTEGER I, J
294    C     number of surface interface layer
295          INTEGER kSurface
296  CEOP  CEOP
297    
298          if ( buoyancyRelation .eq. 'OCEANICP' ) then
299           kSurface = Nr
300          else
301           kSurface = 1
302          endif
303    
304    
305  C--   Forcing term  C--   Forcing term
306  C     Add fresh-water in top-layer  C     Add fresh-water in top-layer
307        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
308         DO j=jMin,jMax         DO j=jMin,jMax
309          DO i=iMin,iMax          DO i=iMin,iMax
310           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
# Line 276  C     Add fresh-water in top-layer Line 313  C     Add fresh-water in top-layer
313         ENDDO         ENDDO
314        ENDIF        ENDIF
315    
316  #ifdef ALLOW_OBCS  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
317  C     IF (useOBCS) THEN        IF (useOBCS) THEN
318  C      CALL OBCS_SPONGE_S(         CALL OBCS_SPONGE_S(
319  C    I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin, iMax, jMin, jMax,bi,bj,kLev,
320  C    I           myCurrentTime,myThid)       I           myCurrentTime,myThid)
321  C     ENDIF        ENDIF
322  #endif  #endif
323    
324        RETURN        RETURN

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.22