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

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

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


Revision 1.2 - (show annotations) (download)
Wed Dec 15 00:18:39 2004 UTC (19 years, 6 months ago) by jmc
Branch: MAIN
Changes since 1.1: +69 -4 lines
write the list of all available diagnostics to an ascii file

1 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_set_levels.F,v 1.1 2004/12/13 21:43:54 jmc Exp $
2 C $Name: $
3
4 #include "DIAG_OPTIONS.h"
5
6 CBOP 0
7 C !ROUTINE: DIAGNOSTICS_SET_LEVELS
8
9 C !INTERFACE:
10 SUBROUTINE DIAGNOSTICS_SET_LEVELS( myThid )
11
12 C !DESCRIPTION:
13 C Initialize Diagnostic Levels, according to GDIAG
14 C for all available diagnostics
15 C Notes: needs to be called after all packages set they own available
16 C diagnostics
17
18 C \begin{center}
19 C \begin{tabular}[h]{|c|c|}\hline
20 C \textbf{Positions} & \textbf{Characters}
21 C & \textbf{Meanings} \\\hline
22 C parse(10) & 0 & levels = 0 \\
23 C & 1 & levels = 1 \\
24 C & R & levels = Nr \\
25 C & L & levels = MAX(Nr,NrPhys) \\
26 C & M & levels = MAX(Nr,NrPhys) - 1 \\
27 C \end{tabular}
28 C \end{center}
29
30 C !USES:
31 IMPLICIT NONE
32
33 #include "SIZE.h"
34 #include "EEPARAMS.h"
35 #include "PARAMS.h"
36 #include "DIAGNOSTICS_SIZE.h"
37 #include "DIAGNOSTICS.h"
38
39 #ifdef ALLOW_FIZHI
40 #include "fizhi_SIZE.h"
41 #else
42 INTEGER Nrphys
43 PARAMETER (Nrphys=0)
44 #endif
45
46 C !INPUT PARAMETERS:
47 C myThid :: my Thread Id number
48 INTEGER myThid
49 CEOP
50
51 C !LOCAL VARIABLES:
52 INTEGER l, n, nlevs
53 INTEGER dUnit, stdUnit
54 CHARACTER*(MAX_LEN_MBUF) msgBuf
55 CHARACTER*(72) ccHead, ccLine
56 INTEGER ILNBLNK
57 EXTERNAL ILNBLNK
58
59 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
60
61 nlevs = MAX(Nr,Nrphys)
62
63 c Diagnostic Levels
64 c -----------------
65 DO n = 1,ndiagt
66 IF (gdiag(n)(10:10) .EQ. '0') kdiag(n) = 0
67 IF (gdiag(n)(10:10) .EQ. '1') kdiag(n) = 1
68 IF (gdiag(n)(10:10) .EQ. 'R') kdiag(n) = Nr
69 IF (gdiag(n)(10:10) .EQ. 'L') kdiag(n) = nlevs
70 IF (gdiag(n)(10:10) .EQ. 'M') kdiag(n) = nlevs - 1
71 ENDDO
72
73 _BEGIN_MASTER( myThid )
74 stdUnit = standardMessageUnit
75 WRITE(msgBuf,'(2A)')
76 & '------------------------------------------------------------'
77 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
78 WRITE(msgBuf,'(A)') 'DIAGNOSTICS_SET_LEVELS: done'
79 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
80 WRITE(msgBuf,'(A,I4)')
81 & ' Total Nb of available Diagnostics: ndiagt=', ndiagt
82 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
83
84 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
85 C write a summary of the (long) list of all available diagnostics:
86 IF ( debugLevel.GE.debLevA ) THEN
87
88 WRITE(msgBuf,'(2A)')
89 & ' write list of available Diagnostics to file: ',
90 & 'available_diagnostics'
91 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
92
93 WRITE(ccHead,'(2A)')
94 & ' Num |<-Name->|Levs|<-parsing code->|<-- Units -->|',
95 & '<- Tile (max=80c)'
96 DO l=1,LEN(ccLine)
97 ccLine(l:l) = '-'
98 ENDDO
99
100 CALL MDSFINDUNIT( dUnit, mythid )
101 OPEN(dUnit, file='available_diagnostics', status='unknown',
102 & form='formatted')
103 WRITE(dUnit,'(A,I4)')
104 & ' Total Nb of available Diagnostics: ndiagt=', ndiagt
105 WRITE(dUnit,'(A)') ccLine
106 WRITE(dUnit,'(A)') ccHead
107 WRITE(dUnit,'(A)') ccLine
108 DO n=1,ndiagt
109 IF ( MOD(n,100).EQ.0 ) THEN
110 WRITE(dUnit,'(A)') ccLine
111 WRITE(dUnit,'(A)') ccHead
112 WRITE(dUnit,'(A)') ccLine
113 ENDIF
114 l = ILNBLNK(tdiag(n))
115 IF (l.GE.1) THEN
116 WRITE(dUnit,'(I4,3A,I3,6A)') n,' |',cdiag(n),'|',
117 & kdiag(n),' |',gdiag(n),'|',udiag(n),'|',tdiag(n)(1:l)
118 ELSE
119 WRITE(dUnit,'(I4,3A,I3,6A)') n,' |',cdiag(n),'|',
120 & kdiag(n),' |',gdiag(n),'|',udiag(n),'|'
121 ENDIF
122 ENDDO
123 WRITE(dUnit,'(A)') ccLine
124 WRITE(dUnit,'(A)') ccHead
125 WRITE(dUnit,'(A)') ccLine
126 CLOSE(dUnit)
127
128 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
129 ENDIF
130 _END_MASTER( myThid )
131
132 RETURN
133 END

  ViewVC Help
Powered by ViewVC 1.1.22