/[MITgcm]/MITgcm/verification/tidal_basin_2d/code/external_forcing.F
ViewVC logotype

Diff of /MITgcm/verification/tidal_basin_2d/code/external_forcing.F

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

revision 1.4 by jmc, Sun Jul 18 01:23:05 2004 UTC revision 1.7 by jmc, Tue May 6 15:52:51 2014 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    
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 31  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        _RL tidal_freq,tidal_Hscale        _RL tidal_freq,tidal_Hscale
52        _RL Coord2longitude,longitud1,longitud2        _RL Coord2longitude,longitud1,longitud2
53  CEOP  CEOP
54    
55        if ( buoyancyRelation .eq. 'OCEANICP' ) then        IF ( fluidIsAir ) THEN
56           kSurface = 0
57          ELSEIF ( usingPCoords ) THEN
58         kSurface = Nr         kSurface = Nr
59        else        ELSE
60         kSurface = 1         kSurface = 1
61        endif        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         &                      myTime, myThid )
68    #endif /* ALLOW_AIM */
69    
70    #ifdef ALLOW_FIZHI
71          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_U(
72         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
73         &                      myTime, myThid )
74    #endif /* ALLOW_FIZHI */
75    
76  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
77        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
78         DO j=jMin,jMax  c      DO j=1,sNy
79          DO i=iMin,iMax  C-jmc: Without CD-scheme, this is OK ; but with CD-scheme, needs to cover [0:sNy+1]
80           DO j=0,sNy+1
81            DO i=1,sNx+1
82           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
83       &   +foFacMom*surfaceForcingU(i,j,bi,bj)       &   +foFacMom*surfaceForcingU(i,j,bi,bj)
84       &   *recip_drF(kLev)*recip_hFacW(i,j,kLev,bi,bj)       &   *recip_drF(kLev)*recip_hFacW(i,j,kLev,bi,bj)
# Line 82  C Make the tide relatively strong (about Line 100  C Make the tide relatively strong (about
100        ELSE        ELSE
101         STOP 'Be careful about 2D!'         STOP 'Be careful about 2D!'
102        ENDIF        ENDIF
103        DO j=jMin,jMax        DO j=0,sNy+1
104         DO i=iMin+1,iMax         DO i=1,sNx+1
105           longitud1=XC(i-1,j,bi,bj)*Coord2longitude           longitud1=XC(i-1,j,bi,bj)*Coord2longitude
106           longitud2=XC(i,j,bi,bj)*Coord2longitude           longitud2=XC(i,j,bi,bj)*Coord2longitude
107           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)           gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
108       &   +gravity*tidal_Hscale*       &   +gravity*tidal_Hscale*
109       &    ( SIN( tidal_freq*myCurrentTime + 2.*longitud2 )       &    ( SIN( tidal_freq*myTime + 2.*longitud2 )
110       &     -SIN( tidal_freq*myCurrentTime + 2.*longitud1 )       &     -SIN( tidal_freq*myTime + 2.*longitud1 )
111       &    )*recip_DXC(i,j,bi,bj)       &    )*recip_DXC(i,j,bi,bj)
112       &   *_maskW(i,j,kLev,bi,bj)       &   *_maskW(i,j,kLev,bi,bj)
113  c    &   *min( myCurrentTime/86400. , 1.)  c    &   *min( myTime/86400. , 1.)
114         ENDDO         ENDDO
115        ENDDO        ENDDO
116    
117  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #if (defined (ALLOW_TAU_EDDY))
118           CALL TAUEDDY_EXTERNAL_FORCING_U(
119         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
120         I           myTime, myThid )
121    #endif
122    
123    #ifdef ALLOW_OBCS
124        IF (useOBCS) THEN        IF (useOBCS) THEN
125         CALL OBCS_SPONGE_U(         CALL OBCS_SPONGE_U(
126       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
127       I           myCurrentTime,myThid)       I           myTime, myThid )
128        ENDIF        ENDIF
129  #endif  #endif
130    
131        RETURN        RETURN
132        END        END
133    
134    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
135  CBOP  CBOP
136  C     !ROUTINE: EXTERNAL_FORCING_V  C     !ROUTINE: EXTERNAL_FORCING_V
137  C     !INTERFACE:  C     !INTERFACE:
138        SUBROUTINE EXTERNAL_FORCING_V(        SUBROUTINE EXTERNAL_FORCING_V(
139       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
140       I           myCurrentTime,myThid)       I           myTime, myThid )
141  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
142  C     *==========================================================*  C     *==========================================================*
143  C     | S/R EXTERNAL_FORCING_V                                      C     | S/R EXTERNAL_FORCING_V
144  C     | o Contains problem specific forcing for merid velocity.    C     | o Contains problem specific forcing for merid velocity.
145  C     *==========================================================*  C     *==========================================================*
146  C     | Adds terms to gV for forcing by external sources            C     | Adds terms to gV for forcing by external sources
147  C     | e.g. wind stress, bottom friction etc..................    C     | e.g. wind stress, bottom friction etc ...
148  C     *==========================================================*  C     *==========================================================*
149  C     \ev  C     \ev
150    
# Line 134  C     == Global data == Line 160  C     == Global data ==
160    
161  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
162  C     == Routine arguments ==  C     == Routine arguments ==
163  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
164  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
165  C     jMin  C     bi,bj     :: Current tile indices
166  C     jMax  C     kLev      :: Current vertical level index
167  C     kLev  C     myTime    :: Current time in simulation
168    C     myThid    :: Thread Id number
169        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
170        _RL myCurrentTime        _RL myTime
171        INTEGER myThid        INTEGER myThid
172    
173  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
174  C     == Local variables ==  C     == Local variables ==
175  C     Loop counters  C     i,j       :: Loop counters
176        INTEGER I, J  C     kSurface  :: index of surface layer
177  C     number of surface interface layer        INTEGER i, j
178        INTEGER kSurface        INTEGER kSurface
179  CEOP  CEOP
180    
181        if ( buoyancyRelation .eq. 'OCEANICP' ) then        IF ( fluidIsAir ) THEN
182           kSurface = 0
183          ELSEIF ( usingPCoords ) THEN
184         kSurface = Nr         kSurface = Nr
185        else        ELSE
186         kSurface = 1         kSurface = 1
187        endif        ENDIF
188    
189  C--   Forcing term  C--   Forcing term
190    #ifdef ALLOW_AIM
191          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_V(
192         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
193         &                      myTime, myThid )
194    #endif /* ALLOW_AIM */
195    
196    #ifdef ALLOW_FIZHI
197          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_V(
198         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
199         &                      myTime, myThid )
200    #endif /* ALLOW_FIZHI */
201    
202  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
203        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
204         DO j=jMin,jMax         DO j=1,sNy+1
205          DO i=iMin,iMax  c       DO i=1,sNx
206    C-jmc: Without CD-scheme, this is OK ; but with CD-scheme, needs to cover [0:sNx+1]
207            DO i=0,sNx+1
208           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)
209       &   +foFacMom*surfaceForcingV(i,j,bi,bj)       &   +foFacMom*surfaceForcingV(i,j,bi,bj)
210       &   *recip_drF(kLev)*recip_hFacS(i,j,kLev,bi,bj)       &   *recip_drF(kLev)*recip_hFacS(i,j,kLev,bi,bj)
# Line 169  C     Add windstress momentum impulse in Line 212  C     Add windstress momentum impulse in
212         ENDDO         ENDDO
213        ENDIF        ENDIF
214    
215  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #if (defined (ALLOW_TAU_EDDY))
216           CALL TAUEDDY_EXTERNAL_FORCING_V(
217         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
218         I           myTime, myThid )
219    #endif
220    
221    #ifdef ALLOW_OBCS
222        IF (useOBCS) THEN        IF (useOBCS) THEN
223         CALL OBCS_SPONGE_V(         CALL OBCS_SPONGE_V(
224       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
225       I           myCurrentTime,myThid)       I           myTime, myThid )
226        ENDIF        ENDIF
227  #endif  #endif
228    
229        RETURN        RETURN
230        END        END
231    
232    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
233  CBOP  CBOP
234  C     !ROUTINE: EXTERNAL_FORCING_T  C     !ROUTINE: EXTERNAL_FORCING_T
235  C     !INTERFACE:  C     !INTERFACE:
236        SUBROUTINE EXTERNAL_FORCING_T(        SUBROUTINE EXTERNAL_FORCING_T(
237       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
238       I           myCurrentTime,myThid)       I           myTime, myThid )
239  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
240  C     *==========================================================*  C     *==========================================================*
241  C     | S/R EXTERNAL_FORCING_T                                      C     | S/R EXTERNAL_FORCING_T
242  C     | o Contains problem specific forcing for temperature.        C     | o Contains problem specific forcing for temperature.
243  C     *==========================================================*  C     *==========================================================*
244  C     | Adds terms to gT for forcing by external sources            C     | Adds terms to gT for forcing by external sources
245  C     | e.g. heat flux, climatalogical relaxation..............    C     | e.g. heat flux, climatalogical relaxation, etc ...
246  C     *==========================================================*  C     *==========================================================*
247  C     \ev  C     \ev
248    
# Line 204  C     == Global data == Line 255  C     == Global data ==
255  #include "GRID.h"  #include "GRID.h"
256  #include "DYNVARS.h"  #include "DYNVARS.h"
257  #include "FFIELDS.h"  #include "FFIELDS.h"
 #ifdef SHORTWAVE_HEATING  
       integer two  
       _RL minusone  
       parameter (two=2,minusone=-1.)  
       _RL swfracb(two)  
 #endif  
258    
259  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
260  C     == Routine arguments ==  C     == Routine arguments ==
261  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
262  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
263  C     jMin  C     bi,bj     :: Current tile indices
264  C     jMax  C     kLev      :: Current vertical level index
265  C     kLev  C     myTime    :: Current time in simulation
266    C     myThid    :: Thread Id number
267        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
268        _RL myCurrentTime        _RL myTime
269        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
270    
271  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
272  C     == Local variables ==  C     == Local variables ==
273  C     Loop counters  C     i,j       :: Loop counters
274        INTEGER I, J  C     kSurface  :: index of surface layer
275  C     number of surface interface layer        INTEGER i, j
276        INTEGER kSurface        INTEGER kSurface
277          _RL recip_Cp
278  CEOP  CEOP
279    #ifdef SHORTWAVE_HEATING
280          integer two
281          _RL minusone
282          parameter (two=2,minusone=-1.)
283          _RL swfracb(two)
284          INTEGER kp1
285    #endif
286    
287        if ( buoyancyRelation .eq. 'OCEANICP' ) then        IF ( fluidIsAir ) THEN
288           kSurface = 0
289          ELSEIF ( usingPCoords ) THEN
290         kSurface = Nr         kSurface = Nr
291        else        ELSE
292         kSurface = 1         kSurface = 1
293        endif        ENDIF
294          recip_Cp = 1. _d 0 / HeatCapacity_Cp
295    
296  C--   Forcing term  C--   Forcing term
297    #ifdef ALLOW_AIM
298          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_T(
299         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
300         &                      myTime, myThid )
301    #endif /* ALLOW_AIM */
302    
303    #ifdef ALLOW_FIZHI
304          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_T(
305         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
306         &                      myTime, myThid )
307    #endif /* ALLOW_FIZHI */
308    
309  C     Add heat in top-layer  C     Add heat in top-layer
310        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
311         DO j=jMin,jMax         DO j=1,sNy
312          DO i=iMin,iMax          DO i=1,sNx
313           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
314       &     +surfaceForcingT(i,j,bi,bj)       &     +surfaceForcingT(i,j,bi,bj)
315       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)
# Line 251  C     Add heat in top-layer Line 319  C     Add heat in top-layer
319    
320  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
321  C Penetrating SW radiation  C Penetrating SW radiation
322        swfracb(1)=abs(rF(klev))  c     IF ( usePenetratingSW ) THEN
323        swfracb(2)=abs(rF(klev+1))         swfracb(1)=abs(rF(klev))
324        call SWFRAC(         swfracb(2)=abs(rF(klev+1))
325       I     two,minusone,         CALL SWFRAC(
326       I     myCurrentTime,myThid,       I             two, minusone,
327       O     swfracb)       U             swfracb,
328        DO j=jMin,jMax       I             myTime, 1, myThid )
329         DO i=iMin,iMax         kp1 = klev+1
330          gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)         IF (klev.EQ.Nr) THEN
331       &   -maskC(i,j,klev,bi,bj)*Qsw(i,j,bi,bj)*(swfracb(1)-swfracb(2))          kp1 = klev
332       &    *recip_Cp*recip_rhoConst*recip_drF(klev)          swfracb(2)=0. _d 0
333           ENDIF
334           DO j=1,sNy
335            DO i=1,sNx
336             gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)
337         &   -Qsw(i,j,bi,bj)*(swfracb(1)*maskC(i,j,klev,bi,bj)
338         &                   -swfracb(2)*maskC(i,j,kp1, bi,bj))
339         &    *recip_Cp*recip_rhoConst
340         &    *recip_drF(klev)*recip_hFacC(i,j,kLev,bi,bj)
341            ENDDO
342         ENDDO         ENDDO
343        ENDDO  c     ENDIF
344  #endif  #endif
345    
346  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_OBCS
347        IF (useOBCS) THEN        IF (useOBCS) THEN
348         CALL OBCS_SPONGE_T(         CALL OBCS_SPONGE_T(
349       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
350       I           myCurrentTime,myThid)       I           myTime, myThid )
351        ENDIF        ENDIF
352  #endif  #endif
353    
354        RETURN        RETURN
355        END        END
356    
357    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
358  CBOP  CBOP
359  C     !ROUTINE: EXTERNAL_FORCING_S  C     !ROUTINE: EXTERNAL_FORCING_S
360  C     !INTERFACE:  C     !INTERFACE:
361        SUBROUTINE EXTERNAL_FORCING_S(        SUBROUTINE EXTERNAL_FORCING_S(
362       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
363       I           myCurrentTime,myThid)       I           myTime, myThid )
364    
365  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
366  C     *==========================================================*  C     *==========================================================*
367  C     | S/R EXTERNAL_FORCING_S                                      C     | S/R EXTERNAL_FORCING_S
368  C     | o Contains problem specific forcing for merid velocity.    C     | o Contains problem specific forcing for merid velocity.
369  C     *==========================================================*  C     *==========================================================*
370  C     | Adds terms to gS for forcing by external sources            C     | Adds terms to gS for forcing by external sources
371  C     | e.g. fresh-water flux, climatalogical relaxation.......    C     | e.g. fresh-water flux, climatalogical relaxation, etc ...
372  C     *==========================================================*  C     *==========================================================*
373  C     \ev  C     \ev
374    
# Line 305  C     == Global data == Line 384  C     == Global data ==
384    
385  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
386  C     == Routine arguments ==  C     == Routine arguments ==
387  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
388  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
389  C     jMin  C     bi,bj     :: Current tile indices
390  C     jMax  C     kLev      :: Current vertical level index
391  C     kLev  C     myTime    :: Current time in simulation
392    C     myThid    :: Thread Id number
393        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
394        _RL myCurrentTime        _RL myTime
395        INTEGER myThid        INTEGER myThid
396    
397  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
398  C     == Local variables ==  C     == Local variables ==
399  C     Loop counters  C     i,j       :: Loop counters
400        INTEGER I, J  C     kSurface  :: index of surface layer
401  C     number of surface interface layer        INTEGER i, j
402        INTEGER kSurface        INTEGER kSurface
403  CEOP  CEOP
404    
405        if ( buoyancyRelation .eq. 'OCEANICP' ) then        IF ( fluidIsAir ) THEN
406           kSurface = 0
407          ELSEIF ( usingPCoords ) THEN
408         kSurface = Nr         kSurface = Nr
409        else        ELSE
410         kSurface = 1         kSurface = 1
411        endif        ENDIF
   
412    
413  C--   Forcing term  C--   Forcing term
414    #ifdef ALLOW_AIM
415          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_S(
416         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
417         &                      myTime, myThid )
418    #endif /* ALLOW_AIM */
419    
420    #ifdef ALLOW_FIZHI
421          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_S(
422         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
423         &                      myTime, myThid )
424    #endif /* ALLOW_FIZHI */
425    
426  C     Add fresh-water in top-layer  C     Add fresh-water in top-layer
427        IF ( kLev .EQ. kSurface ) THEN        IF ( kLev .EQ. kSurface ) THEN
428         DO j=jMin,jMax         DO j=1,sNy
429          DO i=iMin,iMax          DO i=1,sNx
430           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
431       &     +surfaceForcingS(i,j,bi,bj)       &     +surfaceForcingS(i,j,bi,bj)
432       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)       &     *recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)
# Line 341  C     Add fresh-water in top-layer Line 434  C     Add fresh-water in top-layer
434         ENDDO         ENDDO
435        ENDIF        ENDIF
436    
437  #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_SPONGE))  #ifdef ALLOW_OBCS
438        IF (useOBCS) THEN        IF (useOBCS) THEN
439         CALL OBCS_SPONGE_S(         CALL OBCS_SPONGE_S(
440       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
441       I           myCurrentTime,myThid)       I           myTime, myThid )
442        ENDIF        ENDIF
443  #endif  #endif
444    

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

  ViewVC Help
Powered by ViewVC 1.1.22