/[MITgcm]/MITgcm_contrib/darwin2/pkg/darwin/dic_diags.F
ViewVC logotype

Annotation of /MITgcm_contrib/darwin2/pkg/darwin/dic_diags.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Wed Apr 13 18:56:24 2011 UTC (14 years, 3 months ago) by jahn
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt62v_20110413, ctrb_darwin2_ckpt62w_20110426, ctrb_darwin2_baseline
darwin2 initial checkin

1 jahn 1.1 #include "CPP_OPTIONS.h"
2     #include "PTRACERS_OPTIONS.h"
3     #include "DARWIN_OPTIONS.h"
4    
5     #ifdef ALLOW_PTRACERS
6     #ifdef ALLOW_DARWIN
7    
8     #ifdef ALLOW_CARBON
9    
10     CBOP
11     CStartOfInterface
12     SUBROUTINE DIC_DIAGS( myTime, myIter, myThid )
13     C /==========================================================\
14     C | SUBROUTINE DIC_BIOTIC_DIAGS |
15     C | o Do DIC diagnostic output |
16     C |==========================================================|
17     C \==========================================================/
18     IMPLICIT NONE
19    
20     C === Global variables ===
21     #include "SIZE.h"
22     #include "EEPARAMS.h"
23     #include "PARAMS.h"
24     #include "DARWIN_FLUX.h"
25     #include "PTRACERS_SIZE.h"
26     #include "PTRACERS_PARAMS.h"
27     C == Routine arguments ==
28     C myTime - Current time of simulation ( s )
29     C myIter - Iteration number
30     C myThid - Number of this instance of INI_FORCING
31     _RL myTime
32     INTEGER myIter
33     INTEGER myThid
34     CEndOfInterface
35    
36    
37     C == Local variables ==
38     LOGICAL DIFFERENT_MULTIPLE
39     EXTERNAL DIFFERENT_MULTIPLE
40     INTEGER bi, bj, k
41     CHARACTER*(MAX_LEN_MBUF) suff
42     CHARACTER*(1) pf
43    
44     IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
45     pf(1:1) = 'D'
46     ELSE
47     pf(1:1) = 'R'
48     ENDIF
49    
50     #ifdef ALLOW_TIMEAVE
51    
52     C Dump files and restart average computation if needed
53     IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock).
54     & and.myIter.ne.nIter0 ) THEN
55    
56     C Normalize by integrated time
57     DO bj = myByLo(myThid), myByHi(myThid)
58     DO bi = myBxLo(myThid), myBxHi(myThid)
59     CALL TIMEAVE_NORMALIZ(SURave,dic_timeave, 1 ,
60     & bi,bj,myThid)
61     CALL TIMEAVE_NORMALIZ(SURCave,dic_timeave, 1 ,
62     & bi,bj,myThid)
63     CALL TIMEAVE_NORMALIZ(SUROave,dic_timeave, 1 ,
64     & bi,bj,myThid)
65     CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
66     & bi,bj,myThid)
67     CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, 1 ,
68     & bi,bj,myThid)
69     ENDDO
70     ENDDO
71    
72     IF ( PTRACERS_timeave_mdsio ) THEN
73     WRITE(suff,'(I10.10)') myIter
74     CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
75     & myIter,myThid)
76     CALL WRITE_FLD_XY_RL('DIC_SurCtave.',suff,SURCave,
77     & myIter,myThid)
78     CALL WRITE_FLD_XY_RL('DIC_SurOtave.',suff,SUROave,
79     & myIter,myThid)
80     CALL WRITE_FLD_XY_RL('DIC_pHtave.',suff,pHave,
81     & myIter,myThid)
82     CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave,
83     & myIter,myThid)
84     ENDIF
85    
86     #ifdef ALLOW_MNC
87     IF ( PTRACERS_timeave_mnc ) THEN
88     CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
89     CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
90     CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
91     CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
92     CALL MNC_CW_RL_W(
93     & pf,'dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
94     CALL MNC_CW_RL_W(
95     & pf,'dic_tave',0,0,'dic_SURC_ave',SURCave,myThid)
96     CALL MNC_CW_RL_W(
97     & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
98     CALL MNC_CW_RL_W(
99     & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
100     CALL MNC_CW_RL_W(
101     & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
102     ENDIF
103     #endif
104    
105     C Reset averages to zero
106     DO bj = myByLo(myThid), myByHi(myThid)
107     DO bi = myBxLo(myThid), myBxHi(myThid)
108     CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
109     CALL TIMEAVE_RESET(SURCave,1,bi,bj,myThid)
110     CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
111     CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
112     CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
113     do k=1,Nr
114     DIC_TimeAve(bi,bj,k)=0.d0
115     enddo
116     ENDDO
117     ENDDO
118    
119     ENDIF
120    
121     #endif /*TIMEAVE*/
122    
123     RETURN
124     END
125     #endif /*ALLOW_CARBON*/
126    
127     #endif /*DARWIN*/
128     #endif /*ALLOW_PTRACERS*/
129     c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22