11 |
C !DESCRIPTION: \bv |
C !DESCRIPTION: \bv |
12 |
C *==========================================================* |
C *==========================================================* |
13 |
C | SUBROUTINE UPDATE_ETAH |
C | SUBROUTINE UPDATE_ETAH |
14 |
C | o Update etaH at the begining of the time step. |
C | o Update etaH after mom-correction-step/integr_continuity |
15 |
C | (required with NLFS to derive surface layer thickness) |
C | (required with NLFS to derive surface layer thickness) |
16 |
|
C | o Also derive SSH tendency at grid-cell Western and |
17 |
|
C | Southern edges (for hybrid sigma-coordinate) |
18 |
C *==========================================================* |
C *==========================================================* |
19 |
C \ev |
C \ev |
20 |
|
|
81 |
ENDIF |
ENDIF |
82 |
|
|
83 |
#ifdef ALLOW_OBCS |
#ifdef ALLOW_OBCS |
84 |
C- note (with Non-Lin Free-Surface): |
C-- Apply OBC to etaH (NonLin-FreeSurf): needed since viscous terms |
85 |
C 1) needs to apply OBC to etaH since viscous terms depend on hFacZ. |
C depend on hFacZ which is not only function of boundary hFac values. |
86 |
C that is not only function of boundaries hFac values. |
IF ( useOBCS.AND.nonlinFreeSurf.GT.0 ) |
87 |
C 2) has to be done before calc_surf_dr; but since obcs_calc is |
& CALL OBCS_APPLY_ETA( bi, bj, etaH, myThid ) |
|
C called later, hFacZ will lag 1 time step behind OBC update. |
|
|
C 3) avoid also unrealistic value of etaH in OB regions that |
|
|
C might produce many "WARNING" message from calc_surf_dr. |
|
|
C------- |
|
|
C-- Apply OBC to etaH if NonLin-FreeSurf, reset to zero otherwise: |
|
|
IF ( useOBCS ) CALL OBCS_APPLY_ETA( bi, bj, etaH, myThid ) |
|
88 |
#endif /* ALLOW_OBCS */ |
#endif /* ALLOW_OBCS */ |
89 |
|
|
90 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
93 |
ENDDO |
ENDDO |
94 |
ENDDO |
ENDDO |
95 |
|
|
96 |
IF (implicDiv2Dflow .NE. 1. _d 0 .OR. useOBCS ) |
IF ( implicDiv2Dflow .NE. 1. _d 0 .OR. |
97 |
|
& ( useOBCS.AND.nonlinFreeSurf.GT.0 ) ) |
98 |
& CALL EXCH_XY_RL( etaH, myThid ) |
& CALL EXCH_XY_RL( etaH, myThid ) |
99 |
|
|
100 |
c IF (useRealFreshWaterFlux .AND. myTime.EQ.startTime) |
c IF (useRealFreshWaterFlux .AND. myTime.EQ.startTime) |