/[MITgcm]/MITgcm_contrib/bling/pkg/bling_write_pickup.F
ViewVC logotype

Annotation of /MITgcm_contrib/bling/pkg/bling_write_pickup.F

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


Revision 1.1 - (hide annotations) (download)
Fri May 23 17:33:43 2014 UTC (11 years, 2 months ago) by mmazloff
Branch: MAIN
Adding package BLING

1 mmazloff 1.1 C $Header: $
2     C $Name: $
3    
4     #include "BLING_OPTIONS.h"
5    
6     CBOP
7     subroutine BLING_WRITE_PICKUP( permPickup,
8     I suff, myTime, myIter, myThid )
9    
10     C =================================================================
11     C | subroutine bling_write_pickup
12     C | o Writes BLING arrays (needed for a restart) to a pickup file
13     C =================================================================
14    
15     implicit none
16    
17     C === Global variables ===
18     #include "SIZE.h"
19     #include "EEPARAMS.h"
20     #include "PARAMS.h"
21     #include "BLING_VARS.h"
22    
23     C === Routine arguments ===
24     C permPickup :: write a permanent pickup
25     C suff :: suffix for pickup file (eg. ckptA or 0000000010)
26     C myTime :: Current time in simulation
27     C myIter :: Current iteration number in simulation
28     C myThid :: My Thread Id number
29     LOGICAL permPickup
30     CHARACTER*(*) suff
31     _RL myTime
32     INTEGER myIter
33     INTEGER myThid
34     CEOP
35    
36     #ifdef ALLOW_BLING
37    
38     C == Local variables ==
39     CHARACTER*(MAX_LEN_FNAM) fn
40     INTEGER prec
41     #ifndef USE_ATMOSCO2
42     INTEGER ioUnit
43     _RL tmpFld(2)
44     _RS dummyRS(1)
45     #endif
46     LOGICAL glf
47     _RL timList(1)
48     INTEGER j, nj
49     INTEGER listDim, nWrFlds
50     PARAMETER( listDim = 2 )
51     CHARACTER*(8) wrFldList(listDim)
52     CHARACTER*(MAX_LEN_MBUF) msgBuf
53    
54     prec = precFloat64
55    
56     WRITE(fn,'(A,A)') 'pickup_BLING.',suff
57     j = 0
58    
59     C Firstly, write 3-D fields as consecutive records,
60    
61     C- switch to 2-D fields:
62     nj = -j*Nr
63    
64     C record number < 0 : a hack not to write meta files now:
65     j = j + 1
66     nj = nj-1
67     CALL WRITE_REC_3D_RL( fn, prec, 1, pH, nj, myIter, myThid )
68     IF (j.LE.listDim) wrFldList(j) = 'BLING_pH2d'
69    
70     C--------------------------
71     nWrFlds = j
72     IF ( nWrFlds.GT.listDim ) THEN
73     WRITE(msgBuf,'(2A,I5,A)') 'BLING_WRITE_PICKUP: ',
74     & 'trying to write ',nWrFlds,' fields'
75     CALL PRINT_ERROR( msgBuf, myThid )
76     WRITE(msgBuf,'(2A,I5,A)') 'BLING_WRITE_PICKUP: ',
77     & 'field-list dimension (listDim=',listDim,') too small'
78     CALL PRINT_ERROR( msgBuf, myThid )
79     STOP 'ABNORMAL END: S/R BLING_WRITE_PICKUP (list-size Pb)'
80     ENDIF
81    
82     #ifdef ALLOW_MDSIO
83     C uses this specific S/R to write (with more informations) only meta
84     C files
85     j = 1
86     nj = ABS(nj)
87     IF ( nWrFlds*Nr .EQ. nj ) THEN
88     j = Nr
89     nj = nWrFlds
90     ENDIF
91     glf = globalFiles
92     timList(1) = myTime
93     CALL MDS_WR_METAFILES( fn, prec, glf, .FALSE.,
94     & 0, 0, j, ' ',
95     & nWrFlds, wrFldList,
96     & 1, timList,
97     & nj, myIter, myThid )
98     #endif /* ALLOW_MDSIO */
99     C--------------------------
100    
101     #endif /* ALLOW_BLING */
102    
103     RETURN
104     END

  ViewVC Help
Powered by ViewVC 1.1.22