C $Header: /u/gcmpack/MITgcm/pkg/ocn_compon_interf/ocn_store_my_data.F,v 1.2 2004/07/26 20:13:47 jmc Exp $ C $Name: $ #include "CPP_OPTIONS.h" CStartOfInterface SUBROUTINE OCN_STORE_MY_DATA( I myTime, myIter, bi,bj, myThid ) C /==========================================================\ C | SUBROUTINE OCN_STORE_MY_DATA | C | o Routine for controlling storage of coupling data to | C | to the coupling layer. | C |==========================================================| C | This version talks to the MIT Coupler. It uses the MIT | C | Coupler "checkpoint1" library calls. | C \==========================================================/ IMPLICIT NONE C == Global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "CPL_PARAMS.h" #include "GRID.h" #include "SURFACE.h" #include "DYNVARS.h" #include "OCNCPL.h" C == Routine arguments == C myTime - Current internal time. C myIter - Current timestep number. C bi,bj - Current tile indices C myThid - Thread number for this instance of the routine _RL myTime INTEGER myIter INTEGER bi,bj INTEGER myThid CEndOfInterface C == Local variables == C i,j :: Loop variables INTEGER i,j IF ( cpl_earlyExpImpCall ) THEN DO j=1,sNy DO i=1,sNx SSTocn2cpl(i,j,bi,bj) = theta(i,j,1,bi,bj) SSSocn2cpl(i,j,bi,bj) = salt (i,j,1,bi,bj) ENDDO ENDDO ELSE DO j=1,sNy DO i=1,sNx SSTocn2cpl(i,j,bi,bj) = gT(i,j,1,bi,bj) SSSocn2cpl(i,j,bi,bj) = gS(i,j,1,bi,bj) ENDDO ENDDO ENDIF #ifdef NONLIN_FRSURF IF ( nonlinFreeSurf.GT.0 .AND. & (staggerTimeStep .OR. .NOT.cpl_earlyExpImpCall ) ) THEN IF ( select_rStar.GT.0 ) THEN DO j=1,sNy DO i=1,sNx ocMxlD2cpl(i,j,bi,bj) = & h0FacC(i,j,1,bi,bj)*rStarFacC(i,j,bi,bj)*drF(1) ENDDO ENDDO ELSE DO j=1,sNy DO i=1,sNx ocMxlD2cpl(i,j,bi,bj) = hFac_surfC(i,j,bi,bj)*drF(1) ENDDO ENDDO ENDIF ELSE #else /* NONLIN_FRSURF */ IF (.TRUE.) THEN #endif /* NONLIN_FRSURF */ DO j=1,sNy DO i=1,sNx ocMxlD2cpl(i,j,bi,bj) = hFacC(i,j,1,bi,bj)*drF(1) ENDDO ENDDO ENDIF DO j=1,sNy DO i=1,sNx vSqocn2cpl(i,j,bi,bj) = & ( uVel(i , j,1,bi,bj)*uVel(i , j,1,bi,bj) & + uVel(i+1,j,1,bi,bj)*uVel(i+1,j,1,bi,bj) & + vVel(i,j+1,1,bi,bj)*vVel(i,j+1,1,bi,bj) & + vVel(i,j , 1,bi,bj)*vVel(i,j , 1,bi,bj) & )*0.5 _d 0 ENDDO ENDDO RETURN END