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 "ATM_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 ATM_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 "ATMCPL.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( ocMxlD , 'CPL_MxlD', |
51 |
I 0, 1, 0, 1, 1, myThid ) |
52 |
CALL DIAGNOSTICS_FILL( SSTocn , 'CPL_SST ', |
53 |
I 0, 1, 0, 1, 1, myThid ) |
54 |
CALL DIAGNOSTICS_FILL( SSSocn , 'CPL_SSS ', |
55 |
I 0, 1, 0, 1, 1, myThid ) |
56 |
CALL DIAGNOSTICS_FILL( vSqocn , 'CPL_Vel2', |
57 |
I 0, 1, 0, 1, 1, myThid ) |
58 |
#ifdef ALLOW_AIM |
59 |
IF ( atm_cplExch_DIC ) THEN |
60 |
CALL DIAGNOSTICS_FILL( flxCO2ocn, 'CPL_fCO2', |
61 |
I 0, 1, 0, 1, 1, myThid ) |
62 |
ENDIF |
63 |
#endif /* ALLOW_AIM */ |
64 |
#ifdef ALLOW_THSICE |
65 |
IF ( atm_cplExch2W_sIce ) THEN |
66 |
CALL DIAGNOSTICS_FILL( sIceFrac_cpl , 'CPL_icFr', |
67 |
I 0, 1, 0, 1, 1, myThid ) |
68 |
C Ice-fraction weighted quantities: |
69 |
tmpFac = 1. _d 0 |
70 |
CALL DIAGNOSTICS_FRACT_FILL( |
71 |
I sIceThick_cpl, sIceFrac_cpl, |
72 |
I tmpFac, 1, 'CPL_iceH', |
73 |
I 0, 1, 0, 1, 1, myThid ) |
74 |
CALL DIAGNOSTICS_FRACT_FILL( |
75 |
I sIceSnowH_cpl, sIceFrac_cpl, |
76 |
I tmpFac, 1, 'CPL_snwH', |
77 |
I 0, 1, 0, 1, 1, myThid ) |
78 |
|
79 |
C Ice-Volume weighted quantities: |
80 |
IF ( DIAGNOSTICS_IS_ON('CPL_Qic1',myThid) .OR. |
81 |
& DIAGNOSTICS_IS_ON('CPL_Qic2',myThid) ) THEN |
82 |
DO bj=myByLo(myThid),myByHi(myThid) |
83 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
84 |
|
85 |
DO j=1-OLy,sNy+OLy |
86 |
DO i=1-OLx,sNx+OLx |
87 |
tmpFld(i,j) = sIceFrac_cpl(i,j,bi,bj) |
88 |
& * sIceThick_cpl(i,j,bi,bj) |
89 |
ENDDO |
90 |
ENDDO |
91 |
CALL DIAGNOSTICS_FRACT_FILL( |
92 |
I sIceQ1_cpl(1-OLx,1-OLy,bi,bj), |
93 |
I tmpFld, tmpFac, 1, 'CPL_Qic1', |
94 |
I 0, 1, 2,bi,bj, myThid ) |
95 |
CALL DIAGNOSTICS_FRACT_FILL( |
96 |
I sIceQ2_cpl(1-OLx,1-OLy,bi,bj), |
97 |
I tmpFld, tmpFac, 1, 'CPL_Qic2', |
98 |
I 0, 1, 2,bi,bj, myThid ) |
99 |
|
100 |
ENDDO |
101 |
ENDDO |
102 |
ENDIF |
103 |
|
104 |
ENDIF |
105 |
#endif /* ALLOW_THSICE */ |
106 |
|
107 |
ENDIF |
108 |
|
109 |
#endif /* ALLOW_DIAGNOSTICS */ |
110 |
RETURN |
111 |
END |