C $Header: /u/gcmpack/MITgcm/pkg/salt_plume/salt_plume_do_exch.F,v 1.2 2016/01/19 01:07:31 jmc Exp $ C $Name: $ #include "SALT_PLUME_OPTIONS.h" CBOP C !ROUTINE: SALT_PLUME_DO_EXCH C !INTERFACE: SUBROUTINE SALT_PLUME_DO_EXCH( I myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE SALT_PLUME_DO_EXCH C | o Apply Exchanges to SALT_PLUME variables when necessary C *==========================================================* C | o If coupled, prior to EXCH call, also apply update C | from coupling interface C *==========================================================* C \ev C !USES: IMPLICIT NONE C == Global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "SALT_PLUME.h" #ifdef ALLOW_OCN_COMPON_INTERF # include "CPL_PARAMS.h" # include "OCNCPL.h" #endif /* ALLOW_OCN_COMPON_INTERF */ C !INPUT/OUTPUT PARAMETERS: C myTime :: Current time in simulation C myIter :: Current iteration number in simulation C myThid :: my Thread Id. number _RL myTime INTEGER myIter INTEGER myThid CEOP C !LOCAL VARIABLES: #ifdef ALLOW_OCN_COMPON_INTERF INTEGER bi, bj, i, j #endif /* ALLOW_OCN_COMPON_INTERF */ #ifdef ALLOW_OCN_COMPON_INTERF c IF ( useSALT_PLUME .AND. useCoupler ) THEN IF ( useCoupler ) THEN IF ( useImportSltPlm ) THEN C- Take a fraction (SPsalFRAC) of the coupler-imported salt-flux C and apply it to salt-plume array (for vertical redistribution) DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx saltPlumeFlux(i,j,bi,bj) = saltPlmFlx_cpl(i,j,bi,bj) & * SPsalFRAC ENDDO ENDDO ENDDO ENDDO ENDIF ENDIF #endif /* ALLOW_OCN_COMPON_INTERF */ IF ( useSALT_PLUME ) THEN _EXCH_XY_RL( saltPlumeFlux, myThid ) ENDIF RETURN END