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

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

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

revision 1.1 by jmc, Mon Dec 13 21:43:54 2004 UTC revision 1.5 by edhill, Wed Feb 23 05:31:03 2005 UTC
# Line 8  CBOP 0 Line 8  CBOP 0
8  C     !ROUTINE: DIAGNOSTICS_INIT_VARIA  C     !ROUTINE: DIAGNOSTICS_INIT_VARIA
9    
10  C     !INTERFACE:  C     !INTERFACE:
11        SUBROUTINE DIAGNOSTICS_INIT_VARIA(myThid)        SUBROUTINE DIAGNOSTICS_INIT_VARIA(
12         I     myThid )
13    
14  C     !DESCRIPTION:  C     !DESCRIPTION:
15  C     Initialize the qdiag array which accumulates during integration  C     Initialize the qdiag array which accumulates during integration
16                
17  C     !USES:  C     !USES:
18        IMPLICIT NONE        IMPLICIT NONE
 #include "EEPARAMS.h"  
19  #include "SIZE.h"  #include "SIZE.h"
20    #include "EEPARAMS.h"
21    #include "PARAMS.h"
22  #include "DIAGNOSTICS_SIZE.h"  #include "DIAGNOSTICS_SIZE.h"
23  #include "DIAGNOSTICS.h"  #include "DIAGNOSTICS.h"
24    
# Line 26  CEOP Line 28  CEOP
28    
29  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
30        INTEGER i,j,n,bi,bj        INTEGER i,j,n,bi,bj
31          CHARACTER*(80) fn
32    
33    #ifdef ALLOW_MDSIO
34          LOGICAL glf
35          INTEGER dUnit
36    #endif /* ALLOW_MDSIO */
37    
38    #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  C     Zero out the qdiag array which accumulates during integration  C     Zero out the qdiag array which accumulates during integration
51        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
# Line 40  C     Zero out the qdiag array which acc Line 60  C     Zero out the qdiag array which acc
60          ENDDO          ENDDO
61        ENDDO        ENDDO
62    
63    
64    #ifdef DIAGNOSTICS_HAS_PICKUP
65    
66    C     Add pickup capability
67          IF (diag_pickup_read) THEN
68    
69    #ifdef ALLOW_MNC
70            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    C         Read the qdiag() array
84              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              CALL MNC_CW_DEL_VNAME(d_cw_name, myThid)
112              CALL MNC_CW_DEL_GNAME(d_cw_name, myThid)
113              
114    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              CALL MNC_CW_DEL_VNAME(d_cw_name, myThid)
137              CALL MNC_CW_DEL_GNAME(d_cw_name, myThid)
138    
139            ENDIF
140    #endif /* ALLOW_MNC */
141              
142    #ifdef ALLOW_MDSIO
143            IF (diag_pickup_read_mdsio) THEN
144              _BEGIN_MASTER(myThid)
145    
146    C         Read qdiag()
147              DO i = 1,80
148                fn(i:i) = ' '
149              ENDDO
150              write(fn,'(A,I10.10)') 'pickup_qdiag', nIter0
151              glf = globalFiles
152              CALL MDSREADFIELD(fn,readBinaryPrec,glf,'RL',
153         &         numdiags,qdiag,1,myThid)
154    
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            ENDIF
168    #endif /* ALLOW_MDSIO */
169    
170          ENDIF
171    
172    #endif /* DIAGNOSTICS_HAS_PICKUP */
173    
174        RETURN        RETURN
175        END        END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22