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

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

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


Revision 1.5 - (hide annotations) (download)
Wed Feb 23 05:31:03 2005 UTC (19 years, 2 months ago) by edhill
Branch: MAIN
Changes since 1.4: +5 -1 lines
 o per talk with JMC today, the diag pickups are now wrapped in an
   "#ifdef DIAGNOSTICS_HAS_PICKUP" so its easier to ignore

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

  ViewVC Help
Powered by ViewVC 1.1.22