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

Contents of /MITgcm/pkg/diagnostics/diagnostics_read_pickup.F

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


Revision 1.2 - (show annotations) (download)
Wed Feb 23 15:52:02 2005 UTC (19 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.1: +8 -3 lines
try to only read counter that are used

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

  ViewVC Help
Powered by ViewVC 1.1.22