/[MITgcm]/MITgcm_contrib/many_tracers/new_code/ptracers_diagnostics_init.F
ViewVC logotype

Annotation of /MITgcm_contrib/many_tracers/new_code/ptracers_diagnostics_init.F

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


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Thu Jun 15 02:23:55 2006 UTC (19 years, 6 months ago) by cnh
Branch: initial, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
Initial checkin

1 cnh 1.1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_diagnostics_init.F,v 1.1 2004/12/19 00:02:47 jmc Exp $
2     C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: PTRACERS_DIAGNOSTICS_INIT
8     C !INTERFACE:
9     SUBROUTINE PTRACERS_DIAGNOSTICS_INIT( myThid )
10     C !DESCRIPTION:
11     C Routine to initialize pTracers diagnostics
12    
13     C !USES:
14     IMPLICIT NONE
15     C === Global variables ===
16     #include "SIZE.h"
17     #include "PTRACERS_SIZE.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "PTRACERS.h"
21     #include "GAD.h"
22    
23     C !INPUT/OUTPUT PARAMETERS:
24     C === Routine arguments ===
25     C myThid - Number of this instance of PTRACERS_DIAGNOSTICS_INIT
26     INTEGER myThid
27     CEOP
28    
29     #ifdef ALLOW_DIAGNOSTICS
30     C !LOCAL VARIABLES:
31     C === Local variables ===
32     C msgBuf - Informational/error meesage buffer
33     c CHARACTER*(MAX_LEN_MBUF) msgBuf
34    
35     INTEGER diagNum
36     CHARACTER*8 diagName
37     CHARACTER*16 diagCode
38     CHARACTER*16 diagUnits
39     CHARACTER*(80) diagTitle
40    
41     INTEGER iTrc, ilnb, tracerId
42     CHARACTER*7 trcUnits
43     CHARACTER*9 flxUnits, wUnits
44     CHARACTER*30 locName
45     CHARACTER*4 diagSufx
46     C Functions ::
47     INTEGER ILNBLNK
48     EXTERNAL ILNBLNK
49     CHARACTER*4 GAD_DIAG_SUFX
50     EXTERNAL GAD_DIAG_SUFX
51    
52     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
53    
54     C-- Add diagnostics to the (long) list
55    
56     IF ( usingPCoords ) THEN
57     flxUnits = '.Pa.m^2/s'
58     wUnits = '.Pa/s '
59     ELSE
60     flxUnits = '.m^3/s '
61     wUnits = '.m/s '
62     ENDIF
63    
64     C DO iTrc=1,MIN(99,PTRACERS_num)
65     DO iTrc=1,PTRACERS_num
66     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
67     C-- Set default name & tracer Units:
68     C WRITE(locName,'(A,I2,A)') 'Tracer ',iTrc
69     WRITE(locName,'(A,A2,A)') 'Tracer ',PTRACER_iolabel(iTrc)
70     trcUnits = '(kg/kg)'
71     C- use name & units from data.ptracers :
72     ilnb = ILNBLNK(PTRACERS_units(iTrc))
73     IF ( ilnb.GE.1 ) THEN
74     ilnb = LEN(trcUnits)
75     trcUnits = PTRACERS_units(iTrc)(1:ilnb)
76     ENDIF
77     ilnb = ILNBLNK(PTRACERS_long_names(iTrc))
78     IF ( ilnb.GE.1 ) THEN
79     ilnb = MIN(LEN(locName),ilnb)
80     WRITE(locName,'(A)') PTRACERS_long_names(iTrc)(1:ilnb)
81     ELSE
82     ilnb = ILNBLNK(PTRACERS_names(iTrc))
83     IF ( ilnb.GE.1 ) THEN
84     ilnb = MIN(LEN(locName),ilnb)
85     WRITE(locName,'(A)') PTRACERS_names(iTrc)(1:ilnb)
86     ENDIF
87     ENDIF
88     ilnb = MAX(ILNBLNK(locName),1)
89    
90     C-- Add diagnostics of Tracer concentration & u,v,w Transport
91     C WRITE(diagName,'(A,I2.2,A)') 'TRAC',iTrc,' '
92     WRITE(diagName,'(A,A2,A)') 'TRAC',PTRACER_iolabel(iTrc),' '
93     WRITE(diagTitle,'(2A)') 'Mass-Weighted ', locName(1:ilnb)
94     diagUnits = trcUnits//' '
95     diagCode = 'SM P MR '
96     CALL DIAGNOSTICS_ADD2LIST( diagNum,
97     I diagName, diagCode, diagUnits, diagTitle, myThid )
98    
99     C WRITE(diagName,'(A,I2.2,A)') 'UTRAC',iTrc,' '
100     WRITE(diagName,'(A,A2,A)') 'UTRAC',PTRACER_iolabel(iTrc),' '
101     WRITE(diagTitle,'(2A)') 'Zonal Mass-Weighted Transp of ',
102     & locName(1:ilnb)
103     diagUnits = trcUnits//'.m/s '
104     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
105     CALL DIAGNOSTICS_ADD2LIST( diagNum,
106     I diagName, diagCode, diagUnits, diagTitle, myThid )
107    
108     C WRITE(diagName,'(A,I2.2,A)') 'VTRAC',iTrc,' '
109     WRITE(diagName,'(A,A2,A)') 'VTRAC',PTRACER_iolabel(iTrc),' '
110     WRITE(diagTitle,'(2A)') 'Merid Mass-Weighted Transp of ',
111     & locName(1:ilnb)
112     diagUnits = trcUnits//'.m/s '
113     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
114     CALL DIAGNOSTICS_ADD2LIST( diagNum,
115     I diagName, diagCode, diagUnits, diagTitle, myThid )
116    
117     C WRITE(diagName,'(A,I2.2,A)') 'WTRAC',iTrc,' '
118     WRITE(diagName,'(A,A2,A)') 'WTRAC',PTRACER_iolabel(iTrc),' '
119     WRITE(diagTitle,'(2A)') 'Vert Mass-Weighted Transp of ',
120     & locName(1:ilnb)
121     diagUnits = trcUnits//wUnits
122     diagCode = 'WM MR '
123     CALL DIAGNOSTICS_ADD2LIST( diagNum,
124     I diagName, diagCode, diagUnits, diagTitle, myThid )
125    
126     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
127     C-- add diagnostics of advective & diffusive flux:
128     diagUnits = trcUnits//flxUnits
129     tracerId = iTrc + GAD_TR1 - 1
130     diagSufx = GAD_DIAG_SUFX( tracerId, myThid )
131     diagSufx(3:4) = PTRACER_iolabel(iTrc)
132    
133     C- Advective flux:
134     diagName = 'ADVr'//diagSufx
135     WRITE(diagTitle,'(2A)') 'Vertical Advective Flux of ',
136     & locName(1:ilnb)
137     diagCode = 'WM LR '
138     CALL DIAGNOSTICS_ADD2LIST( diagNum,
139     I diagName, diagCode, diagUnits, diagTitle, myThid )
140     diagName = 'ADVx'//diagSufx
141     WRITE(diagTitle,'(2A)') 'Zonal Advective Flux of ',
142     & locName(1:ilnb)
143     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
144     CALL DIAGNOSTICS_ADD2LIST( diagNum,
145     I diagName, diagCode, diagUnits, diagTitle, myThid )
146     diagName = 'ADVy'//diagSufx
147     WRITE(diagTitle,'(2A)') 'Meridional Advective Flux of ',
148     & locName(1:ilnb)
149     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
150     CALL DIAGNOSTICS_ADD2LIST( diagNum,
151     I diagName, diagCode, diagUnits, diagTitle, myThid )
152     C- Diffusive flux:
153     diagName = 'DFrE'//diagSufx
154     WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
155     & locName(1:ilnb)//' (Explicit part)'
156     diagCode = 'WM LR '
157     CALL DIAGNOSTICS_ADD2LIST( diagNum,
158     I diagName, diagCode, diagUnits, diagTitle, myThid )
159     diagName = 'DIFx'//diagSufx
160     WRITE(diagTitle,'(2A)') 'Zonal Diffusive Flux of ',
161     & locName(1:ilnb)
162     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
163     CALL DIAGNOSTICS_ADD2LIST( diagNum,
164     I diagName, diagCode, diagUnits, diagTitle, myThid )
165     diagName = 'DIFy'//diagSufx
166     WRITE(diagTitle,'(2A)') 'Meridional Diffusive Flux of ',
167     & locName(1:ilnb)
168     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
169     CALL DIAGNOSTICS_ADD2LIST( diagNum,
170     I diagName, diagCode, diagUnits, diagTitle, myThid )
171    
172     diagName = 'DFrI'//diagSufx
173     WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
174     & locName(1:ilnb)//' (Implicit part)'
175     diagCode = 'WM LR '
176     CALL DIAGNOSTICS_ADD2LIST( diagNum,
177     I diagName, diagCode, diagUnits, diagTitle, myThid )
178    
179     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
180     ENDDO
181    
182     #endif /* ALLOW_DIAGNOSTICS */
183    
184     RETURN
185     END

  ViewVC Help
Powered by ViewVC 1.1.22