C $Header: /u/gcmpack/MITgcm/pkg/bbl/bbl_init_varia.F,v 1.3 2013/08/27 21:34:21 dimitri Exp $ C $Name: $ #include "BBL_OPTIONS.h" CBOP C !ROUTINE: BBL_INIT_VARIA C !INTERFACE: SUBROUTINE BBL_INIT_VARIA( myThid ) C !DESCRIPTION: C Initialize BBL variables C !USES: IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "DYNVARS.h" #include "BBL.h" C !INPUT/OUTPUT PARAMETERS: C myThid :: my Thread Id number INTEGER myThid CEOP #ifdef ALLOW_BBL C !LOCAL VARIABLES: C i,j,bi,bj :: loop indices C kBot :: k index of bottommost wet grid INTEGER i,j,bi,bj,kBot C Initialize arrays in common blocks. DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx kBot = max(1,kLowC(i,j,bi,bj)) bbl_theta(i,j,bi,bj) = theta(i,j,kBot,bi,bj) bbl_salt (i,j,bi,bj) = salt (i,j,kBot,bi,bj) bbl_eta(i,j,bi,bj) = 0. _d 0 bbl_TendTheta(i,j,bi,bj) = 0. _d 0 bbl_TendSalt (i,j,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO ENDDO IF ( startTime.EQ.baseTime .AND. nIter0.EQ.0 & .AND. pickupSuff.EQ.' ' ) THEN C Read initialization files, if available. IF ( bbl_thetaFile .NE. ' ' ) THEN CALL READ_FLD_XY_RL( bbl_thetaFile, ' ', & bbl_theta, 0, myThid ) CALL EXCH_XY_RL( bbl_theta, myThid ) ENDIF IF ( bbl_saltFile .NE. ' ' ) THEN CALL READ_FLD_XY_RL( bbl_saltFile, ' ', & bbl_salt, 0, myThid ) CALL EXCH_XY_RL( bbl_salt, myThid ) ENDIF IF ( bbl_etaFile .NE. ' ' ) THEN CALL READ_FLD_XY_RL( bbl_etaFile, ' ', & bbl_eta, 0, myThid ) CALL EXCH_XY_RL( bbl_eta, myThid ) ENDIF ELSE C Restart from a pickup. CALL BBL_READ_PICKUP( nIter0, myThid ) C End start-from-iter-zero if/else block. ENDIF #endif /* ALLOW_BBL */ RETURN END