/[MITgcm]/MITgcm/pkg/seaice/seaice_monitor_ad.F
ViewVC logotype

Contents of /MITgcm/pkg/seaice/seaice_monitor_ad.F

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


Revision 1.5 - (show annotations) (download)
Fri Jul 6 23:07:55 2012 UTC (11 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint64, checkpoint65, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65d, checkpoint65e
Changes since 1.4: +1 -3 lines
remove #include "AD_CONFIG.h" and CPP_OPTIONS.h (not necessary)

1 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_monitor_ad.F,v 1.4 2012/02/03 13:34:32 gforget Exp $
2 C $Name: $
3
4 #include "SEAICE_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: ADSEAICE_MONITOR
9
10 C !INTERFACE:
11 SUBROUTINE ADSEAICE_MONITOR(
12 I myTime, myIter, myThid )
13
14 C !DESCRIPTION:
15 C Print some statistics about input forcing fields.
16
17 C !USES:
18 IMPLICIT NONE
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "GRID.h"
23 #include "SEAICE_SIZE.h"
24 #include "SEAICE_PARAMS.h"
25 #include "SEAICE.h"
26 #include "SEAICE_TRACER.h"
27 #ifdef ALLOW_MONITOR
28 # include "MONITOR.h"
29 #endif
30 #ifdef ALLOW_AUTODIFF
31 # ifdef ALLOW_AUTODIFF_MONITOR
32 # include "adcommon.h"
33 # endif
34 #endif
35
36 C !INPUT PARAMETERS:
37 INTEGER myIter
38 _RL myTime
39 INTEGER myThid
40 CEOP
41
42 #if ( defined (ALLOW_MONITOR) && defined (ALLOW_AUTODIFF_MONITOR) )
43
44 C === Functions ====
45 LOGICAL DIFFERENT_MULTIPLE
46 EXTERNAL DIFFERENT_MULTIPLE
47 LOGICAL MASTER_CPU_IO
48 EXTERNAL MASTER_CPU_IO
49
50 C == Local variables ==
51 CHARACTER*(MAX_LEN_MBUF) msgBuf
52 #ifdef ALLOW_SITRACER
53 INTEGER iTracer
54 CHARACTER*(MAX_LEN_MBUF) suff
55 #endif
56 #ifdef ALLOW_MNC
57 INTEGER i
58 #endif /* ALLOW_MNC */
59 _RL dummyRL(6)
60
61 IF ( DIFFERENT_MULTIPLE(adjmonitorFreq,myTime,deltaTClock)
62 & ) THEN
63
64 IF ( MASTER_CPU_IO(myThid) ) THEN
65 C-- only the master thread is allowed to switch On/Off mon_write_stdout
66 C & mon_write_mnc (since it is the only thread that uses those flags):
67
68 IF (SEAICE_mon_stdio) THEN
69 mon_write_stdout = .TRUE.
70 ELSE
71 mon_write_stdout = .FALSE.
72 ENDIF
73 mon_write_mnc = .FALSE.
74 #ifdef ALLOW_MNC
75 IF (useMNC .AND. SEAICE_mon_mnc) THEN
76 DO i = 1,MAX_LEN_MBUF
77 mon_fname(i:i) = ' '
78 ENDDO
79 mon_fname(1:14) = 'admonitor_seaice'
80 CALL MNC_CW_APPEND_VNAME(
81 & 'T', '-_-_--__-__t', 0,0, myThid)
82 CALL MNC_CW_SET_UDIM(mon_fname, -1, myThid)
83 CALL MNC_CW_RL_W_S(
84 & 'D',mon_fname,1,1,'T', myTime, myThid)
85 CALL MNC_CW_SET_UDIM(mon_fname, 0, myThid)
86 mon_write_mnc = .TRUE.
87 ENDIF
88 #endif /* ALLOW_MNC */
89
90 IF ( mon_write_stdout ) THEN
91 WRITE(msgBuf,'(2A)') '// ===========================',
92 & '============================'
93 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
94 WRITE(msgBuf,'(A)') '// Begin AD_MONITOR SEAICE statistics'
95 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
96 WRITE(msgBuf,'(2A)') '// ===========================',
97 & '============================'
98 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
99 ENDIF
100
101 C-- endif master cpu io
102 ENDIF
103
104 CALL MON_SET_PREF('ad_seaice',myThid)
105 CALL MON_OUT_I ('_tsnumber', myIter,mon_string_none,myThid)
106 CALL MON_OUT_RL('_time_sec', myTime,mon_string_none,myThid)
107
108 C Print some statistics about input forcing fields
109 #ifdef SEAICE_CGRID
110 CALL MON_WRITESTATS_RL( 1, ADUICE, '_aduice',
111 & maskInW, maskInW, rAw, drF, dummyRL, myThid )
112 #else
113 CALL MON_WRITESTATS_RL( 1, ADUICE, '_aduice',
114 & UVM, UVM, rAz, drF, dummyRL, myThid )
115 #endif
116 #ifdef SEAICE_CGRID
117 CALL MON_WRITESTATS_RL( 1, ADVICE, '_advice',
118 & maskInS, maskInS, rAs, drF, dummyRL, myThid )
119 #else
120 CALL MON_WRITESTATS_RL( 1, ADVICE, '_advice',
121 & UVM, UVM, rAz, drF, dummyRL, myThid )
122 #endif
123 CALL MON_WRITESTATS_RL( 1, ADAREA, '_adarea',
124 & maskInC, maskInC, rA , drF, dummyRL, myThid )
125 CALL MON_WRITESTATS_RL( 1, ADHEFF, '_adheff',
126 & maskInC, maskInC, rA , drF, dummyRL, myThid )
127 CALL MON_WRITESTATS_RL( 1, ADHSNOW,'_adhsnow',
128 & maskInC, maskInC, rA , drF, dummyRL, myThid )
129 #ifdef SEAICE_VARIABLE_SALINITY
130 CALL MON_WRITESTATS_RL( 1, ADHSALT,'_adhsalt',
131 & maskInC, maskInC, rA , drF, dummyRL, myThid )
132 #endif /* SEAICE_VARIABLE_SALINITY */
133
134 IF ( MASTER_CPU_IO(myThid) ) THEN
135 C-- only the master thread is allowed to switch On/Off mon_write_stdout
136 C & mon_write_mnc (since it is the only thread that uses those flags):
137
138 IF ( mon_write_stdout ) THEN
139 WRITE(msgBuf,'(2A)') '// ===========================',
140 & '============================'
141 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
142 WRITE(msgBuf,'(A)') '// End AD_MONITOR SEAICE statistics'
143 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
144 WRITE(msgBuf,'(2A)') '// ===========================',
145 & '============================'
146 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
147 ENDIF
148
149 mon_write_stdout = .FALSE.
150 mon_write_mnc = .FALSE.
151
152 C-- endif master cpu io
153 ENDIF
154
155 C endif different multiple
156 ENDIF
157
158 #endif /* ALLOW_MONITOR */
159
160 RETURN
161 END

  ViewVC Help
Powered by ViewVC 1.1.22