/[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.28 by jmc, Tue Oct 19 02:39:58 2004 UTC revision 1.37 by mlosch, Tue Feb 7 11:47:48 2006 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "PACKAGES_CONFIG.h"  #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
 #ifdef ALLOW_OBCS  
 # include "OBCS_OPTIONS.h"  
 #endif  
6    
7  CBOP  CBOP
8  C     !ROUTINE: EXTERNAL_FORCING_U  C     !ROUTINE: EXTERNAL_FORCING_U
9  C     !INTERFACE:  C     !INTERFACE:
10        SUBROUTINE EXTERNAL_FORCING_U(        SUBROUTINE EXTERNAL_FORCING_U(
11       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
12       I           myCurrentTime,myThid)       I           myTime, myThid )
13  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
14  C     *==========================================================*  C     *==========================================================*
15  C     | S/R EXTERNAL_FORCING_U                                      C     | S/R EXTERNAL_FORCING_U
16  C     | o Contains problem specific forcing for zonal velocity.    C     | o Contains problem specific forcing for zonal velocity.
17  C     *==========================================================*  C     *==========================================================*
18  C     | Adds terms to gU for forcing by external sources            C     | Adds terms to gU for forcing by external sources
19  C     | e.g. wind stress, bottom friction etc..................    C     | e.g. wind stress, bottom friction etc ...
20  C     *==========================================================*  C     *==========================================================*
21  C     \ev  C     \ev
22    
# Line 35  C     == Global data == Line 32  C     == Global data ==
32    
33  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
34  C     == Routine arguments ==  C     == Routine arguments ==
35  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
36  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
37  C     jMin  C     bi,bj     :: Current tile indices
38  C     jMax  C     kLev      :: Current vertical level index
39  C     kLev  C     myTime    :: Current time in simulation
40    C     myThid    :: Thread Id number
41        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
42        _RL myCurrentTime        _RL myTime
43        INTEGER myThid        INTEGER myThid
44    
45  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
46  C     == Local variables ==  C     == Local variables ==
47  C     Loop counters  C     i,j       :: Loop counters
48        INTEGER I, J  C     kSurface  :: index of surface layer
49  C     number of surface interface layer        INTEGER i, j
50        INTEGER kSurface        INTEGER kSurface
51  CEOP  CEOP
52    
# Line 64  C--   Forcing term Line 62  C--   Forcing term
62  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
63        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_U(        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_U(
64       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
65       &                      myCurrentTime, myThid )       &                      myTime, myThid )
66  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
67  C AMM  
68  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
69        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_U(        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_U(
70       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
71       &                      myCurrentTime, myThid )       &                      myTime, myThid )
72  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
 C AMM  
73    
74  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
75        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
76         DO j=jMin,jMax  c      DO j=1,sNy
77          DO i=iMin,iMax  C-jmc: Without CD-scheme, this is OK ; but with CD-scheme, needs to cover [0:sNy+1]
78           DO j=0,sNy+1
79            DO i=1,sNx+1
80           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
81       &   +foFacMom*surfaceForcingU(i,j,bi,bj)       &   +foFacMom*surfaceForcingU(i,j,bi,bj)
82       &   *recip_drF(kLev)*recip_hFacW(i,j,kLev,bi,bj)       &   *recip_drF(kLev)*recip_hFacW(i,j,kLev,bi,bj)
# Line 85  C     Add windstress momentum impulse in Line 84  C     Add windstress momentum impulse in
84         ENDDO         ENDDO
85        ENDIF        ENDIF
86    
87  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #if (defined (ALLOW_TAU_EDDY))
88           CALL TAUEDDY_EXTERNAL_FORCING_U(
89         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
90         I           myTime, myThid )
91    #endif
92    
93    #ifdef ALLOW_OBCS
94        IF (useOBCS) THEN        IF (useOBCS) THEN
95         CALL OBCS_SPONGE_U(         CALL OBCS_SPONGE_U(
96       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
97       I           myCurrentTime,myThid)       I           myTime, myThid )
98        ENDIF        ENDIF
99  #endif  #endif
100    
101        RETURN        RETURN
102        END        END
103    
104    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
105  CBOP  CBOP
106  C     !ROUTINE: EXTERNAL_FORCING_V  C     !ROUTINE: EXTERNAL_FORCING_V
107  C     !INTERFACE:  C     !INTERFACE:
108        SUBROUTINE EXTERNAL_FORCING_V(        SUBROUTINE EXTERNAL_FORCING_V(
109       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
110       I           myCurrentTime,myThid)       I           myTime, myThid )
111  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
112  C     *==========================================================*  C     *==========================================================*
113  C     | S/R EXTERNAL_FORCING_V                                      C     | S/R EXTERNAL_FORCING_V
114  C     | o Contains problem specific forcing for merid velocity.    C     | o Contains problem specific forcing for merid velocity.
115  C     *==========================================================*  C     *==========================================================*
116  C     | Adds terms to gV for forcing by external sources            C     | Adds terms to gV for forcing by external sources
117  C     | e.g. wind stress, bottom friction etc..................    C     | e.g. wind stress, bottom friction etc ...
118  C     *==========================================================*  C     *==========================================================*
119  C     \ev  C     \ev
120    
# Line 123  C     == Global data == Line 130  C     == Global data ==
130    
131  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
132  C     == Routine arguments ==  C     == Routine arguments ==
133  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
134  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
135  C     jMin  C     bi,bj     :: Current tile indices
136  C     jMax  C     kLev      :: Current vertical level index
137  C     kLev  C     myTime    :: Current time in simulation
138    C     myThid    :: Thread Id number
139        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
140        _RL myCurrentTime        _RL myTime
141        INTEGER myThid        INTEGER myThid
142    
143  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
144  C     == Local variables ==  C     == Local variables ==
145  C     Loop counters  C     i,j       :: Loop counters
146        INTEGER I, J  C     kSurface  :: index of surface layer
147  C     number of surface interface layer        INTEGER i, j
148        INTEGER kSurface        INTEGER kSurface
149  CEOP  CEOP
150    
# Line 152  C--   Forcing term Line 160  C--   Forcing term
160  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
161        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_V(        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_V(
162       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
163       &                      myCurrentTime, myThid )       &                      myTime, myThid )
164  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
165    
 C AMM  
166  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
167        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_V(        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_V(
168       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
169       &                      myCurrentTime, myThid )       &                      myTime, myThid )
170  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
171  C AMM  
172  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
173        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
174         DO j=jMin,jMax         DO j=1,sNy+1
175          DO i=iMin,iMax  c       DO i=1,sNx
176    C-jmc: Without CD-scheme, this is OK ; but with CD-scheme, needs to cover [0:sNx+1]
177            DO i=0,sNx+1
178           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)
179       &   +foFacMom*surfaceForcingV(i,j,bi,bj)       &   +foFacMom*surfaceForcingV(i,j,bi,bj)
180       &   *recip_drF(kLev)*recip_hFacS(i,j,kLev,bi,bj)       &   *recip_drF(kLev)*recip_hFacS(i,j,kLev,bi,bj)
# Line 173  C     Add windstress momentum impulse in Line 182  C     Add windstress momentum impulse in
182         ENDDO         ENDDO
183        ENDIF        ENDIF
184    
185  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #if (defined (ALLOW_TAU_EDDY))
186           CALL TAUEDDY_EXTERNAL_FORCING_V(
187         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
188         I           myTime, myThid )
189    #endif
190    
191    #ifdef ALLOW_OBCS
192        IF (useOBCS) THEN        IF (useOBCS) THEN
193         CALL OBCS_SPONGE_V(         CALL OBCS_SPONGE_V(
194       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
195       I           myCurrentTime,myThid)       I           myTime, myThid )
196        ENDIF        ENDIF
197  #endif  #endif
198    
199        RETURN        RETURN
200        END        END
201    
202    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
203  CBOP  CBOP
204  C     !ROUTINE: EXTERNAL_FORCING_T  C     !ROUTINE: EXTERNAL_FORCING_T
205  C     !INTERFACE:  C     !INTERFACE:
206        SUBROUTINE EXTERNAL_FORCING_T(        SUBROUTINE EXTERNAL_FORCING_T(
207       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
208       I           myCurrentTime,myThid)       I           myTime, myThid )
209  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
210  C     *==========================================================*  C     *==========================================================*
211  C     | S/R EXTERNAL_FORCING_T                                      C     | S/R EXTERNAL_FORCING_T
212  C     | o Contains problem specific forcing for temperature.        C     | o Contains problem specific forcing for temperature.
213  C     *==========================================================*  C     *==========================================================*
214  C     | Adds terms to gT for forcing by external sources            C     | Adds terms to gT for forcing by external sources
215  C     | e.g. heat flux, climatalogical relaxation..............    C     | e.g. heat flux, climatalogical relaxation, etc ...
216  C     *==========================================================*  C     *==========================================================*
217  C     \ev  C     \ev
218    
# Line 211  C     == Global data == Line 228  C     == Global data ==
228    
229  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
230  C     == Routine arguments ==  C     == Routine arguments ==
231  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
232  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
233  C     jMin  C     bi,bj     :: Current tile indices
234  C     jMax  C     kLev      :: Current vertical level index
235  C     kLev  C     myTime    :: Current time in simulation
236    C     myThid    :: Thread Id number
237        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
238        _RL myCurrentTime        _RL myTime
239        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
240    
241  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
242  C     == Local variables ==  C     == Local variables ==
243  C     Loop counters  C     i,j       :: Loop counters
244        INTEGER I, J  C     kSurface  :: index of surface layer
245  C     number of surface interface layer        INTEGER i, j
246        INTEGER kSurface        INTEGER kSurface
247    CEOP
248  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
249        integer two        integer two
250        _RL minusone        _RL minusone
# Line 234  C     number of surface interface layer Line 252  C     number of surface interface layer
252        _RL swfracb(two)        _RL swfracb(two)
253        INTEGER kp1        INTEGER kp1
254  #endif  #endif
 CEOP  
255    
256        IF ( fluidIsAir ) THEN        IF ( fluidIsAir ) THEN
257         kSurface = 0         kSurface = 0
# Line 248  C--   Forcing term Line 265  C--   Forcing term
265  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
266        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_T(        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_T(
267       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
268       &                      myCurrentTime, myThid )       &                      myTime, myThid )
269  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
270    
 C AMM  
271  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
272        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_T(        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_T(
273       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
274       &                      myCurrentTime, myThid )       &                      myTime, myThid )
275  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
 C AMM  
276    
277  C     Add heat in top-layer  C     Add heat in top-layer
278        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
279         DO j=jMin,jMax         DO j=1,sNy
280          DO i=iMin,iMax          DO i=1,sNx
281           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
282       &     +surfaceForcingT(i,j,bi,bj)       &     +surfaceForcingT(i,j,bi,bj)
283       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)
# Line 270  C     Add heat in top-layer Line 285  C     Add heat in top-layer
285         ENDDO         ENDDO
286        ENDIF        ENDIF
287    
288    #ifdef ALLOW_SHELFICE
289          IF ( useShelfIce )
290         &     CALL SHELFICE_FORCING_T(
291         I     iMin,iMax, jMin,jMax, bi,bj, kLev,
292         I     myTime, myThid )
293    #endif /* ALLOW_SHELFICE */
294    
295  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
296  C Penetrating SW radiation  C Penetrating SW radiation
297        kp1 = klev+1  c     IF ( usePenetratingSW ) THEN
298        swfracb(1)=abs(rF(klev))         swfracb(1)=abs(rF(klev))
299        swfracb(2)=abs(rF(klev+1))         swfracb(2)=abs(rF(klev+1))
300        CALL SWFRAC(         CALL SWFRAC(
301       I     two,minusone,       I     two,minusone,
302       I     myCurrentTime,myThid,       I     myTime,myThid,
303       U     swfracb)       U     swfracb)
304        IF (klev.EQ.Nr) THEN         kp1 = klev+1
305           IF (klev.EQ.Nr) THEN
306          kp1 = klev          kp1 = klev
307          swfracb(2)=0. _d 0          swfracb(2)=0. _d 0
308        ENDIF         ENDIF
309        DO j=jMin,jMax         DO j=1,sNy
310         DO i=iMin,iMax          DO i=1,sNx
311          gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)           gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)
312       &   -Qsw(i,j,bi,bj)*(swfracb(1)*maskC(i,j,klev,bi,bj)       &   -Qsw(i,j,bi,bj)*(swfracb(1)*maskC(i,j,klev,bi,bj)
313       &                   -swfracb(2)*maskC(i,j,kp1, bi,bj))       &                   -swfracb(2)*maskC(i,j,kp1, bi,bj))
314       &    *recip_Cp*recip_rhoConst       &    *recip_Cp*recip_rhoConst
315       &    *recip_drF(klev)*recip_hFacC(i,j,kLev,bi,bj)       &    *recip_drF(klev)*recip_hFacC(i,j,kLev,bi,bj)
316            ENDDO
317         ENDDO         ENDDO
318        ENDDO  c     ENDIF
319    #endif
320    
321    #ifdef ALLOW_RBCS
322           if (useRBCS) then
323              call RBCS_ADD_TENDENCY(bi,bj,klev, 1,
324         &                            myTime, myThid )
325           endif
326  #endif  #endif
327    
328  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_OBCS
329        IF (useOBCS) THEN        IF (useOBCS) THEN
330         CALL OBCS_SPONGE_T(         CALL OBCS_SPONGE_T(
331       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
332       I           myCurrentTime,myThid)       I           myTime, myThid )
333        ENDIF        ENDIF
334  #endif  #endif
335    
336        RETURN        RETURN
337        END        END
338    
339    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
340  CBOP  CBOP
341  C     !ROUTINE: EXTERNAL_FORCING_S  C     !ROUTINE: EXTERNAL_FORCING_S
342  C     !INTERFACE:  C     !INTERFACE:
343        SUBROUTINE EXTERNAL_FORCING_S(        SUBROUTINE EXTERNAL_FORCING_S(
344       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
345       I           myCurrentTime,myThid)       I           myTime, myThid )
346    
347  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
348  C     *==========================================================*  C     *==========================================================*
349  C     | S/R EXTERNAL_FORCING_S                                      C     | S/R EXTERNAL_FORCING_S
350  C     | o Contains problem specific forcing for merid velocity.    C     | o Contains problem specific forcing for merid velocity.
351  C     *==========================================================*  C     *==========================================================*
352  C     | Adds terms to gS for forcing by external sources            C     | Adds terms to gS for forcing by external sources
353  C     | e.g. fresh-water flux, climatalogical relaxation.......    C     | e.g. fresh-water flux, climatalogical relaxation, etc ...
354  C     *==========================================================*  C     *==========================================================*
355  C     \ev  C     \ev
356    
# Line 333  C     == Global data == Line 366  C     == Global data ==
366    
367  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
368  C     == Routine arguments ==  C     == Routine arguments ==
369  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
370  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
371  C     jMin  C     bi,bj     :: Current tile indices
372  C     jMax  C     kLev      :: Current vertical level index
373  C     kLev  C     myTime    :: Current time in simulation
374    C     myThid    :: Thread Id number
375        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
376        _RL myCurrentTime        _RL myTime
377        INTEGER myThid        INTEGER myThid
378    
379  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
380  C     == Local variables ==  C     == Local variables ==
381  C     Loop counters  C     i,j       :: Loop counters
382        INTEGER I, J  C     kSurface  :: index of surface layer
383  C     number of surface interface layer        INTEGER i, j
384        INTEGER kSurface        INTEGER kSurface
385  CEOP  CEOP
386    
# Line 362  C--   Forcing term Line 396  C--   Forcing term
396  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
397        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_S(        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_S(
398       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
399       &                      myCurrentTime, myThid )       &                      myTime, myThid )
400  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
401    
 C AMM  
402  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
403        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_S(        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_S(
404       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
405       &                      myCurrentTime, myThid )       &                      myTime, myThid )
406  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
 C AMM  
407    
408  C     Add fresh-water in top-layer  C     Add fresh-water in top-layer
409        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
410         DO j=jMin,jMax         DO j=1,sNy
411          DO i=iMin,iMax          DO i=1,sNx
412           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
413       &     +surfaceForcingS(i,j,bi,bj)       &     +surfaceForcingS(i,j,bi,bj)
414       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)
# Line 384  C     Add fresh-water in top-layer Line 416  C     Add fresh-water in top-layer
416         ENDDO         ENDDO
417        ENDIF        ENDIF
418    
419  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_SHELFICE
420          IF ( useShelfIce )
421         &     CALL SHELFICE_FORCING_S(
422         I     iMin,iMax, jMin,jMax, bi,bj, kLev,
423         I     myTime, myThid )
424    #endif /* ALLOW_SHELFICE */
425    
426    #ifdef ALLOW_RBCS
427           if (useRBCS) then
428              call RBCS_ADD_TENDENCY(bi,bj,klev, 2,
429         &                            myTime, myThid )
430           endif
431    #endif
432    
433    #ifdef ALLOW_OBCS
434        IF (useOBCS) THEN        IF (useOBCS) THEN
435         CALL OBCS_SPONGE_S(         CALL OBCS_SPONGE_S(
436       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
437       I           myCurrentTime,myThid)       I           myTime, myThid )
438        ENDIF        ENDIF
439  #endif  #endif
440    

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.37

  ViewVC Help
Powered by ViewVC 1.1.22