/[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.4 by adcroft, Wed May 5 14:52:49 1999 UTC revision 1.53 by gforget, Fri May 30 02:45:43 2008 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7  CStartOfInterface  CBOP
8    C     !ROUTINE: EXTERNAL_FORCING_U
9    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     /==========================================================\  C     !DESCRIPTION: \bv
14  C     | S/R EXTERNAL_FORCING_U                                   |  C     *==========================================================*
15  C     | o Contains problem specific forcing for zonal velocity.  |  C     | S/R EXTERNAL_FORCING_U
16  C     |==========================================================|  C     | o Contains problem specific forcing for zonal velocity.
17  C     | Adds terms to gU for forcing by external sources         |  C     *==========================================================*
18  C     | e.g. wind stress, bottom friction etc..................  |  C     | Adds terms to gU for forcing by external sources
19  C     \==========================================================/  C     | e.g. wind stress, bottom friction etc ...
20        IMPLICIT NONE  C     *==========================================================*
21    C     \ev
22    
23    C     !USES:
24          IMPLICIT NONE
25  C     == Global data ==  C     == Global data ==
26  #include "SIZE.h"  #include "SIZE.h"
27  #include "EEPARAMS.h"  #include "EEPARAMS.h"
# Line 23  C     == Global data == Line 30  C     == Global data ==
30  #include "DYNVARS.h"  #include "DYNVARS.h"
31  #include "FFIELDS.h"  #include "FFIELDS.h"
32    
33    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
 CEndOfInterface  
44    
45    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          INTEGER i, j
50          INTEGER kSurface
51    CEOP
52    
53          IF ( fluidIsAir ) THEN
54           kSurface = 0
55          ELSEIF ( usingPCoords ) THEN
56           kSurface = Nr
57          ELSE
58           kSurface = 1
59          ENDIF
60    
61  C--   Forcing term  C--   Forcing term
62    #ifdef ALLOW_AIM
63          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_U(
64         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
65         &                      myTime, myThid )
66    #endif /* ALLOW_AIM */
67    
68    #ifdef ALLOW_FIZHI
69          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_U(
70         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
71         &                      myTime, myThid )
72    #endif /* ALLOW_FIZHI */
73    
74  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
75        IF ( kLev .EQ. 1 ) 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*fu(i,j,bi,bj)       &   +foFacMom*surfaceForcingU(i,j,bi,bj)
82       &   *horiVertRatio*recip_rhoNil*recip_dRf(kLev)       &   *recip_drF(kLev)*_recip_hFacW(i,j,kLev,bi,bj)
      &   *_maskW(i,j,kLev,bi,bj)  
83          ENDDO          ENDDO
84         ENDDO         ENDDO
85        ENDIF        ENDIF
86    
87    #ifdef ALLOW_EDDYPSI
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
95           CALL OBCS_SPONGE_U(
96         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
97         I           myTime, myThid )
98          ENDIF
99    #endif
100    
101    #ifdef ALLOW_MYPACKAGE
102          IF ( useMYPACKAGE ) CALL MYPACKAGE_TENDENCY_APPLY_U(
103         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
104         &                      myTime, myThid )
105    #endif /* ALLOW_MYPACKAGE */
106    
107        RETURN        RETURN
108        END        END
109  CStartOfInterface  
110    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
111    CBOP
112    C     !ROUTINE: EXTERNAL_FORCING_V
113    C     !INTERFACE:
114        SUBROUTINE EXTERNAL_FORCING_V(        SUBROUTINE EXTERNAL_FORCING_V(
115       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
116       I           myCurrentTime,myThid)       I           myTime, myThid )
117  C     /==========================================================\  C     !DESCRIPTION: \bv
118  C     | S/R EXTERNAL_FORCING_V                                   |  C     *==========================================================*
119  C     | o Contains problem specific forcing for merid velocity.  |  C     | S/R EXTERNAL_FORCING_V
120  C     |==========================================================|  C     | o Contains problem specific forcing for merid velocity.
121  C     | Adds terms to gV for forcing by external sources         |  C     *==========================================================*
122  C     | e.g. wind stress, bottom friction etc..................  |  C     | Adds terms to gV for forcing by external sources
123  C     \==========================================================/  C     | e.g. wind stress, bottom friction etc ...
124        IMPLICIT NONE  C     *==========================================================*
125    C     \ev
126    
127    C     !USES:
128          IMPLICIT NONE
129  C     == Global data ==  C     == Global data ==
130  #include "SIZE.h"  #include "SIZE.h"
131  #include "EEPARAMS.h"  #include "EEPARAMS.h"
# Line 74  C     == Global data == Line 134  C     == Global data ==
134  #include "DYNVARS.h"  #include "DYNVARS.h"
135  #include "FFIELDS.h"  #include "FFIELDS.h"
136    
137    C     !INPUT/OUTPUT PARAMETERS:
138  C     == Routine arguments ==  C     == Routine arguments ==
139  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
140  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
141  C     jMin  C     bi,bj     :: Current tile indices
142  C     jMax  C     kLev      :: Current vertical level index
143  C     kLev  C     myTime    :: Current time in simulation
144    C     myThid    :: Thread Id number
145        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
146        _RL myCurrentTime        _RL myTime
147        INTEGER myThid        INTEGER myThid
148  CEndOfInterface  
149    C     !LOCAL VARIABLES:
150  C     == Local variables ==  C     == Local variables ==
151  C     Loop counters  C     i,j       :: Loop counters
152        INTEGER I, J  C     kSurface  :: index of surface layer
153          INTEGER i, j
154          INTEGER kSurface
155    CEOP
156    
157          IF ( fluidIsAir ) THEN
158           kSurface = 0
159          ELSEIF ( usingPCoords ) THEN
160           kSurface = Nr
161          ELSE
162           kSurface = 1
163          ENDIF
164    
165  C--   Forcing term  C--   Forcing term
166    #ifdef ALLOW_AIM
167          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_V(
168         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
169         &                      myTime, myThid )
170    #endif /* ALLOW_AIM */
171    
172    #ifdef ALLOW_FIZHI
173          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_V(
174         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
175         &                      myTime, myThid )
176    #endif /* ALLOW_FIZHI */
177    
178  C     Add windstress momentum impulse into the top-layer  C     Add windstress momentum impulse into the top-layer
179        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
180         DO j=jMin,jMax         DO j=1,sNy+1
181          DO i=iMin,iMax  c       DO i=1,sNx
182    C-jmc: Without CD-scheme, this is OK ; but with CD-scheme, needs to cover [0:sNx+1]
183            DO i=0,sNx+1
184           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)           gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)
185       &   +foFacMom*fv(i,j,bi,bj)       &   +foFacMom*surfaceForcingV(i,j,bi,bj)
186       &   *horiVertRatio*recip_rhoNil*recip_dRf(kLev)       &   *recip_drF(kLev)*_recip_hFacS(i,j,kLev,bi,bj)
      &   *_maskS(i,j,kLev,bi,bj)  
187          ENDDO          ENDDO
188         ENDDO         ENDDO
189        ENDIF        ENDIF
190    
191    #ifdef ALLOW_EDDYPSI
192           CALL TAUEDDY_EXTERNAL_FORCING_V(
193         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
194         I           myTime, myThid )
195    #endif
196    
197    #ifdef ALLOW_OBCS
198          IF (useOBCS) THEN
199           CALL OBCS_SPONGE_V(
200         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
201         I           myTime, myThid )
202          ENDIF
203    #endif
204    
205    #ifdef ALLOW_MYPACKAGE
206          IF ( useMYPACKAGE ) CALL MYPACKAGE_TENDENCY_APPLY_V(
207         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
208         &                      myTime, myThid )
209    #endif /* ALLOW_MYPACKAGE */
210    
211        RETURN        RETURN
212        END        END
213  CStartOfInterface  
214    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
215    CBOP
216    C     !ROUTINE: EXTERNAL_FORCING_T
217    C     !INTERFACE:
218        SUBROUTINE EXTERNAL_FORCING_T(        SUBROUTINE EXTERNAL_FORCING_T(
219       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
220       I           maskC,       I           myTime, myThid )
221       I           myCurrentTime,myThid)  C     !DESCRIPTION: \bv
222  C     /==========================================================\  C     *==========================================================*
223  C     | S/R EXTERNAL_FORCING_T                                   |  C     | S/R EXTERNAL_FORCING_T
224  C     | o Contains problem specific forcing for temperature.     |  C     | o Contains problem specific forcing for temperature.
225  C     |==========================================================|  C     *==========================================================*
226  C     | Adds terms to gT for forcing by external sources         |  C     | Adds terms to gT for forcing by external sources
227  C     | e.g. heat flux, climatalogical relaxation..............  |  C     | e.g. heat flux, climatalogical relaxation, etc ...
228  C     \==========================================================/  C     *==========================================================*
229        IMPLICIT NONE  C     \ev
230    
231    C     !USES:
232          IMPLICIT NONE
233  C     == Global data ==  C     == Global data ==
234  #include "SIZE.h"  #include "SIZE.h"
235  #include "EEPARAMS.h"  #include "EEPARAMS.h"
# Line 125  C     == Global data == Line 237  C     == Global data ==
237  #include "GRID.h"  #include "GRID.h"
238  #include "DYNVARS.h"  #include "DYNVARS.h"
239  #include "FFIELDS.h"  #include "FFIELDS.h"
240    #include "SURFACE.h"
241    
242    C     !INPUT/OUTPUT PARAMETERS:
243  C     == Routine arguments ==  C     == Routine arguments ==
244  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
245  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
246  C     jMin  C     bi,bj     :: Current tile indices
247  C     jMax  C     kLev      :: Current vertical level index
248  C     kLev  C     myTime    :: Current time in simulation
249        _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)  C     myThid    :: Thread Id number
250        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
251        _RL myCurrentTime        _RL myTime
252        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
253    
254    C     !LOCAL VARIABLES:
255  C     == Local variables ==  C     == Local variables ==
256  C     Loop counters  C     i,j       :: Loop counters
257        INTEGER I, J  C     kSurface  :: index of surface layer
258          INTEGER i, j
259          INTEGER kSurface
260    CEOP
261    #ifdef SHORTWAVE_HEATING
262          integer two
263          _RL minusone
264          parameter (two=2,minusone=-1.)
265          _RL swfracb(two)
266          INTEGER kp1
267    #endif
268    
269          IF ( fluidIsAir ) THEN
270           kSurface = 0
271          ELSEIF ( usingPCoords ) THEN
272           kSurface = Nr
273          ELSE
274           kSurface = 1
275          ENDIF
276    
277  C--   Forcing term  C--   Forcing term
278    #ifdef ALLOW_AIM
279          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_T(
280         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
281         &                      myTime, myThid )
282    #endif /* ALLOW_AIM */
283    
284    #ifdef ALLOW_FIZHI
285          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_T(
286         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
287         &                      myTime, myThid )
288    #endif /* ALLOW_FIZHI */
289    
290  C     Add heat in top-layer  C     Add heat in top-layer
291        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
292         DO j=jMin,jMax         DO j=1,sNy
293          DO i=iMin,iMax          DO i=1,sNx
294           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)           gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
295       &  +maskC(i,j)*(       &     +surfaceForcingT(i,j,bi,bj)
296       &   -lambdaThetaClimRelax*(theta(i,j,kLev,bi,bj)-SST(i,j,bi,bj))       &     *recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)
297       &   -Qnet(i,j,bi,bj)*recip_Cp*recip_rhoNil*recip_dRf(kLev) )          ENDDO
298           ENDDO
299          ENDIF
300    
301    cph#ifndef ALLOW_AUTODIFF_TAMC
302    cph I didnt put this ifndef here.
303          IF (linFSConserveTr) THEN
304           DO j=1,sNy
305            DO i=1,sNx
306              IF (kLev .EQ. ksurfC(i,j,bi,bj)) THEN
307                gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
308         &        +TsurfCor*recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)
309              ENDIF
310          ENDDO          ENDDO
311         ENDDO         ENDDO
312        ENDIF        ENDIF
313    cph#endif /* ndfef ALLOW_AUTODIFF_TAMC */
314    
315    #ifdef ALLOW_SHELFICE
316          IF ( useShelfIce )
317         &     CALL SHELFICE_FORCING_T(
318         I     iMin,iMax, jMin,jMax, bi,bj, kLev,
319         I     myTime, myThid )
320    #endif /* ALLOW_SHELFICE */
321    
322    #ifdef SHORTWAVE_HEATING
323    C Penetrating SW radiation
324    c     IF ( usePenetratingSW ) THEN
325           swfracb(1)=abs(rF(klev))
326           swfracb(2)=abs(rF(klev+1))
327           CALL SWFRAC(
328         I             two, minusone,
329         U             swfracb,
330         I             myTime, 1, myThid )
331           kp1 = klev+1
332           IF (klev.EQ.Nr) THEN
333            kp1 = klev
334            swfracb(2)=0. _d 0
335           ENDIF
336           DO j=1,sNy
337            DO i=1,sNx
338             gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)
339         &   -Qsw(i,j,bi,bj)*(swfracb(1)*maskC(i,j,klev,bi,bj)
340         &                   -swfracb(2)*maskC(i,j,kp1, bi,bj))
341         &    *recip_Cp*mass2rUnit
342         &    *recip_drF(klev)*_recip_hFacC(i,j,kLev,bi,bj)
343            ENDDO
344           ENDDO
345    c     ENDIF
346    #endif
347    
348    #ifdef ALLOW_RBCS
349           IF (useRBCS) THEN
350              CALL RBCS_ADD_TENDENCY(bi,bj,klev, 1,
351         &                            myTime, myThid )
352           ENDIF
353    #endif
354    
355    #ifdef ALLOW_OBCS
356          IF (useOBCS) THEN
357           CALL OBCS_SPONGE_T(
358         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
359         I           myTime, myThid )
360          ENDIF
361    #endif
362    
363    #ifdef ALLOW_MYPACKAGE
364          IF ( useMYPACKAGE ) CALL MYPACKAGE_TENDENCY_APPLY_T(
365         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
366         &                      myTime, myThid )
367    #endif /* ALLOW_MYPACKAGE */
368    
369        RETURN        RETURN
370        END        END
371  CStartOfInterface  
372    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
373    CBOP
374    C     !ROUTINE: EXTERNAL_FORCING_S
375    C     !INTERFACE:
376        SUBROUTINE EXTERNAL_FORCING_S(        SUBROUTINE EXTERNAL_FORCING_S(
377       I           iMin, iMax, jMin, jMax,bi,bj,kLev,       I           iMin,iMax, jMin,jMax, bi,bj, kLev,
378       I           maskC,       I           myTime, myThid )
      I           myCurrentTime,myThid)  
 C     /==========================================================\  
 C     | S/R EXTERNAL_FORCING_S                                   |  
 C     | o Contains problem specific forcing for merid velocity.  |  
 C     |==========================================================|  
 C     | Adds terms to gS for forcing by external sources         |  
 C     | e.g. fresh-water flux, climatalogical relaxation.......  |  
 C     \==========================================================/  
       IMPLICIT NONE  
379    
380    C     !DESCRIPTION: \bv
381    C     *==========================================================*
382    C     | S/R EXTERNAL_FORCING_S
383    C     | o Contains problem specific forcing for merid velocity.
384    C     *==========================================================*
385    C     | Adds terms to gS for forcing by external sources
386    C     | e.g. fresh-water flux, climatalogical relaxation, etc ...
387    C     *==========================================================*
388    C     \ev
389    
390    C     !USES:
391          IMPLICIT NONE
392  C     == Global data ==  C     == Global data ==
393  #include "SIZE.h"  #include "SIZE.h"
394  #include "EEPARAMS.h"  #include "EEPARAMS.h"
# Line 178  C     == Global data == Line 396  C     == Global data ==
396  #include "GRID.h"  #include "GRID.h"
397  #include "DYNVARS.h"  #include "DYNVARS.h"
398  #include "FFIELDS.h"  #include "FFIELDS.h"
399    #include "SURFACE.h"
400    
401    C     !INPUT/OUTPUT PARAMETERS:
402  C     == Routine arguments ==  C     == Routine arguments ==
403  C     iMin - Working range of tile for applying forcing.  C     iMin,iMax :: Working range of x-index for applying forcing.
404  C     iMax  C     jMin,jMax :: Working range of y-index for applying forcing.
405  C     jMin  C     bi,bj     :: Current tile indices
406  C     jMax  C     kLev      :: Current vertical level index
407  C     kLev  C     myTime    :: Current time in simulation
408        _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)  C     myThid    :: Thread Id number
409        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj        INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
410        _RL myCurrentTime        _RL myTime
411        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
412    
413    C     !LOCAL VARIABLES:
414  C     == Local variables ==  C     == Local variables ==
415  C     Loop counters  C     i,j       :: Loop counters
416        INTEGER I, J  C     kSurface  :: index of surface layer
417          INTEGER i, j
418          INTEGER kSurface
419    CEOP
420    
421          IF ( fluidIsAir ) THEN
422           kSurface = 0
423          ELSEIF ( usingPCoords ) THEN
424           kSurface = Nr
425          ELSE
426           kSurface = 1
427          ENDIF
428    
429  C--   Forcing term  C--   Forcing term
430    #ifdef ALLOW_AIM
431          IF ( useAIM ) CALL AIM_TENDENCY_APPLY_S(
432         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
433         &                      myTime, myThid )
434    #endif /* ALLOW_AIM */
435    
436    #ifdef ALLOW_FIZHI
437          IF ( useFIZHI ) CALL FIZHI_TENDENCY_APPLY_S(
438         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
439         &                      myTime, myThid )
440    #endif /* ALLOW_FIZHI */
441    
442  C     Add fresh-water in top-layer  C     Add fresh-water in top-layer
443        IF ( kLev .EQ. 1 ) THEN        IF ( kLev .EQ. kSurface ) THEN
444         DO j=jMin,jMax         DO j=1,sNy
445          DO i=iMin,iMax          DO i=1,sNx
446           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)           gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
447       &   +maskC(i,j)*(       &     +surfaceForcingS(i,j,bi,bj)
448       &   -lambdaSaltClimRelax*(salt(i,j,kLev,bi,bj)-SSS(i,j,bi,bj))       &     *recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)
 #ifndef USE_NATURAL_BCS  
      &   +EmPmR(i,j,bi,bj)*recip_dRf(1)*35.  
 #endif  
      &   )  
449          ENDDO          ENDDO
450         ENDDO         ENDDO
451        ENDIF        ENDIF
452    
453    cph#ifndef ALLOW_AUTODIFF_TAMC
454    cph I didnt put this ifndef here.
455          IF (linFSConserveTr) THEN
456           DO j=1,sNy
457            DO i=1,sNx
458              IF (kLev .EQ. ksurfC(i,j,bi,bj)) THEN
459                gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
460         &        +SsurfCor*recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)
461              ENDIF
462            ENDDO
463           ENDDO
464          ENDIF
465    cph#endif /* ndfef ALLOW_AUTODIFF_TAMC */
466    
467    #ifdef ALLOW_SHELFICE
468          IF ( useShelfIce )
469         &     CALL SHELFICE_FORCING_S(
470         I     iMin,iMax, jMin,jMax, bi,bj, kLev,
471         I     myTime, myThid )
472    #endif /* ALLOW_SHELFICE */
473    
474    #ifdef ALLOW_SALT_PLUME
475          IF ( useSALT_PLUME )
476         &     CALL SALT_PLUME_TENDENCY_APPLY_S(
477         I     iMin,iMax, jMin,jMax, bi,bj, kLev,
478         I     myTime, myThid )
479    #endif /* ALLOW_SALT_PLUME */
480    
481    #ifdef ALLOW_RBCS
482           IF (useRBCS) THEN
483              CALL RBCS_ADD_TENDENCY(bi,bj,klev, 2,
484         &                            myTime, myThid )
485           ENDIF
486    #endif /* ALLOW_RBCS */
487    
488    #ifdef ALLOW_OBCS
489          IF (useOBCS) THEN
490           CALL OBCS_SPONGE_S(
491         I           iMin,iMax, jMin,jMax, bi,bj, kLev,
492         I           myTime, myThid )
493          ENDIF
494    #endif /* ALLOW_OBCS */
495    
496    #ifdef ALLOW_MYPACKAGE
497          IF ( useMYPACKAGE ) CALL MYPACKAGE_TENDENCY_APPLY_S(
498         &                      iMin,iMax, jMin,jMax, bi,bj, kLev,
499         &                      myTime, myThid )
500    #endif /* ALLOW_MYPACKAGE */
501    
502        RETURN        RETURN
503        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22