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

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

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


Revision 1.5 - (show annotations) (download)
Fri Mar 24 23:34:13 2017 UTC (7 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.4: +20 -16 lines
use new S/R RW_GET_SUFFIX to get file suffix (according to "rwSuffixType")

1 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagstats_ini_io.F,v 1.4 2008/02/05 15:31:19 jmc Exp $
2 C $Name: $
3
4 #include "DIAG_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: DIAGSTATS_INI_IO
8 C !INTERFACE:
9 SUBROUTINE DIAGSTATS_INI_IO( myThid )
10
11 C !DESCRIPTION: \bv
12 C *==================================================================
13 C | S/R DIAGSTATS_INI_IO
14 C | o set I/O unit for ASCII output file
15 C *==================================================================
16 C \ev
17
18 C !USES:
19 IMPLICIT NONE
20
21 C == Global variables ===
22 #include "SIZE.h"
23 #include "EEPARAMS.h"
24 #include "PARAMS.h"
25 #include "DIAGNOSTICS_SIZE.h"
26 #include "DIAGNOSTICS.h"
27
28 C !INPUT/OUTPUT PARAMETERS:
29 C myThid :: my Thread Id number
30 INTEGER myThid
31
32 C !FUNCTIONS:
33 INTEGER ILNBLNK
34 EXTERNAL ILNBLNK
35
36 C !LOCAL VARIABLES:
37 INTEGER m, n, j, iL, nUnit
38 CHARACTER*(10) suff
39 CHARACTER*(MAX_LEN_FNAM) dataFName
40 CHARACTER*(MAX_LEN_MBUF) msgBuf, tmpBuf
41 CEOP
42
43 _BEGIN_MASTER( myThid)
44
45 IF ( diagSt_Ascii .AND. myProcId.EQ.0 ) THEN
46
47 DO n=1,diagSt_nbLists
48
49 C- get a free unit number as the I/O channel for this routine
50 CALL MDSFINDUNIT( nUnit, myThid )
51 diagSt_ioUnit(n) = nUnit
52
53 C- set file name
54 IF ( rwSuffixType.EQ.0 ) THEN
55 WRITE(suff,'(I10.10)') nIter0
56 ELSE
57 CALL RW_GET_SUFFIX( suff, startTime, nIter0, myThid )
58 ENDIF
59 iL = ILNBLNK(diagSt_Fname(n))
60 WRITE(dataFName,'(4A)')
61 & diagSt_Fname(n)(1:iL), '.', suff, '.txt'
62
63 C- open file with corresponding file unit
64 OPEN( nUnit, FILE=dataFName, STATUS='unknown' )
65
66 WRITE(msgBuf,'(4A,I6)') 'DIAGSTATS_INI_IO: ',
67 & 'open file: ',dataFName(1:iL+15), ' , unit=', nUnit
68 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
69 & SQUEEZE_RIGHT, myThid )
70
71 C- write a kind of header:
72 WRITE(nUnit,'(2A)') '# header of file: ',
73 & diagSt_Fname(n)(1:iL)
74 WRITE(nUnit,'(A,F17.6)') '# frequency (s): ', diagSt_freq(n)
75 WRITE(nUnit,'(A,F17.6)') '# phase (s) : ', diagSt_phase(n)
76 WRITE(msgBuf,'(A)') '# Regions : '
77 iL = 17
78 DO j=0,nRegions
79 IF (diagSt_region(j,n).GE.1 .AND.iL+3.LE.MAX_LEN_MBUF) THEN
80 tmpBuf(1:iL) = msgBuf(1:iL)
81 WRITE(msgBuf,'(A,I3)') tmpBuf(1:iL),j
82 iL = iL+3
83 ENDIF
84 ENDDO
85 WRITE(nUnit,'(A)') msgBuf(1:iL)
86 DO j=1,diagSt_nbFlds(n),10
87 WRITE(nUnit,'(A,20A)') '# Fields :',
88 & (' ', diagSt_Flds(m,n), m=j,MIN(diagSt_nbFlds(n),j+9) )
89 ENDDO
90 DO j=1,diagSt_nbFlds(n),50
91 WRITE(nUnit,'(A,50I4)') '# Nb of levels : ',
92 & ( kdiag(jSdiag(m,n)), m=j,MIN(diagSt_nbFlds(n),j+49) )
93 ENDDO
94 WRITE(nUnit,'(2A)') '# end of header ----------------------',
95 & '--------------------------------------'
96 WRITE(nUnit,'(A)') ' '
97
98 ENDDO
99
100 ENDIF
101
102 _END_MASTER( myThid )
103
104 RETURN
105 END

  ViewVC Help
Powered by ViewVC 1.1.22