C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_fake.F,v 1.3 2014/01/09 19:36:27 gforget Exp $ C $Name: $ #include "SEAICE_OPTIONS.h" #ifdef ALLOW_EXF # include "EXF_OPTIONS.h" #endif C StartOfInterface SUBROUTINE SEAICE_FAKE( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE seaice_fake (for adjoint purpose only) | C *==========================================================* IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "DYNVARS.h" #include "GRID.h" #include "FFIELDS.h" #include "SEAICE_SIZE.h" #include "SEAICE_PARAMS.h" #include "SEAICE.h" #ifdef ALLOW_EXF # include "EXF_FIELDS.h" # include "EXF_PARAM.h" #endif C === Routine arguments === C myTime - Simulation time C myIter - Simulation timestep number C myThid - Thread no. that called this routine. _RL myTime INTEGER myIter, myThid C EndOfInterface(global-font-lock-mode 1) C === Local variables === C i,j,bi,bj - Loop counters INTEGER i, j, bi, bj _RL fac, tempFrz CHARACTER*(MAX_LEN_MBUF) msgBuf WRITE(msgBuf,'(2A)') 'SEAICE_FAKE:', & ' forward code is not meant to be used (adj only)' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R SEAICE_FAKE' DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1,sNy DO i=1,sNx c shielding effect fac=MIN(1. _d 0, MAX(0. _d 0 , 1. _d 0 - area(i,j,bi,bj))) fu(i,j,bi,bj) = fu(i,j,bi,bj) * fac fv(i,j,bi,bj) = fv(i,j,bi,bj) * fac qnet(i,j,bi,bj) = qnet(i,j,bi,bj) * fac qsw(i,j,bi,bj) = qsw(i,j,bi,bj) * fac #if (defined ALLOW_EXF) && (defined ALLOW_ATM_TEMP) c the fresh water flux at the top of the ice EmPmR(i,j,bi,bj) = maskC(i,j,1,bi,bj)*( & fac * EVAP(i,j,bi,bj) & - PRECIP(i,j,bi,bj) #ifdef ALLOW_RUNOFF & - RUNOFF(i,j,bi,bj) #endif /* ALLOW_RUNOFF */ & )*rhoConstFresh #endif c relaxation to freezing point fac=MIN(1. _d 0, MAX(0. _d 0 , area(i,j,bi,bj))) tempFrz = SEAICE_tempFrz0 + & SEAICE_dTempFrz_dS *salt(i,j,1,bi,bj) theta(i,j,1,bi,bj)=theta(i,j,1,bi,bj) + fac * & ( tempFrz-theta(i,j,1,bi,bj) ) * & SEAICE_mcPheePiston/drF(1)*SEAICE_deltaTtherm ENDDO ENDDO ENDDO ENDDO CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) _EXCH_XY_RS( qnet, myThid ) _EXCH_XY_RS( qsw, myThid ) _EXCH_XY_RS( empmr, myThid ) RETURN END