/[MITgcm]/MITgcm/pkg/mypackage/mypackage_write_pickup.F
ViewVC logotype

Annotation of /MITgcm/pkg/mypackage/mypackage_write_pickup.F

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


Revision 1.2 - (hide annotations) (download)
Sun Apr 6 02:03:17 2008 UTC (16 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63a, checkpoint60, checkpoint61, checkpoint62, checkpoint63, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.1: +4 -4 lines
change argument list of S/R MYPACKAGE_WRITE_PICKUP

1 jmc 1.2 C $Header: /u/gcmpack/MITgcm/pkg/mypackage/mypackage_write_pickup.F,v 1.1 2008/01/27 20:52:11 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "MYPACKAGE_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: MYPACKAGE_WRITE_PICKUP
8    
9     C !INTERFACE: ==========================================================
10     SUBROUTINE MYPACKAGE_WRITE_PICKUP( permPickup,
11 jmc 1.2 & suff, myTime, myIter, myThid )
12 jmc 1.1
13     C !DESCRIPTION:
14     C Writes current state of passive tracers to a pickup file
15    
16     C !USES: ===============================================================
17     IMPLICIT NONE
18     #include "SIZE.h"
19     #include "EEPARAMS.h"
20     #include "PARAMS.h"
21     #include "MYPACKAGE.h"
22    
23     C !INPUT PARAMETERS: ===================================================
24     C permPickup :: write a permanent pickup
25     C suff :: suffix for pickup file (eg. ckptA or 0000000010)
26 jmc 1.2 C myTime :: model time
27 jmc 1.1 C myIter :: time-step number
28     C myThid :: thread number
29     LOGICAL permPickup
30     CHARACTER*(*) suff
31 jmc 1.2 _RL myTime
32 jmc 1.1 INTEGER myIter
33     INTEGER myThid
34    
35     C !OUTPUT PARAMETERS: ==================================================
36     C none
37    
38     #ifdef ALLOW_MYPACKAGE
39     #if (defined MYPACKAGE_3D_STATE) || (defined MYPACKAGE_3D_STATE)
40    
41     C === Functions ====
42     INTEGER ILNBLNK
43     EXTERNAL ILNBLNK
44    
45     C !LOCAL VARIABLES: ====================================================
46     C j :: loop index / field number
47     C nj :: record number
48     C fp :: pickup-file precision
49     C glf :: local flag for "globalFiles"
50     C fn :: character buffer for creating filename
51     C nWrFlds :: number of fields being written
52     C listDim :: dimension of "wrFldList" local array
53     C wrFldList :: list of written fields
54     C msgBuf :: Informational/error message buffer
55     INTEGER j, nj, fp, lChar
56     LOGICAL glf
57     CHARACTER*(MAX_LEN_FNAM) fn
58     INTEGER listDim, nWrFlds
59     PARAMETER( listDim = 12 )
60     CHARACTER*(8) wrFldList(listDim)
61     CHARACTER*(MAX_LEN_MBUF) msgBuf
62     CEOP
63    
64     lChar = ILNBLNK(suff)
65     IF ( lChar.EQ.0 ) THEN
66     WRITE(fn,'(2A)') 'pickup_mypackage'
67     ELSE
68     WRITE(fn,'(2A)') 'pickup_mypackage.',suff(1:lChar)
69     ENDIF
70     fp = precFloat64
71     j = 0
72    
73     C Firstly, write 3-D fields as consecutive records,
74    
75     #ifdef MYPACKAGE_3D_STATE
76     C record number < 0 : a hack not to write meta files now:
77     j = j + 1
78     CALL WRITE_REC_3D_RL( fn, fp, Nr,
79     & myPa_StatScal1, -j, myIter, myThid )
80     IF (j.LE.listDim) wrFldList(j) = 'myPaSta1'
81    
82     j = j + 1
83     CALL WRITE_REC_3D_RL( fn, fp, Nr,
84     & myPa_StatScal2, -j, myIter, myThid )
85     IF (j.LE.listDim) wrFldList(j) = 'myPaSta2'
86    
87     j = j + 1
88     CALL WRITE_REC_3D_RL( fn, fp, Nr,
89     & myPa_StatVelU, -j, myIter, myThid )
90     IF (j.LE.listDim) wrFldList(j) = 'myPaStaU'
91     j = j + 1
92     CALL WRITE_REC_3D_RL( fn, fp, Nr,
93     & myPa_StatVelV, -j, myIter, myThid )
94     IF (j.LE.listDim) wrFldList(j) = 'myPaStaV'
95     #endif /* MYPACKAGE_3D_STATE */
96    
97     C- switch to 2-D fields:
98     nj = -j*Nr
99    
100     #ifdef MYPACKAGE_2D_STATE
101     j = j + 1
102     nj = nj-1
103     CALL WRITE_REC_3D_RL( fn, fp, 1,
104     & myPa_Surf1, nj, myIter, myThid )
105     IF (j.LE.listDim) wrFldList(j) = 'myPaSur1'
106    
107     j = j + 1
108     nj = nj-1
109     CALL WRITE_REC_3D_RL( fn, fp, 1,
110     & myPa_Surf2, nj, myIter, myThid )
111     IF (j.LE.listDim) wrFldList(j) = 'myPaSur2'
112     #endif /* MYPACKAGE_2D_STATE */
113    
114     C--------------------------
115     nWrFlds = j
116     IF ( nWrFlds.GT.listDim ) THEN
117     WRITE(msgBuf,'(2A,I5,A)') 'MYPACKAGE_WRITE_PICKUP: ',
118     & 'trying to write ',nWrFlds,' fields'
119     CALL PRINT_ERROR( msgBuf, myThid )
120     WRITE(msgBuf,'(2A,I5,A)') 'MYPACKAGE_WRITE_PICKUP: ',
121     & 'field-list dimension (listDim=',listDim,') too small'
122     CALL PRINT_ERROR( msgBuf, myThid )
123     STOP 'ABNORMAL END: S/R MYPACKAGE_WRITE_PICKUP (list-size Pb)'
124     ENDIF
125     #ifdef ALLOW_MDSIO
126     C uses this specific S/R to write (with more informations) only meta files
127     j = 1
128     nj = ABS(nj)
129     IF ( nWrFlds*Nr .EQ. nj ) THEN
130     j = Nr
131     nj = nWrFlds
132     ENDIF
133     glf = globalFiles
134     CALL MDS_WR_METAFILES( fn, fp, glf, .FALSE.,
135     & 0, 0, j, ' ',
136     & nWrFlds, wrFldList,
137     & 1, myTime,
138     & nj, myIter, myThid )
139     #endif /* ALLOW_MDSIO */
140     C--------------------------
141    
142     #endif /* MYPACKAGE_3D_STATE or MYPACKAGE_3D_STATE */
143     #endif /* ALLOW_MYPACKAGE */
144    
145     RETURN
146     END

  ViewVC Help
Powered by ViewVC 1.1.22