C $Header: /u/gcmpack/MITgcm/pkg/ggl90/ggl90_init.F,v 1.2 2004/09/27 08:02:04 mlosch Exp $
C $Name: $
#include "GGL90_OPTIONS.h"
SUBROUTINE GGL90_INIT( 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, Km1
CHARACTER*(MAX_LEN_FNAM) fn
CHARACTER*(10) suff
INTEGER prec
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
Km1 = MAX(K-1,1)
DO J=1-Oly,sNy+Oly
DO I=1-Olx,sNx+Olx
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
recip_hFacI(I,J,K,bi,bj) = .5*hFacC(I,J,Km1,bi,bj)
& + MIN(.5,hFacC(I,J,K,bi,bj))
IF ( recip_hFacI(I,J,K,bi,bj) .NE. 0. _d 0 )
& recip_hFacI(I,J,K,bi,bj) = 1./recip_hFacI(I,J,K,bi,bj)
ENDDO
ENDDO
ENDDO
C- 2D arrays
ENDDO
ENDDO
IF ( nIter0.NE.0 ) THEN
CALL GGL90_READ_CHECKPOINT( nIter0, myThid )
ELSE
C-- Read initial turbulent kinetic energy thickness from file if available.
IF ( GGL90TKEFile .NE. ' ' ) THEN
_BEGIN_MASTER( myThid )
CALL READ_FLD_XYZ_RL( GGL90TKEFile, ' ', GGL90TKE, 0, myThid )
_END_MASTER(myThid)
_EXCH_XYZ_R8(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