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

Annotation 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 - (hide annotations) (download)
Mon Mar 14 01:37:04 2011 UTC (13 years, 2 months 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 jmc 1.4 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_read_pickup.F,v 1.3 2008/09/14 18:41:55 jmc Exp $
2 jmc 1.1 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 jmc 1.2 #ifdef GAD_ALLOW_TS_SOM_ADV
34 jmc 1.1
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 jmc 1.3 INTEGER n, prec, iRec
41     CHARACTER*(MAX_LEN_FNAM) fn, filNam
42     CHARACTER*(MAX_LEN_MBUF) msgBuf
43     INTEGER ioUnit
44 jmc 1.4 LOGICAL useCurrentDir, fileExist
45 jmc 1.1 CEOP
46    
47     C- Need to synchronize here before doing master-thread IO
48 jmc 1.3 C note: not presently needed (synchronized through MDS_CHECK4FILE call)
49     c _BARRIER
50     ioUnit = errorMessageUnit
51 jmc 1.1
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 jmc 1.3
79     C- First check if pickup file exist
80 jmc 1.4 #ifdef ALLOW_MDSIO
81     useCurrentDir = .FALSE.
82 jmc 1.3 CALL MDS_CHECK4FILE(
83     I fn, '.data', 'GAD_READ_PICKUP',
84     O filNam, fileExist,
85 jmc 1.4 I useCurrentDir, myThid )
86     #else
87     STOP 'ABNORMAL END: S/R GAD_READ_PICKUP: Needs MDSIO pkg'
88     #endif
89 jmc 1.3
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 jmc 1.1
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 jmc 1.3
125     C- First check if pickup file exist
126 jmc 1.4 #ifdef ALLOW_MDSIO
127     useCurrentDir = .FALSE.
128 jmc 1.3 CALL MDS_CHECK4FILE(
129     I fn, '.data', 'GAD_READ_PICKUP',
130     O filNam, fileExist,
131 jmc 1.4 I useCurrentDir, myThid )
132     #else
133     STOP 'ABNORMAL END: S/R GAD_READ_PICKUP: Needs MDSIO pkg'
134     #endif
135 jmc 1.3
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 jmc 1.1
159     ENDIF
160    
161 jmc 1.2 #endif /* GAD_ALLOW_TS_SOM_ADV */
162 jmc 1.1
163     RETURN
164     END

  ViewVC Help
Powered by ViewVC 1.1.22