| 1 |
C $Header: /u/gcmpack/MITgcm/pkg/mypackage/mypackage_diagnostics_state.F,v 1.3 2011/08/08 14:55:55 jmc Exp $ |
| 2 |
C $Name: $ |
| 3 |
|
| 4 |
#include "OCN_CPL_OPTIONS.h" |
| 5 |
|
| 6 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
| 7 |
CBOP 0 |
| 8 |
C !ROUTINE: CPL_DIAGNOSTICS_FILL |
| 9 |
|
| 10 |
C !INTERFACE: |
| 11 |
SUBROUTINE CPL_DIAGNOSTICS_FILL( |
| 12 |
I myTime, myIter, myThid ) |
| 13 |
|
| 14 |
C !DESCRIPTION: |
| 15 |
C Fill-in diagnostics array for OCN_CPL variables |
| 16 |
|
| 17 |
C !USES: |
| 18 |
IMPLICIT NONE |
| 19 |
#include "SIZE.h" |
| 20 |
#include "EEPARAMS.h" |
| 21 |
#include "PARAMS.h" |
| 22 |
#include "CPL_PARAMS.h" |
| 23 |
#include "OCNCPL.h" |
| 24 |
|
| 25 |
C !INPUT PARAMETERS: |
| 26 |
C myTime :: Current time of simulation ( s ) |
| 27 |
C myIter :: Current iteration number in simulation |
| 28 |
C myThid :: my Thread Id number |
| 29 |
_RL myTime |
| 30 |
INTEGER myIter, myThid |
| 31 |
CEOP |
| 32 |
|
| 33 |
#ifdef ALLOW_DIAGNOSTICS |
| 34 |
C !FUNCTIONS: |
| 35 |
#ifdef ALLOW_THSICE |
| 36 |
LOGICAL DIAGNOSTICS_IS_ON |
| 37 |
EXTERNAL DIAGNOSTICS_IS_ON |
| 38 |
#endif /* ALLOW_THSICE */ |
| 39 |
|
| 40 |
C !LOCAL VARIABLES: |
| 41 |
#ifdef ALLOW_THSICE |
| 42 |
INTEGER bi,bj |
| 43 |
INTEGER i,j |
| 44 |
_RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
| 45 |
_RL tmpFac |
| 46 |
#endif /* ALLOW_THSICE */ |
| 47 |
|
| 48 |
IF ( useDiagnostics ) THEN |
| 49 |
|
| 50 |
CALL DIAGNOSTICS_FILL( atmSLPr , 'CPL_SLPr', |
| 51 |
I 0, 1, 0, 1, 1, myThid ) |
| 52 |
CALL DIAGNOSTICS_FILL( HeatFlux , 'CPL_Qnet', |
| 53 |
I 0, 1, 0, 1, 1, myThid ) |
| 54 |
CALL DIAGNOSTICS_FILL( qShortWave, 'CPL_Qsw ', |
| 55 |
I 0, 1, 0, 1, 1, myThid ) |
| 56 |
CALL DIAGNOSTICS_FILL( tauX , 'CPL_tauX', |
| 57 |
I 0, 1, 0, 1, 1, myThid ) |
| 58 |
CALL DIAGNOSTICS_FILL( tauY , 'CPL_tauY', |
| 59 |
I 0, 1, 0, 1, 1, myThid ) |
| 60 |
CALL DIAGNOSTICS_FILL( FWFlux , 'CPL_FWat', |
| 61 |
I 0, 1, 0, 1, 1, myThid ) |
| 62 |
CALL DIAGNOSTICS_FILL( iceSaltFlx, 'CPL_sFlx', |
| 63 |
I 0, 1, 0, 1, 1, myThid ) |
| 64 |
CALL DIAGNOSTICS_FILL( seaIceMass, 'CPL_iceM', |
| 65 |
I 0, 1, 0, 1, 1, myThid ) |
| 66 |
#ifdef ALLOW_SALT_PLUME |
| 67 |
IF ( ocn_cplExch_SaltPl ) THEN |
| 68 |
CALL DIAGNOSTICS_FILL( saltPlmFlx_cpl, 'CPL_sPlm', |
| 69 |
I 0, 1, 0, 1, 1, myThid ) |
| 70 |
ENDIF |
| 71 |
#endif /* ALLOW_SALT_PLUME */ |
| 72 |
#ifdef ALLOW_DIC |
| 73 |
IF ( ocn_cplExch_RunOff ) THEN |
| 74 |
CALL DIAGNOSTICS_FILL( RunOff_cpl, 'CPL_RnOf', |
| 75 |
I 0, 1, 0, 1, 1, myThid ) |
| 76 |
ENDIF |
| 77 |
IF ( ocn_cplExch_DIC ) THEN |
| 78 |
CALL DIAGNOSTICS_FILL( airCO2 , 'CPL_aCO2', |
| 79 |
I 0, 1, 0, 1, 1, myThid ) |
| 80 |
CALL DIAGNOSTICS_FILL( surfWSpeed, 'CPL_wSpd', |
| 81 |
I 0, 1, 0, 1, 1, myThid ) |
| 82 |
ENDIF |
| 83 |
#endif /* ALLOW_DIC */ |
| 84 |
#if (defined ALLOW_DIC) || (defined ALLOW_THSICE) |
| 85 |
IF ( ( ocn_cplExch1W_sIce.AND.ocn_cplExch_DIC ) |
| 86 |
& .OR. ocn_cplExch2W_sIce ) THEN |
| 87 |
CALL DIAGNOSTICS_FILL( sIceFrac_cpl , 'CPL_icFr', |
| 88 |
I 0, 1, 0, 1, 1, myThid ) |
| 89 |
ENDIF |
| 90 |
#endif /* ALLOW_DIC or ALLOW_THSICE */ |
| 91 |
#ifdef ALLOW_THSICE |
| 92 |
IF ( ocn_cplExch2W_sIce ) THEN |
| 93 |
C Ice-fraction weighted quantities: |
| 94 |
tmpFac = 1. _d 0 |
| 95 |
CALL DIAGNOSTICS_FRACT_FILL( |
| 96 |
I sIceThick_cpl, sIceFrac_cpl, |
| 97 |
I tmpFac, 1, 'CPL_iceH', |
| 98 |
I 0, 1, 0, 1, 1, myThid ) |
| 99 |
CALL DIAGNOSTICS_FRACT_FILL( |
| 100 |
I sIceSnowH_cpl, sIceFrac_cpl, |
| 101 |
I tmpFac, 1, 'CPL_snwH', |
| 102 |
I 0, 1, 0, 1, 1, myThid ) |
| 103 |
|
| 104 |
C Ice-Volume weighted quantities: |
| 105 |
IF ( DIAGNOSTICS_IS_ON('CPL_Qic1',myThid) .OR. |
| 106 |
& DIAGNOSTICS_IS_ON('CPL_Qic2',myThid) ) THEN |
| 107 |
DO bj=myByLo(myThid),myByHi(myThid) |
| 108 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
| 109 |
|
| 110 |
DO j=1-OLy,sNy+OLy |
| 111 |
DO i=1-OLx,sNx+OLx |
| 112 |
tmpFld(i,j) = sIceFrac_cpl(i,j,bi,bj) |
| 113 |
& * sIceThick_cpl(i,j,bi,bj) |
| 114 |
ENDDO |
| 115 |
ENDDO |
| 116 |
CALL DIAGNOSTICS_FRACT_FILL( |
| 117 |
I sIceQ1_cpl(1-OLx,1-OLy,bi,bj), |
| 118 |
I tmpFld, tmpFac, 1, 'CPL_Qic1', |
| 119 |
I 0, 1, 2,bi,bj, myThid ) |
| 120 |
CALL DIAGNOSTICS_FRACT_FILL( |
| 121 |
I sIceQ2_cpl(1-OLx,1-OLy,bi,bj), |
| 122 |
I tmpFld, tmpFac, 1, 'CPL_Qic2', |
| 123 |
I 0, 1, 2,bi,bj, myThid ) |
| 124 |
|
| 125 |
ENDDO |
| 126 |
ENDDO |
| 127 |
ENDIF |
| 128 |
|
| 129 |
ENDIF |
| 130 |
#endif /* ALLOW_THSICE */ |
| 131 |
|
| 132 |
ENDIF |
| 133 |
|
| 134 |
#endif /* ALLOW_DIAGNOSTICS */ |
| 135 |
RETURN |
| 136 |
END |