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

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

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


Revision 1.3 - (show annotations) (download)
Sun Feb 20 05:28:19 2005 UTC (19 years, 3 months ago) by edhill
Branch: MAIN
Changes since 1.2: +62 -5 lines
 o give diagnostics ability to read MNC pickup file

1 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_init_varia.F,v 1.2 2005/02/20 04:31:54 edhill Exp $
2 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 SUBROUTINE DIAGNOSTICS_INIT_VARIA(
12 I myThid )
13
14 C !DESCRIPTION:
15 C Initialize the qdiag array which accumulates during integration
16
17 C !USES:
18 IMPLICIT NONE
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #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 CHARACTER*(80) fn
32 LOGICAL glf
33
34 #ifdef ALLOW_MNC
35 INTEGER ii
36 CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn
37 INTEGER CW_DIMS, NLEN
38 PARAMETER ( CW_DIMS = 10 )
39 PARAMETER ( NLEN = 80 )
40 INTEGER dim(CW_DIMS), ib(CW_DIMS), ie(CW_DIMS)
41 CHARACTER*(NLEN) dn(CW_DIMS)
42 CHARACTER*(NLEN) d_cw_name
43 CHARACTER*(NLEN) dn_blnk
44 #endif /* ALLOW_MNC */
45
46 C Zero out the qdiag array which accumulates during integration
47 DO bj = myByLo(myThid), myByHi(myThid)
48 DO bi = myBxLo(myThid), myBxHi(myThid)
49 DO n = 1,numdiags
50 DO j = 1-Oly,sNy+Oly
51 DO i = 1-Olx,sNx+Olx
52 qdiag(i,j,n,bi,bj) = 0. _d 0
53 ENDDO
54 ENDDO
55 ENDDO
56 ENDDO
57 ENDDO
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 d_cw_name(1:NLEN) = dn_blnk(1:NLEN)
78 DO ii = 1,CW_DIMS
79 dn(ii)(1:NLEN) = dn_blnk(1:NLEN)
80 ENDDO
81 d_cw_name(1:10) = 'diag_state'
82 dn(1)(1:3) = 'Xp1'
83 dim(1) = sNx + 2*OLx
84 ib(1) = OLx + 1
85 ie(1) = OLx + sNx + 1
86 dn(2)(1:3) = 'Yp1'
87 dim(2) = sNy + 2*OLy
88 ib(2) = OLy + 1
89 ie(2) = OLy + sNy + 1
90 dn(3)(1:2) = 'Zd'
91 dim(3) = numdiags
92 ib(3) = 1
93 ie(3) = numdiags
94 dn(4)(1:1) = 'T'
95 dim(4) = -1
96 ib(4) = 1
97 ie(4) = 1
98
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
104 CALL MNC_CW_RL_R('D',diag_mnc_bn,0,0,
105 & d_cw_name, qdiag, myThid)
106
107 CALL MNC_CW_DEL_VNAME(d_cw_name, myThid)
108 CALL MNC_CW_DEL_GNAME(d_cw_name, myThid)
109
110 ENDIF
111 #endif /* ALLOW_MNC */
112
113 IF (diag_pickup_read_mdsio) THEN
114 DO i = 1,80
115 fn(i:i) = ' '
116 ENDDO
117 write(fn,'(a)') 'pickup_diagnostics'
118 glf = globalFiles
119 CALL MDSREADFIELD(fn,readBinaryPrec,glf,'RL',
120 & numdiags,qdiag,1,myThid)
121 ENDIF
122
123 ENDIF
124
125 RETURN
126 END

  ViewVC Help
Powered by ViewVC 1.1.22