C $Header: /u/gcmpack/MITgcm/pkg/ocn_compon_interf/cpl_diagnostics_fill.F,v 1.1 2016/01/06 00:36:34 jmc Exp $ C $Name: $ #include "OCN_CPL_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP 0 C !ROUTINE: CPL_DIAGNOSTICS_FILL C !INTERFACE: SUBROUTINE CPL_DIAGNOSTICS_FILL( I myTime, myIter, myThid ) C !DESCRIPTION: C Fill-in diagnostics array for OCN_CPL variables C !USES: IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "CPL_PARAMS.h" #include "OCNCPL.h" C !INPUT PARAMETERS: C myTime :: Current time of simulation ( s ) C myIter :: Current iteration number in simulation C myThid :: my Thread Id number _RL myTime INTEGER myIter, myThid CEOP #ifdef ALLOW_DIAGNOSTICS C !FUNCTIONS: #ifdef ALLOW_THSICE LOGICAL DIAGNOSTICS_IS_ON EXTERNAL #endif /* ALLOW_THSICE */ C !LOCAL VARIABLES: #ifdef ALLOW_THSICE INTEGER bi,bj INTEGER i,j _RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL tmpFac #endif /* ALLOW_THSICE */ IF ( useDiagnostics ) THEN CALL DIAGNOSTICS_FILL( atmSLPr , 'CPL_SLPr', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( HeatFlux , 'CPL_Qnet', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( qShortWave, 'CPL_Qsw ', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( tauX , 'CPL_tauX', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( tauY , 'CPL_tauY', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( FWFlux , 'CPL_FWat', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( iceSaltFlx, 'CPL_sFlx', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( seaIceMass, 'CPL_iceM', I 0, 1, 0, 1, 1, myThid ) #ifdef ALLOW_SALT_PLUME IF ( ocn_cplExch_SaltPl ) THEN CALL DIAGNOSTICS_FILL( saltPlmFlx_cpl, 'CPL_sPlm', I 0, 1, 0, 1, 1, myThid ) ENDIF #endif /* ALLOW_SALT_PLUME */ #ifdef ALLOW_DIC IF ( ocn_cplExch_RunOff ) THEN CALL DIAGNOSTICS_FILL( RunOff_cpl, 'CPL_RnOf', I 0, 1, 0, 1, 1, myThid ) ENDIF IF ( ocn_cplExch_DIC ) THEN CALL DIAGNOSTICS_FILL( airCO2 , 'CPL_aCO2', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( surfWSpeed, 'CPL_wSpd', I 0, 1, 0, 1, 1, myThid ) ENDIF #endif /* ALLOW_DIC */ #if (defined ALLOW_DIC) (defined ALLOW_THSICE) IF ( ( ocn_cplExch1W_sIce.AND.ocn_cplExch_DIC ) & .OR. ocn_cplExch2W_sIce ) THEN CALL DIAGNOSTICS_FILL( sIceFrac_cpl , 'CPL_icFr', I 0, 1, 0, 1, 1, myThid ) ENDIF #endif /* ALLOW_DIC or ALLOW_THSICE */ #ifdef ALLOW_THSICE IF ( ocn_cplExch2W_sIce ) THEN C Ice-fraction weighted quantities: tmpFac = 1. _d 0 CALL DIAGNOSTICS_FRACT_FILL( I sIceThick_cpl, sIceFrac_cpl, I tmpFac, 1, 'CPL_iceH', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FRACT_FILL( I sIceSnowH_cpl, sIceFrac_cpl, I tmpFac, 1, 'CPL_snwH', I 0, 1, 0, 1, 1, myThid ) C Ice-Volume weighted quantities: IF ( DIAGNOSTICS_IS_ON('CPL_Qic1',myThid) .OR. & DIAGNOSTICS_IS_ON('CPL_Qic2',myThid) ) THEN DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx tmpFld(i,j) = sIceFrac_cpl(i,j,bi,bj) & * sIceThick_cpl(i,j,bi,bj) ENDDO ENDDO CALL DIAGNOSTICS_FRACT_FILL( I sIceQ1_cpl(1-OLx,1-OLy,bi,bj), I tmpFld, tmpFac, 1, 'CPL_Qic1', I 0, 1, 2,bi,bj, myThid ) CALL DIAGNOSTICS_FRACT_FILL( I sIceQ2_cpl(1-OLx,1-OLy,bi,bj), I tmpFld, tmpFac, 1, 'CPL_Qic2', I 0, 1, 2,bi,bj, myThid ) ENDDO ENDDO ENDIF ENDIF #endif /* ALLOW_THSICE */ ENDIF #endif /* ALLOW_DIAGNOSTICS */ RETURN END