1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
|
#include "GCHEM_OPTIONS.h" |
|
4 |
#include "DIC_OPTIONS.h" |
#include "DIC_OPTIONS.h" |
5 |
|
|
6 |
SUBROUTINE DIC_WRITE_PICKUP( permPickup, suff, |
CBOP |
7 |
I myTime, myIter, myThid ) |
C !ROUTINE: DIC_WRITE_PICKUP |
8 |
|
|
9 |
|
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 |
IMPLICIT NONE |
IMPLICIT NONE |
18 |
C === Global variables === |
C === Global variables === |
19 |
#include "SIZE.h" |
#include "SIZE.h" |
20 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
21 |
#include "PARAMS.h" |
#include "PARAMS.h" |
22 |
#include "DIC_VARS.h" |
#include "DIC_VARS.h" |
23 |
|
#include "DIC_ATMOS.h" |
24 |
|
|
25 |
C == Routine arguments == |
C !INPUT PARAMETERS: =================================================== |
26 |
C permPickup :: write a permanent pickup |
C permPickup :: write a permanent pickup |
27 |
C suff :: suffix for pickup file (eg. ckptA or 0000000010) |
C suff :: suffix for pickup file (eg. ckptA or 0000000010) |
28 |
C myTime :: Current time in simulation |
C myTime :: Current time in simulation |
29 |
C myIter :: Current iteration number in simulation |
C myIter :: Current iteration number in simulation |
30 |
C myThid :: My Thread Id number |
C myThid :: My Thread Id number |
31 |
LOGICAL permPickup |
LOGICAL permPickup |
32 |
CHARACTER*(*) suff |
CHARACTER*(*) suff |
33 |
_RL myTime |
_RL myTime |
34 |
INTEGER myIter |
INTEGER myIter |
35 |
INTEGER myThid |
INTEGER myThid |
36 |
|
CEOP |
37 |
|
|
38 |
#ifdef ALLOW_DIC |
#ifdef ALLOW_DIC |
|
#ifdef DIC_BIOTIC |
|
39 |
|
|
40 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
41 |
C == Local variables == |
C == Local variables == |
42 |
CHARACTER*(MAX_LEN_FNAM) fn |
CHARACTER*(MAX_LEN_FNAM) fn |
43 |
|
INTEGER prec |
44 |
|
#ifndef USE_ATMOSCO2 |
45 |
|
INTEGER ioUnit |
46 |
|
_RL tmpFld(2) |
47 |
|
_RS dummyRS(1) |
48 |
|
#endif |
49 |
|
#ifdef DIC_BIOTIC |
50 |
LOGICAL glf |
LOGICAL glf |
51 |
INTEGER prec, j, nj |
INTEGER j, nj |
52 |
INTEGER listDim, nWrFlds |
INTEGER listDim, nWrFlds |
53 |
PARAMETER( listDim = 2 ) |
PARAMETER( listDim = 2 ) |
54 |
CHARACTER*(8) wrFldList(listDim) |
CHARACTER*(8) wrFldList(listDim) |
55 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
56 |
CEOP |
#endif |
57 |
|
|
58 |
|
|
59 |
c IF ( DIC_pickup_write_mdsio ) THEN |
c IF ( DIC_pickup_write_mdsio ) THEN |
60 |
prec = precFloat64 |
prec = precFloat64 |
61 |
|
|
62 |
|
#ifndef USE_ATMOSCO2 |
63 |
|
IF ( dic_int1.EQ.3 ) THEN |
64 |
|
WRITE(fn,'(A,A)') 'pickup_dic_co2atm.',suff |
65 |
|
ioUnit = 0 |
66 |
|
tmpFld(1) = total_atmos_carbon |
67 |
|
tmpFld(2) = atpco2 |
68 |
|
#ifdef ALLOW_MDSIO |
69 |
|
CALL MDS_WRITEVEC_LOC( |
70 |
|
I fn, prec, ioUnit, |
71 |
|
I 'RL', 2, tmpFld, dummyRS, |
72 |
|
I 0, 0, 1, myIter, myThid ) |
73 |
|
#endif |
74 |
|
ENDIF |
75 |
|
#endif /* ndef USE_ATMOSCO2 */ |
76 |
|
|
77 |
|
#ifdef DIC_BIOTIC |
78 |
WRITE(fn,'(A,A)') 'pickup_dic.',suff |
WRITE(fn,'(A,A)') 'pickup_dic.',suff |
79 |
j = 0 |
j = 0 |
80 |
|
|
119 |
#endif /* ALLOW_MDSIO */ |
#endif /* ALLOW_MDSIO */ |
120 |
C-------------------------- |
C-------------------------- |
121 |
|
|
122 |
|
#endif /* DIC_BIOTIC */ |
123 |
|
|
124 |
c ENDIF /* DIC_pickup_write_mdsio */ |
c ENDIF /* DIC_pickup_write_mdsio */ |
125 |
|
|
126 |
#endif /* DIC_BIOTIC */ |
#endif /* ALLOW_DIC */ |
|
#endif /* ALLOW_DIC */ |
|
127 |
|
|
128 |
RETURN |
RETURN |
129 |
END |
END |