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

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

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


Revision 1.2 - (hide 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 jmc 1.2 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_set_levels.F,v 1.1 2004/12/13 21:43:54 jmc Exp $
2 jmc 1.1 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 jmc 1.2 C myThid :: my Thread Id number
48 jmc 1.1 INTEGER myThid
49     CEOP
50    
51 jmc 1.2 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 jmc 1.1 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 jmc 1.2 _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 jmc 1.1 RETURN
133     END

  ViewVC Help
Powered by ViewVC 1.1.22