C $Header: /u/gcmpack/MITgcm/pkg/atm_compon_interf/cpl_diagnostics_fill.F,v 1.1 2016/01/06 00:36:02 jmc Exp $ C $Name: $ #include "ATM_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 ATM_CPL variables C !USES: IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "CPL_PARAMS.h" #include "ATMCPL.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( ocMxlD , 'CPL_MxlD', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( SSTocn , 'CPL_SST ', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( SSSocn , 'CPL_SSS ', I 0, 1, 0, 1, 1, myThid ) CALL DIAGNOSTICS_FILL( vSqocn , 'CPL_Vel2', I 0, 1, 0, 1, 1, myThid ) #ifdef ALLOW_AIM IF ( atm_cplExch_DIC ) THEN CALL DIAGNOSTICS_FILL( flxCO2ocn, 'CPL_fCO2', I 0, 1, 0, 1, 1, myThid ) ENDIF #endif /* ALLOW_AIM */ #ifdef ALLOW_THSICE IF ( atm_cplExch2W_sIce ) THEN CALL DIAGNOSTICS_FILL( sIceFrac_cpl , 'CPL_icFr', I 0, 1, 0, 1, 1, myThid ) 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