/[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.13 by cnh, Wed Sep 26 18:09:14 2001 UTC revision 1.21 by jmc, Sat Dec 6 00:08:35 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. 'AMTMOSPHERIC' ) then
56           kSurface = 0
57          elseif ( buoyancyRelation .eq. 'OCEANICP' ) then
58           kSurface = Nr
59          else
60           kSurface = 1
61          endif
62    
63  C--   Forcing term  C--   Forcing term
64    #ifdef ALLOW_AIM
65          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_U(
66         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
67         &                      myCurrentTime, myThid )
68    #endif /* ALLOW_AIM */
69    
70  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
71        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
72         DO j=jMin,jMax         DO j=jMin,jMax
73          DO i=iMin,iMax          DO i=iMin,iMax
74           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 78  C     Add windstress momentum impulse in
78         ENDDO         ENDDO
79        ENDIF        ENDIF
80    
81    #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
82          IF (useOBCS) THEN
83           CALL OBCS_SPONGE_U(
84         I           iMin, iMax, jMin, jMax,bi,bj,kLev,
85         I           myCurrentTime,myThid)
86          ENDIF
87    #endif
88    
89        RETURN        RETURN
90        END        END
91  CBOP  CBOP
# Line 101  C     !LOCAL VARIABLES: Line 129  C     !LOCAL VARIABLES:
129  C     == Local variables ==  C     == Local variables ==
130  C     Loop counters  C     Loop counters
131        INTEGER I, J        INTEGER I, J
132    C     number of surface interface layer
133          INTEGER kSurface
134  CEOP  CEOP
135    
136          if ( buoyancyRelation .eq. 'AMTMOSPHERIC' ) then
137           kSurface = 0
138          elseif ( buoyancyRelation .eq. 'OCEANICP' ) then
139           kSurface = Nr
140          else
141           kSurface = 1
142          endif
143    
144  C--   Forcing term  C--   Forcing term
145    #ifdef ALLOW_AIM
146          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_V(
147         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
148         &                      myCurrentTime, myThid )
149    #endif /* ALLOW_AIM */
150    
151  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
152        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
153         DO j=jMin,jMax         DO j=jMin,jMax
154          DO i=iMin,iMax          DO i=iMin,iMax
155           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 115  C     Add windstress momentum impulse in Line 159  C     Add windstress momentum impulse in
159         ENDDO         ENDDO
160        ENDIF        ENDIF
161    
162    #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
163          IF (useOBCS) THEN
164           CALL OBCS_SPONGE_V(
165         I           iMin, iMax, jMin, jMax,bi,bj,kLev,
166         I           myCurrentTime,myThid)
167          ENDIF
168    #endif
169    
170        RETURN        RETURN
171        END        END
172  CBOP  CBOP
# Line 165  C     !LOCAL VARIABLES: Line 217  C     !LOCAL VARIABLES:
217  C     == Local variables ==  C     == Local variables ==
218  C     Loop counters  C     Loop counters
219        INTEGER I, J        INTEGER I, J
220    C     number of surface interface layer
221          INTEGER kSurface
222  CEOP  CEOP
223    
224          if ( buoyancyRelation .eq. 'AMTMOSPHERIC' ) then
225           kSurface = 0
226          elseif ( buoyancyRelation .eq. 'OCEANICP' ) then
227           kSurface = Nr
228          else
229           kSurface = 1
230          endif
231    
232  C--   Forcing term  C--   Forcing term
233    #ifdef ALLOW_AIM
234          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_T(
235         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
236         &                      myCurrentTime, myThid )
237    #endif /* ALLOW_AIM */
238    
239  C     Add heat in top-layer  C     Add heat in top-layer
240        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
241         DO j=jMin,jMax         DO j=jMin,jMax
242          DO i=iMin,iMax          DO i=iMin,iMax
243           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 185  C Penetrating SW radiation Line 253  C Penetrating SW radiation
253        call SWFRAC(        call SWFRAC(
254       I     two,minusone,       I     two,minusone,
255       I     myCurrentTime,myThid,       I     myCurrentTime,myThid,
256       O     swfracb)       U     swfracb)
257        DO j=jMin,jMax        DO j=jMin,jMax
258         DO i=iMin,iMax         DO i=iMin,iMax
259          gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)          gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)
260       &   -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))
261       &    *recip_Cp*recip_rhoNil*recip_drF(klev)       &    *recip_Cp*recip_rhoConst*recip_drF(klev)
262         ENDDO         ENDDO
263        ENDDO        ENDDO
264  #endif  #endif
265    
266    #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
267          IF (useOBCS) THEN
268           CALL OBCS_SPONGE_T(
269         I           iMin, iMax, jMin, jMax,bi,bj,kLev,
270         I           myCurrentTime,myThid)
271          ENDIF
272    #endif
273    
274        RETURN        RETURN
275        END        END
276  CBOP  CBOP
# Line 238  C     !LOCAL VARIABLES: Line 315  C     !LOCAL VARIABLES:
315  C     == Local variables ==  C     == Local variables ==
316  C     Loop counters  C     Loop counters
317        INTEGER I, J        INTEGER I, J
318    C     number of surface interface layer
319          INTEGER kSurface
320  CEOP  CEOP
321    
322          if ( buoyancyRelation .eq. 'AMTMOSPHERIC' ) then
323           kSurface = 0
324          elseif ( buoyancyRelation .eq. 'OCEANICP' ) then
325           kSurface = Nr
326          else
327           kSurface = 1
328          endif
329    
330    
331  C--   Forcing term  C--   Forcing term
332    #ifdef ALLOW_AIM
333          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_S(
334         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
335         &                      myCurrentTime, myThid )
336    #endif /* ALLOW_AIM */
337    
338  C     Add fresh-water in top-layer  C     Add fresh-water in top-layer
339        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
340         DO j=jMin,jMax         DO j=jMin,jMax
341          DO i=iMin,iMax          DO i=iMin,iMax
342           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 251  C     Add fresh-water in top-layer Line 345  C     Add fresh-water in top-layer
345         ENDDO         ENDDO
346        ENDIF        ENDIF
347    
348    #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))
349          IF (useOBCS) THEN
350           CALL OBCS_SPONGE_S(
351         I           iMin, iMax, jMin, jMax,bi,bj,kLev,
352         I           myCurrentTime,myThid)
353          ENDIF
354    #endif
355    
356        RETURN        RETURN
357        END        END

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.21

  ViewVC Help
Powered by ViewVC 1.1.22