/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_write_pickup.F
ViewVC logotype

Annotation of /MITgcm/pkg/diagnostics/diagnostics_write_pickup.F

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


Revision 1.6 - (hide annotations) (download)
Wed Feb 23 16:30:19 2005 UTC (19 years, 2 months ago) by edhill
Branch: MAIN
CVS Tags: checkpoint57g_post, checkpoint57e_post, checkpoint57g_pre, checkpoint57f_pre, eckpoint57e_pre, checkpoint57h_done, checkpoint57f_post, checkpoint57h_pre, checkpoint57h_post
Changes since 1.5: +7 -5 lines
 o fix pickups to use the indexing recommended by JMC

1 edhill 1.6 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_write_pickup.F,v 1.5 2005/02/23 05:31:03 edhill Exp $
2 edhill 1.1 C $Name: $
3    
4     #include "DIAG_OPTIONS.h"
5    
6     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7     CBOP
8     C !ROUTINE: DIAGNOSTICS_WRITE_PICKUP
9     C !INTERFACE:
10     SUBROUTINE DIAGNOSTICS_WRITE_PICKUP(
11     I suff,
12     I myTime,
13     I myIter,
14     I myThid )
15    
16     C !DESCRIPTION:
17     C Writes current state of the diagnostics package.
18    
19     C !USES:
20     IMPLICIT NONE
21    
22     C == Global variables ===
23     #include "SIZE.h"
24     #include "EEPARAMS.h"
25     #include "PARAMS.h"
26     #include "DIAGNOSTICS_SIZE.h"
27     #include "DIAGNOSTICS.h"
28    
29     C !INPUT/OUTPUT PARAMETERS:
30     C suff :: suffix for pickup file (eg. ckptA or 0000000010)
31     C myTime :: current time
32     C myIter :: time-step number
33     C myThid :: Number of this instance
34     CHARACTER*(*) suff
35     _RL myTime
36     INTEGER myIter
37     INTEGER myThid
38    
39     #ifdef ALLOW_DIAGNOSTICS
40 edhill 1.5 #ifdef DIAGNOSTICS_HAS_PICKUP
41 edhill 1.1
42     C !LOCAL VARIABLES:
43     C fn :: character buffer for creating filename
44     C prec :: precision of pickup files
45     c INTEGER prec, iChar, lChar, k
46 edhill 1.4 INTEGER prec, lChar, i, sn
47 edhill 1.1 CHARACTER*(MAX_LEN_FNAM) fn
48    
49     INTEGER ILNBLNK
50     EXTERNAL ILNBLNK
51    
52 edhill 1.4 #ifdef ALLOW_MDSIO
53     LOGICAL lgf
54 edhill 1.6 INTEGER dUnit, n, m
55 edhill 1.4 #endif /* ALLOW_MDSIO */
56    
57 edhill 1.2 #ifdef ALLOW_MNC
58     INTEGER ii
59     CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn
60     INTEGER CW_DIMS, NLEN
61     PARAMETER ( CW_DIMS = 10 )
62     PARAMETER ( NLEN = 80 )
63     INTEGER dim(CW_DIMS), ib(CW_DIMS), ie(CW_DIMS)
64     CHARACTER*(NLEN) dn(CW_DIMS)
65     CHARACTER*(NLEN) d_cw_name
66     CHARACTER*(NLEN) dn_blnk
67     #endif /* ALLOW_MNC */
68    
69 edhill 1.1 CEOP
70    
71     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
72    
73     IF (diag_pickup_write) THEN
74    
75 edhill 1.2 #ifdef ALLOW_MNC
76     IF (diag_pickup_write_mnc) THEN
77     DO i = 1,NLEN
78     dn_blnk(i:i) = ' '
79     ENDDO
80     DO i = 1,MAX_LEN_FNAM
81     diag_mnc_bn(i:i) = ' '
82     ENDDO
83     WRITE(diag_mnc_bn,'(A)') 'pickup_diagnostics'
84    
85     C Update the record dimension by writing the iteration number
86     CALL MNC_CW_SET_UDIM(diag_mnc_bn, -1, myThid)
87     CALL MNC_CW_I_W_S('I',diag_mnc_bn,0,0,'T',myIter,myThid)
88     CALL MNC_CW_SET_UDIM(diag_mnc_bn, 0, myThid)
89 edhill 1.4
90     C Write the qdiag() array
91 edhill 1.2 d_cw_name(1:NLEN) = dn_blnk(1:NLEN)
92     DO ii = 1,CW_DIMS
93     dn(ii)(1:NLEN) = dn_blnk(1:NLEN)
94     ENDDO
95     d_cw_name(1:10) = 'diag_state'
96     dn(1)(1:3) = 'Xp1'
97     dim(1) = sNx + 2*OLx
98     ib(1) = OLx + 1
99     ie(1) = OLx + sNx + 1
100     dn(2)(1:3) = 'Yp1'
101     dim(2) = sNy + 2*OLy
102     ib(2) = OLy + 1
103     ie(2) = OLy + sNy + 1
104 edhill 1.4 dn(3)(1:2) = 'Nd'
105 edhill 1.2 dim(3) = numdiags
106     ib(3) = 1
107     ie(3) = numdiags
108     dn(4)(1:1) = 'T'
109     dim(4) = -1
110     ib(4) = 1
111     ie(4) = 1
112    
113     CALL MNC_CW_ADD_GNAME(d_cw_name, 4,
114     & dim, dn, ib, ie, myThid)
115     CALL MNC_CW_ADD_VNAME(d_cw_name, d_cw_name,
116     & 4,5, myThid)
117     CALL MNC_CW_ADD_VATTR_TEXT(d_cw_name,'description',
118     & 'diagnostics state',myThid)
119    
120     CALL MNC_CW_RL_W('D',diag_mnc_bn,0,0,
121     & d_cw_name, qdiag, myThid)
122    
123     CALL MNC_CW_DEL_VNAME(d_cw_name, myThid)
124     CALL MNC_CW_DEL_GNAME(d_cw_name, myThid)
125 edhill 1.4
126     C Write the ndiag() array
127     d_cw_name(1:NLEN) = dn_blnk(1:NLEN)
128     DO ii = 1,CW_DIMS
129     dn(ii)(1:NLEN) = dn_blnk(1:NLEN)
130     ENDDO
131     d_cw_name(1:10) = 'diag_count'
132     dn(1)(1:2) = 'Nd'
133     dim(1) = numdiags
134     ib(1) = 1
135     ie(1) = numdiags
136     dn(2)(1:1) = 'T'
137     dim(2) = -1
138     ib(2) = 1
139     ie(2) = 1
140    
141     CALL MNC_CW_ADD_GNAME(d_cw_name, 2,
142     & dim, dn, ib, ie, myThid)
143     CALL MNC_CW_ADD_VNAME(d_cw_name, d_cw_name,
144     & 4,5, myThid)
145     CALL MNC_CW_ADD_VATTR_TEXT(d_cw_name,'description',
146     & 'diagnostics state',myThid)
147 edhill 1.2
148 edhill 1.6 CALL MNC_CW_I_W('I',diag_mnc_bn,0,0,
149 edhill 1.4 & d_cw_name, ndiag, myThid)
150    
151     CALL MNC_CW_DEL_VNAME(d_cw_name, myThid)
152     CALL MNC_CW_DEL_GNAME(d_cw_name, myThid)
153    
154    
155 edhill 1.2 ENDIF
156     #endif
157    
158 edhill 1.4 #ifdef ALLOW_MDSIO
159 edhill 1.1 IF (diag_pickup_write_mdsio) THEN
160 edhill 1.4 _BEGIN_MASTER( myThid )
161    
162     sn = ILNBLNK(suff)
163    
164     C Write qdiag()
165     DO i = 1,80
166     fn(i:i) = ' '
167     ENDDO
168     write(fn,'(a,a)') 'pickup_qdiag.', suff(1:sn)
169     prec = precFloat64
170     lgf = globalFiles
171 edhill 1.1 CALL MDSWRITEFIELD(fn,prec,lgf,'RL',numdiags,qdiag,
172     & 1,myIter,myThid)
173 edhill 1.4
174     C Write ndiag()
175     DO i = 1,80
176     fn(i:i) = ' '
177     ENDDO
178     WRITE(fn,'(a,a)') 'pickup_ndiag.', suff(1:sn)
179     CALL MDSFINDUNIT( dUnit, mythid )
180     OPEN( dUnit, file=fn )
181 edhill 1.6 DO n = 1,nlists
182     DO m = 1,nfields(n)
183     WRITE(dUnit,'(I10)') ndiag(jdiag(m,n))
184     ENDDO
185 edhill 1.4 ENDDO
186     CLOSE( dUnit )
187     _END_MASTER( myThid )
188 edhill 1.1 ENDIF
189 edhill 1.4 #endif /* ALLOW_MDSIO */
190 edhill 1.1
191     ENDIF
192    
193     #endif /* ALLOW_DIAGNOSTICS */
194 edhill 1.5 #endif /* DIAGNOSTICS_HAS_PICKUP */
195 edhill 1.1
196     RETURN
197     END

  ViewVC Help
Powered by ViewVC 1.1.22