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

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

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


Revision 1.5 - (hide 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 jmc 1.5 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagstats_ini_io.F,v 1.4 2008/02/05 15:31:19 jmc Exp $
2 jmc 1.1 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 jmc 1.5 C myThid :: my Thread Id number
30 jmc 1.1 INTEGER myThid
31 jmc 1.5
32     C !FUNCTIONS:
33     INTEGER ILNBLNK
34     EXTERNAL ILNBLNK
35 jmc 1.1
36     C !LOCAL VARIABLES:
37     INTEGER m, n, j, iL, nUnit
38 jmc 1.5 CHARACTER*(10) suff
39 jmc 1.1 CHARACTER*(MAX_LEN_FNAM) dataFName
40 jmc 1.2 CHARACTER*(MAX_LEN_MBUF) msgBuf, tmpBuf
41 jmc 1.5 CEOP
42 jmc 1.1
43     _BEGIN_MASTER( myThid)
44    
45 jmc 1.5 IF ( diagSt_Ascii .AND. myProcId.EQ.0 ) THEN
46 jmc 1.1
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 jmc 1.5 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 jmc 1.1 iL = ILNBLNK(diagSt_Fname(n))
60 jmc 1.5 WRITE(dataFName,'(4A)')
61     & diagSt_Fname(n)(1:iL), '.', suff, '.txt'
62    
63     C- open file with corresponding file unit
64 jmc 1.1 OPEN( nUnit, FILE=dataFName, STATUS='unknown' )
65    
66 jmc 1.4 WRITE(msgBuf,'(4A,I6)') 'DIAGSTATS_INI_IO: ',
67 jmc 1.1 & 'open file: ',dataFName(1:iL+15), ' , unit=', nUnit
68     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
69 jmc 1.5 & SQUEEZE_RIGHT, myThid )
70 jmc 1.1
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 jmc 1.2 tmpBuf(1:iL) = msgBuf(1:iL)
81 jmc 1.4 WRITE(msgBuf,'(A,I3)') tmpBuf(1:iL),j
82 jmc 1.1 iL = iL+3
83     ENDIF
84     ENDDO
85 jmc 1.3 WRITE(nUnit,'(A)') msgBuf(1:iL)
86 jmc 1.1 DO j=1,diagSt_nbFlds(n),10
87 jmc 1.4 WRITE(nUnit,'(A,20A)') '# Fields :',
88 jmc 1.1 & (' ', diagSt_Flds(m,n), m=j,MIN(diagSt_nbFlds(n),j+9) )
89     ENDDO
90 jmc 1.3 DO j=1,diagSt_nbFlds(n),50
91 jmc 1.4 WRITE(nUnit,'(A,50I4)') '# Nb of levels : ',
92 jmc 1.3 & ( kdiag(jSdiag(m,n)), m=j,MIN(diagSt_nbFlds(n),j+49) )
93     ENDDO
94 jmc 1.1 WRITE(nUnit,'(2A)') '# end of header ----------------------',
95     & '--------------------------------------'
96     WRITE(nUnit,'(A)') ' '
97    
98     ENDDO
99 jmc 1.4
100 jmc 1.1 ENDIF
101    
102     _END_MASTER( myThid )
103    
104     RETURN
105     END

  ViewVC Help
Powered by ViewVC 1.1.22