C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_fields_update.F,v 1.2 2016/06/14 20:38:36 jmc Exp $ C $Name: $ #include "DIC_OPTIONS.h" CBOP C !ROUTINE: DIC_FIELDS_UPDATE C !INTERFACE: ========================================================== SUBROUTINE DIC_FIELDS_UPDATE( I bi, bj, myTime, myIter, myThid ) C !DESCRIPTION: C Update fields (needed for fluxterms or pH calculation) C with value imported from other pkgs or components C !USES: =============================================================== IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "DIC_VARS.h" #ifdef ALLOW_THSICE # include "THSICE_VARS.h" #endif #ifdef ALLOW_SEAICE # define SEAICE_EXCLUDE_WIND_STRESS # include "SEAICE_SIZE.h" # include "SEAICE.h" #endif #ifdef ALLOW_OCN_COMPON_INTERF # include "CPL_PARAMS.h" # include "OCNCPL.h" #endif /* ALLOW_OCN_COMPON_INTERF */ C !INPUT PARAMETERS: =================================================== C bi, bj :: tile indices C myTime :: Current time in simulation C myIter :: Current timestep number C myThid :: my Thread Id number INTEGER bi, bj _RL myTime INTEGER myIter INTEGER myThid #ifdef ALLOW_DIC c !LOCAL VARIABLES: =================================================== #if defined(ALLOW_THSICE) || defined(ALLOW_SEAICE) || defined(COMPONENT_MODULE) INTEGER i, j #endif c CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP IF ( useThSIce ) THEN #ifdef ALLOW_THSICE DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx fIce(i,j,bi,bj) = iceMask(i,j,bi,bj) ENDDO ENDDO #endif /* ALLOW_THSICE */ ELSEIF ( useSEAICE ) THEN #ifdef ALLOW_SEAICE DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx fIce(i,j,bi,bj) = AREA(i,j,bi,bj) ENDDO ENDDO #endif /* ALLOW_SEAICE */ ELSEIF ( useCoupler ) THEN #ifdef ALLOW_OCN_COMPON_INTERF IF ( useImportFice ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx fIce(i,j,bi,bj) = sIceFrac_cpl(i,j,bi,bj) ENDDO ENDDO ENDIF #endif /* ALLOW_OCN_COMPON_INTERF */ ENDIF #ifdef ALLOW_OCN_COMPON_INTERF IF ( useCoupler ) THEN IF ( useImportCO2 ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx AtmospCO2(i,j,bi,bj) = airCO2(i,j,bi,bj) ENDDO ENDDO ENDIF IF ( useImportWSpd ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx wind(i,j,bi,bj) = surfWSpeed(i,j,bi,bj) ENDDO ENDDO ENDIF ENDIF #endif /* ALLOW_OCN_COMPON_INTERF */ #endif /* ALLOW_DIC */ RETURN END