/[MITgcm]/MITgcm/pkg/dic/dic_write_pickup.F
ViewVC logotype

Annotation of /MITgcm/pkg/dic/dic_write_pickup.F

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


Revision 1.12 - (hide annotations) (download)
Sat Aug 30 00:56:44 2014 UTC (9 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint65r, checkpoint65p, checkpoint65q, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65c, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e
Changes since 1.11: +7 -6 lines
just comment out (in case they would come back later) the specific OpenAD
 reference to pointers for "total_atmos_carbon" and "atpco2" variables

1 jmc 1.12 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_write_pickup.F,v 1.11 2014/04/04 19:33:48 jmc Exp $
2 dfer 1.1 C $Name: $
3    
4     #include "DIC_OPTIONS.h"
5    
6 jmc 1.4 CBOP
7     C !ROUTINE: DIC_WRITE_PICKUP
8 dfer 1.1
9 jmc 1.4 C !INTERFACE: ==========================================================
10     SUBROUTINE DIC_WRITE_PICKUP( permPickup,
11     I suff, myTime, myIter, myThid )
12    
13     C !DESCRIPTION:
14     C Writes DIC arrays (needed for a restart) to a pickup file
15    
16     C !USES: ===============================================================
17 dfer 1.1 IMPLICIT NONE
18     C === Global variables ===
19     #include "SIZE.h"
20     #include "EEPARAMS.h"
21     #include "PARAMS.h"
22 dfer 1.2 #include "DIC_VARS.h"
23 jmc 1.6 #include "DIC_ATMOS.h"
24 dfer 1.1
25 jmc 1.4 C !INPUT PARAMETERS: ===================================================
26 dfer 1.1 C permPickup :: write a permanent pickup
27 jmc 1.4 C suff :: suffix for pickup file (eg. ckptA or 0000000010)
28     C myTime :: Current time in simulation
29     C myIter :: Current iteration number in simulation
30     C myThid :: My Thread Id number
31 dfer 1.1 LOGICAL permPickup
32     CHARACTER*(*) suff
33     _RL myTime
34     INTEGER myIter
35     INTEGER myThid
36 jmc 1.4 CEOP
37 dfer 1.1
38     #ifdef ALLOW_DIC
39    
40     C !LOCAL VARIABLES:
41     C == Local variables ==
42     CHARACTER*(MAX_LEN_FNAM) fn
43 jmc 1.6 INTEGER prec
44     #ifndef USE_ATMOSCO2
45     INTEGER ioUnit
46 jmc 1.10 _RL tmpFld(2)
47 jmc 1.6 _RS dummyRS(1)
48     #endif
49     #ifdef DIC_BIOTIC
50 jmc 1.3 LOGICAL glf
51 jmc 1.7 _RL timList(1)
52 jmc 1.6 INTEGER j, nj
53 jmc 1.3 INTEGER listDim, nWrFlds
54     PARAMETER( listDim = 2 )
55     CHARACTER*(8) wrFldList(listDim)
56     CHARACTER*(MAX_LEN_MBUF) msgBuf
57 jmc 1.6 #endif
58    
59 jmc 1.3 c IF ( DIC_pickup_write_mdsio ) THEN
60     prec = precFloat64
61 jmc 1.6
62     #ifndef USE_ATMOSCO2
63     IF ( dic_int1.EQ.3 ) THEN
64     WRITE(fn,'(A,A)') 'pickup_dic_co2atm.',suff
65     ioUnit = 0
66 jmc 1.12 c#ifdef ALLOW_OPENAD
67     C- keep it (commented out) in case these 2 vars become again active
68     c tmpFld(1) = total_atmos_carbon%v
69     c tmpFld(2) = atpco2%v
70     c#else /* ALLOW_OPENAD */
71 jmc 1.10 tmpFld(1) = total_atmos_carbon
72     tmpFld(2) = atpco2
73 jmc 1.12 c#endif /* ALLOW_OPENAD */
74 jmc 1.6 #ifdef ALLOW_MDSIO
75     CALL MDS_WRITEVEC_LOC(
76     I fn, prec, ioUnit,
77 jmc 1.10 I 'RL', 2, tmpFld, dummyRS,
78 jmc 1.6 I 0, 0, 1, myIter, myThid )
79     #endif
80     ENDIF
81     #endif /* ndef USE_ATMOSCO2 */
82    
83     #ifdef DIC_BIOTIC
84 jmc 1.3 WRITE(fn,'(A,A)') 'pickup_dic.',suff
85     j = 0
86    
87     C Firstly, write 3-D fields as consecutive records,
88    
89     C- switch to 2-D fields:
90     nj = -j*Nr
91    
92     C record number < 0 : a hack not to write meta files now:
93     j = j + 1
94     nj = nj-1
95     CALL WRITE_REC_3D_RL( fn, prec, 1, pH, nj, myIter, myThid )
96     IF (j.LE.listDim) wrFldList(j) = 'DIC_pH2d'
97    
98     C--------------------------
99     nWrFlds = j
100     IF ( nWrFlds.GT.listDim ) THEN
101     WRITE(msgBuf,'(2A,I5,A)') 'DIC_WRITE_PICKUP: ',
102     & 'trying to write ',nWrFlds,' fields'
103     CALL PRINT_ERROR( msgBuf, myThid )
104     WRITE(msgBuf,'(2A,I5,A)') 'DIC_WRITE_PICKUP: ',
105     & 'field-list dimension (listDim=',listDim,') too small'
106     CALL PRINT_ERROR( msgBuf, myThid )
107     STOP 'ABNORMAL END: S/R DIC_WRITE_PICKUP (list-size Pb)'
108     ENDIF
109    
110     #ifdef ALLOW_MDSIO
111     C uses this specific S/R to write (with more informations) only meta
112     C files
113     j = 1
114     nj = ABS(nj)
115     IF ( nWrFlds*Nr .EQ. nj ) THEN
116     j = Nr
117     nj = nWrFlds
118     ENDIF
119     glf = globalFiles
120 jmc 1.7 timList(1) = myTime
121 jmc 1.3 CALL MDS_WR_METAFILES( fn, prec, glf, .FALSE.,
122     & 0, 0, j, ' ',
123     & nWrFlds, wrFldList,
124 jmc 1.8 & 1, timList, oneRL,
125 jmc 1.3 & nj, myIter, myThid )
126     #endif /* ALLOW_MDSIO */
127     C--------------------------
128 dfer 1.1
129 jmc 1.6 #endif /* DIC_BIOTIC */
130    
131 jmc 1.3 c ENDIF /* DIC_pickup_write_mdsio */
132 dfer 1.1
133 jmc 1.6 #endif /* ALLOW_DIC */
134 dfer 1.1
135     RETURN
136     END

  ViewVC Help
Powered by ViewVC 1.1.22