C $Header: /u/gcmpack/MITgcm/pkg/ggl90/ggl90_init_varia.F,v 1.6 2010/08/09 20:34:03 gforget Exp $
C $Name: $
#include "GGL90_OPTIONS.h"
SUBROUTINE GGL90_INIT_VARIA( myThid )
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "GRID.h"
#include "GGL90.h"
C == Routine arguments ==
C myThid - Number of this instance of GGL90_INIT
INTEGER myThid
C !LOCAL VARIABLES:
C == Local variables ==
C bi,bj - Loop counters
C I,J,K
INTEGER bi, bj
INTEGER I, J, K
c INTEGER Km1
CEOP
#ifdef ALLOW_GGL90
C-- Over all tiles
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
C- 3D arrays
DO K=1,Nr
c Km1 = MAX(K-1,1)
DO J=1-Oly,sNy+Oly
DO I=1-Olx,sNx+Olx
GGL90viscArU(I,J,K,bi,bj) = 0. _d 0
GGL90viscArV(I,J,K,bi,bj) = 0. _d 0
GGL90diffKr(I,J,K,bi,bj) = 0. _d 0
CML GGL90TKE(I,J,K,bi,bj)=0. _d 0
GGL90TKE(I,J,K,bi,bj)=GGL90TKEmin*maskC(I,J,K,bi,bj)
C
C hfacs for w (=tke) control volume
C
c recip_hFacI(I,J,K,bi,bj) = .5 _d 0*hFacC(I,J,Km1,bi,bj)
c & + MIN(.5 _d 0,hFacC(I,J,K,bi,bj))
c IF ( recip_hFacI(I,J,K,bi,bj) .NE. 0. _d 0 )
c & recip_hFacI(I,J,K,bi,bj)=1. _d 0/recip_hFacI(I,J,K,bi,bj)
ENDDO
ENDDO
ENDDO
C- 2D arrays
ENDDO
ENDDO
IF ( nIter0.NE.0 .OR. pickupSuff.NE.' ' ) THEN
CALL GGL90_READ_PICKUP( nIter0, myThid )
ELSE
C-- Read initial turbulent kinetic energy thickness from file if available.
IF ( GGL90TKEFile .NE. ' ' ) THEN
CALL READ_FLD_XYZ_RL( GGL90TKEFile, ' ', GGL90TKE, 0, myThid )
_EXCH_XYZ_RL(GGL90TKE,myThid)
DO bj=myByLo(myThid),myByHi(myThid)
DO bi=myBxLo(myThid),myBxHi(myThid)
DO K=1,Nr
DO J=1-OLy,sNy+OLy
DO I=1-OLx,sNx+OLx
GGL90TKE(I,J,K,bi,bj) = MAX(GGL90TKE(I,J,K,bi,bj),
& GGL90TKEmin)*maskC(I,J,K,bi,bj)
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
ENDIF
ENDIF
#endif /* ALLOW_GGL90 */
RETURN
END