/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_read_pickup.F
ViewVC logotype

Contents of /MITgcm/pkg/generic_advdiff/gad_read_pickup.F

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


Revision 1.4 - (show annotations) (download)
Mon Mar 14 01:37:04 2011 UTC (13 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint65, checkpoint63, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62z, checkpoint62y, checkpoint62x
Changes since 1.3: +14 -4 lines
change argument list of S/R MDS_CHECK4FILE ; fix the use of mdsioLocalDir.

1 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_read_pickup.F,v 1.3 2008/09/14 18:41:55 jmc Exp $
2 C $Name: $
3
4 #include "GAD_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: GAD_READ_PICKUP
9
10 C !INTERFACE:
11 SUBROUTINE GAD_READ_PICKUP( myIter, myThid )
12
13 C !DESCRIPTION:
14 C Reads current state of 2nd.Order moments from a pickup file
15
16 C !USES:
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "GAD.h"
22 #include "GAD_SOM_VARS.h"
23 #ifdef ALLOW_MNC
24 #include "MNC_PARAMS.h"
25 #endif
26
27 C !INPUT PARAMETERS:
28 C myIter :: time-step number
29 C myThid :: thread number
30 INTEGER myIter
31 INTEGER myThid
32
33 #ifdef GAD_ALLOW_TS_SOM_ADV
34
35 C !LOCAL VARIABLES:
36 C n :: 2nd.O. moment loop index
37 C iRec :: record number
38 C fn :: character buffer for creating filename
39 C prec :: precision of pickup files
40 INTEGER n, prec, iRec
41 CHARACTER*(MAX_LEN_FNAM) fn, filNam
42 CHARACTER*(MAX_LEN_MBUF) msgBuf
43 INTEGER ioUnit
44 LOGICAL useCurrentDir, fileExist
45 CEOP
46
47 C- Need to synchronize here before doing master-thread IO
48 C note: not presently needed (synchronized through MDS_CHECK4FILE call)
49 c _BARRIER
50 ioUnit = errorMessageUnit
51
52 #ifdef ALLOW_MNC
53 IF ( useMNC .AND. pickup_read_mnc ) THEN
54 c IF ( tempSOM_Advection ) THEN
55 C Read variables from the pickup file
56 c WRITE(fn,'(a)') 'pickup_som'
57 c CALL MNC_FILE_CLOSE_ALL_MATCHING(fn, myThid)
58 c CALL MNC_CW_SET_UDIM(fn, 1, myThid)
59 c CALL MNC_CW_SET_CITER(fn, 3, 3, myIter, -1, myThid)
60 c prefix = 'somT_'
61 c DO n = 1,nSOM
62 c CALL MNC_CW_RL_R('D',fn,0,0, som_name,
63 c & som_T(1-OLx,1-OLy,1,1,1,n),myThid)
64 c ENDDO
65 c ENDIF
66 ENDIF
67 #endif /* ALLOW_MNC */
68
69 c IF ( pickup_read_mdsio .AND. tempSOM_Advection ) THEN
70 IF ( tempSOM_Advection ) THEN
71 C-- Pot. Temp. 2nd.Order moments
72
73 IF (pickupSuff .EQ. ' ') THEN
74 WRITE(fn,'(A,I10.10)') 'pickup_somT.', myIter
75 ELSE
76 WRITE(fn,'(A,A10)') 'pickup_somT.', pickupSuff
77 ENDIF
78
79 C- First check if pickup file exist
80 #ifdef ALLOW_MDSIO
81 useCurrentDir = .FALSE.
82 CALL MDS_CHECK4FILE(
83 I fn, '.data', 'GAD_READ_PICKUP',
84 O filNam, fileExist,
85 I useCurrentDir, myThid )
86 #else
87 STOP 'ABNORMAL END: S/R GAD_READ_PICKUP: Needs MDSIO pkg'
88 #endif
89
90 IF ( fileExist ) THEN
91 C- Read 2nd Order moments as consecutive records
92 prec = precFloat64
93 DO n=1,nSOM
94 iRec = n
95 CALL READ_REC_3D_RL( fn, prec, Nr,
96 O som_T(1-Olx,1-Oly,1,1,1,n),
97 I iRec, myIter, myThid )
98 ENDDO
99 ELSE
100 IF ( pickupStrictlyMatch ) THEN
101 WRITE(msgBuf,'(4A)') 'GAD_READ_PICKUP: ',
102 & 'try with " pickupStrictlyMatch=.FALSE.,"',
103 & ' in file: "data", NameList: "PARM03"'
104 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
105 STOP 'ABNORMAL END: S/R GAD_READ_PICKUP'
106 ELSE
107 WRITE(msgBuf,'(2A)') 'WARNING >> GAD_READ_PICKUP: ',
108 & 'approximated restart: reset SOM_T to zero'
109 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
110 ENDIF
111 ENDIF
112
113 ENDIF
114
115 c IF ( pickup_read_mdsio .AND. saltSOM_Advection ) THEN
116 IF ( saltSOM_Advection ) THEN
117 C-- Salinity 2nd.Order moments
118
119 IF (pickupSuff .EQ. ' ') THEN
120 WRITE(fn,'(A,I10.10)') 'pickup_somS.', myIter
121 ELSE
122 WRITE(fn,'(A,A10)') 'pickup_somS.', pickupSuff
123 ENDIF
124
125 C- First check if pickup file exist
126 #ifdef ALLOW_MDSIO
127 useCurrentDir = .FALSE.
128 CALL MDS_CHECK4FILE(
129 I fn, '.data', 'GAD_READ_PICKUP',
130 O filNam, fileExist,
131 I useCurrentDir, myThid )
132 #else
133 STOP 'ABNORMAL END: S/R GAD_READ_PICKUP: Needs MDSIO pkg'
134 #endif
135
136 IF ( fileExist ) THEN
137 C- Read 2nd Order moments as consecutive records
138 prec = precFloat64
139 DO n=1,nSOM
140 iRec = n
141 CALL READ_REC_3D_RL( fn, prec, Nr,
142 O som_S(1-Olx,1-Oly,1,1,1,n),
143 I iRec, myIter, myThid )
144 ENDDO
145 ELSE
146 IF ( pickupStrictlyMatch ) THEN
147 WRITE(msgBuf,'(4A)') 'GAD_READ_PICKUP: ',
148 & 'try with " pickupStrictlyMatch=.FALSE.,"',
149 & ' in file: "data", NameList: "PARM03"'
150 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
151 STOP 'ABNORMAL END: S/R GAD_READ_PICKUP'
152 ELSE
153 WRITE(msgBuf,'(2A)') 'WARNING >> GAD_READ_PICKUP: ',
154 & 'approximated restart: reset SOM_S to zero'
155 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
156 ENDIF
157 ENDIF
158
159 ENDIF
160
161 #endif /* GAD_ALLOW_TS_SOM_ADV */
162
163 RETURN
164 END

  ViewVC Help
Powered by ViewVC 1.1.22