/[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.30 by heimbach, Tue Mar 1 18:55:13 2005 UTC revision 1.31 by jmc, Fri Jul 15 20:50:44 2005 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         DO j=1,sNy
77          DO i=iMin,iMax          DO i=1,sNx+1
78           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
79       &   +foFacMom*surfaceForcingU(i,j,bi,bj)       &   +foFacMom*surfaceForcingU(i,j,bi,bj)
80       &   *recip_drF(kLev)*recip_hFacW(i,j,kLev,bi,bj)       &   *recip_drF(kLev)*recip_hFacW(i,j,kLev,bi,bj)
# Line 87  C     Add windstress momentum impulse in Line 84  C     Add windstress momentum impulse in
84    
85  #if (defined (ALLOW_TAU_EDDY))  #if (defined (ALLOW_TAU_EDDY))
86         CALL TAUEDDY_EXTERNAL_FORCING_U(         CALL TAUEDDY_EXTERNAL_FORCING_U(
87       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
88       I           myCurrentTime,myThid)       I           myTime, myThid )
89  #endif  #endif
90    
91  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_OBCS
92        IF (useOBCS) THEN        IF (useOBCS) THEN
93         CALL OBCS_SPONGE_U(         CALL OBCS_SPONGE_U(
94       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
95       I           myCurrentTime,myThid)       I           myTime, myThid )
96        ENDIF        ENDIF
97  #endif  #endif
98    
99        RETURN        RETURN
100        END        END
101    
102    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
103  CBOP  CBOP
104  C     !ROUTINE: EXTERNAL_FORCING_V  C     !ROUTINE: EXTERNAL_FORCING_V
105  C     !INTERFACE:  C     !INTERFACE:
106        SUBROUTINE EXTERNAL_FORCING_V(        SUBROUTINE EXTERNAL_FORCING_V(
107       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
108       I           myCurrentTime,myThid)       I           myTime, myThid )
109  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
110  C     *==========================================================*  C     *==========================================================*
111  C     | S/R EXTERNAL_FORCING_V                                      C     | S/R EXTERNAL_FORCING_V
112  C     | o Contains problem specific forcing for merid velocity.    C     | o Contains problem specific forcing for merid velocity.
113  C     *==========================================================*  C     *==========================================================*
114  C     | Adds terms to gV for forcing by external sources            C     | Adds terms to gV for forcing by external sources
115  C     | e.g. wind stress, bottom friction etc..................    C     | e.g. wind stress, bottom friction etc ...
116  C     *==========================================================*  C     *==========================================================*
117  C     \ev  C     \ev
118    
# Line 129  C     == Global data == Line 128  C     == Global data ==
128    
129  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
130  C     == Routine arguments ==  C     == Routine arguments ==
131  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
132  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
133  C     jMin  C     bi,bj     :: Current tile indices
134  C     jMax  C     kLev      :: Current vertical level index
135  C     kLev  C     myTime    :: Current time in simulation
136    C     myThid    :: Thread Id number
137        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
138        _RL myCurrentTime        _RL myTime
139        INTEGER myThid        INTEGER myThid
140    
141  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
142  C     == Local variables ==  C     == Local variables ==
143  C     Loop counters  C     i,j       :: Loop counters
144        INTEGER I, J  C     kSurface  :: index of surface layer
145  C     number of surface interface layer        INTEGER i, j
146        INTEGER kSurface        INTEGER kSurface
147  CEOP  CEOP
148    
# Line 158  C--   Forcing term Line 158  C--   Forcing term
158  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
159        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_V(        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_V(
160       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
161       &                      myCurrentTime, myThid )       &                      myTime, myThid )
162  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
163    
 C AMM  
164  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
165        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_V(        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_V(
166       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
167       &                      myCurrentTime, myThid )       &                      myTime, myThid )
168  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
169  C AMM  
170  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
171        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
172         DO j=jMin,jMax         DO j=1,sNy+1
173          DO i=iMin,iMax          DO i=1,sNx
174           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)
175       &   +foFacMom*surfaceForcingV(i,j,bi,bj)       &   +foFacMom*surfaceForcingV(i,j,bi,bj)
176       &   *recip_drF(kLev)*recip_hFacS(i,j,kLev,bi,bj)       &   *recip_drF(kLev)*recip_hFacS(i,j,kLev,bi,bj)
# Line 181  C     Add windstress momentum impulse in Line 180  C     Add windstress momentum impulse in
180    
181  #if (defined (ALLOW_TAU_EDDY))  #if (defined (ALLOW_TAU_EDDY))
182         CALL TAUEDDY_EXTERNAL_FORCING_V(         CALL TAUEDDY_EXTERNAL_FORCING_V(
183       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
184       I           myCurrentTime,myThid)       I           myTime, myThid )
185  #endif  #endif
186    
187  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_OBCS
188        IF (useOBCS) THEN        IF (useOBCS) THEN
189         CALL OBCS_SPONGE_V(         CALL OBCS_SPONGE_V(
190       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
191       I           myCurrentTime,myThid)       I           myTime, myThid )
192        ENDIF        ENDIF
193  #endif  #endif
194    
195        RETURN        RETURN
196        END        END
197    
198    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
199  CBOP  CBOP
200  C     !ROUTINE: EXTERNAL_FORCING_T  C     !ROUTINE: EXTERNAL_FORCING_T
201  C     !INTERFACE:  C     !INTERFACE:
202        SUBROUTINE EXTERNAL_FORCING_T(        SUBROUTINE EXTERNAL_FORCING_T(
203       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
204       I           myCurrentTime,myThid)       I           myTime, myThid )
205  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
206  C     *==========================================================*  C     *==========================================================*
207  C     | S/R EXTERNAL_FORCING_T                                      C     | S/R EXTERNAL_FORCING_T
208  C     | o Contains problem specific forcing for temperature.        C     | o Contains problem specific forcing for temperature.
209  C     *==========================================================*  C     *==========================================================*
210  C     | Adds terms to gT for forcing by external sources            C     | Adds terms to gT for forcing by external sources
211  C     | e.g. heat flux, climatalogical relaxation..............    C     | e.g. heat flux, climatalogical relaxation, etc ...
212  C     *==========================================================*  C     *==========================================================*
213  C     \ev  C     \ev
214    
# Line 223  C     == Global data == Line 224  C     == Global data ==
224    
225  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
226  C     == Routine arguments ==  C     == Routine arguments ==
227  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
228  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
229  C     jMin  C     bi,bj     :: Current tile indices
230  C     jMax  C     kLev      :: Current vertical level index
231  C     kLev  C     myTime    :: Current time in simulation
232    C     myThid    :: Thread Id number
233        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
234        _RL myCurrentTime        _RL myTime
235        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
236    
237  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
238  C     == Local variables ==  C     == Local variables ==
239  C     Loop counters  C     i,j       :: Loop counters
240        INTEGER I, J  C     kSurface  :: index of surface layer
241  C     number of surface interface layer        INTEGER i, j
242        INTEGER kSurface        INTEGER kSurface
243    CEOP
244  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
245        integer two        integer two
246        _RL minusone        _RL minusone
# Line 246  C     number of surface interface layer Line 248  C     number of surface interface layer
248        _RL swfracb(two)        _RL swfracb(two)
249        INTEGER kp1        INTEGER kp1
250  #endif  #endif
 CEOP  
251    
252        IF ( fluidIsAir ) THEN        IF ( fluidIsAir ) THEN
253         kSurface = 0         kSurface = 0
# Line 260  C--   Forcing term Line 261  C--   Forcing term
261  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
262        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_T(        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_T(
263       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
264       &                      myCurrentTime, myThid )       &                      myTime, myThid )
265  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
266    
 C AMM  
267  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
268        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_T(        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_T(
269       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
270       &                      myCurrentTime, myThid )       &                      myTime, myThid )
271  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
 C AMM  
272    
273  C     Add heat in top-layer  C     Add heat in top-layer
274        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
275         DO j=jMin,jMax         DO j=1,sNy
276          DO i=iMin,iMax          DO i=1,sNx
277           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
278       &     +surfaceForcingT(i,j,bi,bj)       &     +surfaceForcingT(i,j,bi,bj)
279       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)
# Line 284  C     Add heat in top-layer Line 283  C     Add heat in top-layer
283    
284  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
285  C Penetrating SW radiation  C Penetrating SW radiation
286        kp1 = klev+1  c     IF ( usePenetratingSW ) THEN
287        swfracb(1)=abs(rF(klev))         swfracb(1)=abs(rF(klev))
288        swfracb(2)=abs(rF(klev+1))         swfracb(2)=abs(rF(klev+1))
289        CALL SWFRAC(         CALL SWFRAC(
290       I     two,minusone,       I     two,minusone,
291       I     myCurrentTime,myThid,       I     myTime,myThid,
292       U     swfracb)       U     swfracb)
293        IF (klev.EQ.Nr) THEN         kp1 = klev+1
294           IF (klev.EQ.Nr) THEN
295          kp1 = klev          kp1 = klev
296          swfracb(2)=0. _d 0          swfracb(2)=0. _d 0
297        ENDIF         ENDIF
298        DO j=jMin,jMax         DO j=1,sNy
299         DO i=iMin,iMax          DO i=1,sNx
300          gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)           gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)
301       &   -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)
302       &                   -swfracb(2)*maskC(i,j,kp1, bi,bj))       &                   -swfracb(2)*maskC(i,j,kp1, bi,bj))
303       &    *recip_Cp*recip_rhoConst       &    *recip_Cp*recip_rhoConst
304       &    *recip_drF(klev)*recip_hFacC(i,j,kLev,bi,bj)       &    *recip_drF(klev)*recip_hFacC(i,j,kLev,bi,bj)
305            ENDDO
306         ENDDO         ENDDO
307        ENDDO  c     ENDIF
308  #endif  #endif
309    
310  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_OBCS
311        IF (useOBCS) THEN        IF (useOBCS) THEN
312         CALL OBCS_SPONGE_T(         CALL OBCS_SPONGE_T(
313       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
314       I           myCurrentTime,myThid)       I           myTime, myThid )
315        ENDIF        ENDIF
316  #endif  #endif
317    
318        RETURN        RETURN
319        END        END
320    
321    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
322  CBOP  CBOP
323  C     !ROUTINE: EXTERNAL_FORCING_S  C     !ROUTINE: EXTERNAL_FORCING_S
324  C     !INTERFACE:  C     !INTERFACE:
325        SUBROUTINE EXTERNAL_FORCING_S(        SUBROUTINE EXTERNAL_FORCING_S(
326       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
327       I           myCurrentTime,myThid)       I           myTime, myThid )
328    
329  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
330  C     *==========================================================*  C     *==========================================================*
331  C     | S/R EXTERNAL_FORCING_S                                      C     | S/R EXTERNAL_FORCING_S
332  C     | o Contains problem specific forcing for merid velocity.    C     | o Contains problem specific forcing for merid velocity.
333  C     *==========================================================*  C     *==========================================================*
334  C     | Adds terms to gS for forcing by external sources            C     | Adds terms to gS for forcing by external sources
335  C     | e.g. fresh-water flux, climatalogical relaxation.......    C     | e.g. fresh-water flux, climatalogical relaxation, etc ...
336  C     *==========================================================*  C     *==========================================================*
337  C     \ev  C     \ev
338    
# Line 345  C     == Global data == Line 348  C     == Global data ==
348    
349  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
350  C     == Routine arguments ==  C     == Routine arguments ==
351  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
352  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
353  C     jMin  C     bi,bj     :: Current tile indices
354  C     jMax  C     kLev      :: Current vertical level index
355  C     kLev  C     myTime    :: Current time in simulation
356    C     myThid    :: Thread Id number
357        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
358        _RL myCurrentTime        _RL myTime
359        INTEGER myThid        INTEGER myThid
360    
361  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
362  C     == Local variables ==  C     == Local variables ==
363  C     Loop counters  C     i,j       :: Loop counters
364        INTEGER I, J  C     kSurface  :: index of surface layer
365  C     number of surface interface layer        INTEGER i, j
366        INTEGER kSurface        INTEGER kSurface
367  CEOP  CEOP
368    
# Line 374  C--   Forcing term Line 378  C--   Forcing term
378  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
379        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_S(        IF ( useAIM ) CALL AIM_TENDENCY_APPLY_S(
380       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
381       &                      myCurrentTime, myThid )       &                      myTime, myThid )
382  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
383    
 C AMM  
384  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
385        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_S(        IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_S(
386       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,       &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
387       &                      myCurrentTime, myThid )       &                      myTime, myThid )
388  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
 C AMM  
389    
390  C     Add fresh-water in top-layer  C     Add fresh-water in top-layer
391        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
392         DO j=jMin,jMax         DO j=1,sNy
393          DO i=iMin,iMax          DO i=1,sNx
394           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
395       &     +surfaceForcingS(i,j,bi,bj)       &     +surfaceForcingS(i,j,bi,bj)
396       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)
# Line 396  C     Add fresh-water in top-layer Line 398  C     Add fresh-water in top-layer
398         ENDDO         ENDDO
399        ENDIF        ENDIF
400    
401  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_OBCS
402        IF (useOBCS) THEN        IF (useOBCS) THEN
403         CALL OBCS_SPONGE_S(         CALL OBCS_SPONGE_S(
404       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
405       I           myCurrentTime,myThid)       I           myTime, myThid )
406        ENDIF        ENDIF
407  #endif  #endif
408    

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

  ViewVC Help
Powered by ViewVC 1.1.22