C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_init_varia.F,v 1.15 2015/11/02 21:27:42 dimitri Exp $ C $Name: $ #include "SHELFICE_OPTIONS.h" CBOP SUBROUTINE SHELFICE_INIT_VARIA( myThid ) C *============================================================* C | SUBROUTINE SHELFICE_INIT_VARIA C | o Routine to initialize SHELFICE variables. C *============================================================* C | Initialize SHELFICE parameters and variables. C *============================================================* IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "SHELFICE.h" #ifdef ALLOW_COST # include "SHELFICE_COST.h" #endif /* ALLOW_COST */ C === Routine arguments === C myThid - Number of this instance of SHELFICE_INIT_VARIA INTEGER myThid CEndOfInterface #ifdef ALLOW_SHELFICE C === Local variables === C i,j,bi,bj - Loop counters INTEGER i, j, bi, bj CEOP DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx shelficeForcingT (i,j,bi,bj) = 0. _d 0 shelficeForcingS (i,j,bi,bj) = 0. _d 0 shelficeHeatFlux (i,j,bi,bj) = 0. _d 0 shelficeFreshWaterFlux(i,j,bi,bj) = 0. _d 0 shiTransCoeffT (i,j,bi,bj) = 0. _d 0 shiTransCoeffS (i,j,bi,bj) = 0. _d 0 shelficeMass (i,j,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO ENDDO IF ( .NOT. SHELFICEuseGammaFrict ) THEN IF ( SHELFICETransCoeffTFile .NE. ' ' ) THEN CALL READ_FLD_XY_RL( SHELFICETransCoeffTFile, ' ', & shiTransCoeffT, 0, myThid ) _EXCH_XY_RL( shiTransCoeffT, myThid ) DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx shiTransCoeffS(i,j,bi,bj) = 5.05 _d -3 * & shiTransCoeffT(i,j,bi,bj) ENDDO ENDDO ENDDO ENDDO ELSE C set coefficients to constant values DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx shiTransCoeffT(i,j,bi,bj) = SHELFICEheatTransCoeff shiTransCoeffS(i,j,bi,bj) = SHELFICEsaltTransCoeff ENDDO ENDDO ENDDO ENDDO ENDIF ENDIF DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx shelficeMass(i,j,bi,bj) = shelficeMassInit(i,j,bi,bj) ENDDO ENDDO ENDDO ENDDO IF (shelficeMassStepping) THEN IF ( .NOT. ( startTime .EQ. baseTime .AND. nIter0 .EQ. 0 & .AND. pickupSuff .EQ. ' ') ) THEN CALL SHELFICE_READ_PICKUP ( myThid ) ENDIF ENDIF #ifdef ALLOW_COST DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx cMeanSHIforT (i,j,bi,bj) = 0. _d 0 cMeanSHIforS (i,j,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO ENDDO c-- DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) objf_shelfice(bi,bj) = 0. _d 0 objf_shifwflx(bi,bj) = 0. _d 0 num_shifwflx(bi,bj) = 0. _d 0 ENDDO ENDDO #endif /* ALLOW_COST */ #endif /* ALLOW_SHELFICE */ RETURN END