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

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

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


Revision 1.1 - (hide annotations) (download)
Wed Feb 23 15:15:30 2005 UTC (19 years, 3 months ago) by edhill
Branch: MAIN
 o from the devel HOWTO: "${PKG}_INIT_VARIA() ... Contains eventually a
   call to ${PKG}_READ_PICKUP"

1 edhill 1.1 C $Header: $
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     DO i = 1,numdiags
157     READ(dUnit,'(I10)') ndiag(i)
158     ENDDO
159     CLOSE( dUnit )
160     _END_MASTER(myThid)
161     ENDIF
162     #endif /* ALLOW_MDSIO */
163    
164     ENDIF
165    
166     #endif /* DIAGNOSTICS_HAS_PICKUP */
167    
168    
169     RETURN
170     END

  ViewVC Help
Powered by ViewVC 1.1.22