/[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.5 - (hide annotations) (download)
Fri Mar 24 23:38:56 2017 UTC (7 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.4: +16 -5 lines
use new S/R RW_GET_SUFFIX to get file suffix (according to "rwSuffixType")

1 jmc 1.5 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_read_pickup.F,v 1.4 2011/03/14 01:37:04 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 jmc 1.5 CHARACTER*(10) suff
42 jmc 1.3 CHARACTER*(MAX_LEN_FNAM) fn, filNam
43     CHARACTER*(MAX_LEN_MBUF) msgBuf
44     INTEGER ioUnit
45 jmc 1.4 LOGICAL useCurrentDir, fileExist
46 jmc 1.1 CEOP
47    
48     C- Need to synchronize here before doing master-thread IO
49 jmc 1.3 C note: not presently needed (synchronized through MDS_CHECK4FILE call)
50     c _BARRIER
51     ioUnit = errorMessageUnit
52 jmc 1.1
53     #ifdef ALLOW_MNC
54     IF ( useMNC .AND. pickup_read_mnc ) THEN
55     c IF ( tempSOM_Advection ) THEN
56     C Read variables from the pickup file
57     c WRITE(fn,'(a)') 'pickup_som'
58     c CALL MNC_FILE_CLOSE_ALL_MATCHING(fn, myThid)
59     c CALL MNC_CW_SET_UDIM(fn, 1, myThid)
60     c CALL MNC_CW_SET_CITER(fn, 3, 3, myIter, -1, myThid)
61     c prefix = 'somT_'
62     c DO n = 1,nSOM
63     c CALL MNC_CW_RL_R('D',fn,0,0, som_name,
64     c & som_T(1-OLx,1-OLy,1,1,1,n),myThid)
65     c ENDDO
66     c ENDIF
67     ENDIF
68     #endif /* ALLOW_MNC */
69    
70     c IF ( pickup_read_mdsio .AND. tempSOM_Advection ) THEN
71     IF ( tempSOM_Advection ) THEN
72     C-- Pot. Temp. 2nd.Order moments
73    
74     IF (pickupSuff .EQ. ' ') THEN
75 jmc 1.5 IF ( rwSuffixType.EQ.0 ) THEN
76     WRITE(fn,'(A,I10.10)') 'pickup_somT.', myIter
77     ELSE
78     CALL RW_GET_SUFFIX( suff, startTime, myIter, myThid )
79     WRITE(fn,'(A,A)') 'pickup_somT.', suff
80     ENDIF
81 jmc 1.1 ELSE
82     WRITE(fn,'(A,A10)') 'pickup_somT.', pickupSuff
83     ENDIF
84 jmc 1.3
85     C- First check if pickup file exist
86 jmc 1.4 #ifdef ALLOW_MDSIO
87     useCurrentDir = .FALSE.
88 jmc 1.3 CALL MDS_CHECK4FILE(
89     I fn, '.data', 'GAD_READ_PICKUP',
90     O filNam, fileExist,
91 jmc 1.4 I useCurrentDir, myThid )
92     #else
93     STOP 'ABNORMAL END: S/R GAD_READ_PICKUP: Needs MDSIO pkg'
94     #endif
95 jmc 1.3
96     IF ( fileExist ) THEN
97     C- Read 2nd Order moments as consecutive records
98     prec = precFloat64
99     DO n=1,nSOM
100     iRec = n
101     CALL READ_REC_3D_RL( fn, prec, Nr,
102 jmc 1.5 O som_T(1-OLx,1-OLy,1,1,1,n),
103 jmc 1.3 I iRec, myIter, myThid )
104     ENDDO
105     ELSE
106     IF ( pickupStrictlyMatch ) THEN
107     WRITE(msgBuf,'(4A)') 'GAD_READ_PICKUP: ',
108     & 'try with " pickupStrictlyMatch=.FALSE.,"',
109     & ' in file: "data", NameList: "PARM03"'
110     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
111     STOP 'ABNORMAL END: S/R GAD_READ_PICKUP'
112     ELSE
113     WRITE(msgBuf,'(2A)') 'WARNING >> GAD_READ_PICKUP: ',
114     & 'approximated restart: reset SOM_T to zero'
115     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
116     ENDIF
117     ENDIF
118 jmc 1.1
119     ENDIF
120    
121     c IF ( pickup_read_mdsio .AND. saltSOM_Advection ) THEN
122     IF ( saltSOM_Advection ) THEN
123     C-- Salinity 2nd.Order moments
124    
125     IF (pickupSuff .EQ. ' ') THEN
126 jmc 1.5 IF ( rwSuffixType.EQ.0 ) THEN
127     WRITE(fn,'(A,I10.10)') 'pickup_somS.', myIter
128     ELSE
129     CALL RW_GET_SUFFIX( suff, startTime, myIter, myThid )
130     WRITE(fn,'(A,A)') 'pickup_somS.', suff
131     ENDIF
132 jmc 1.1 ELSE
133     WRITE(fn,'(A,A10)') 'pickup_somS.', pickupSuff
134     ENDIF
135 jmc 1.3
136     C- First check if pickup file exist
137 jmc 1.4 #ifdef ALLOW_MDSIO
138     useCurrentDir = .FALSE.
139 jmc 1.3 CALL MDS_CHECK4FILE(
140     I fn, '.data', 'GAD_READ_PICKUP',
141     O filNam, fileExist,
142 jmc 1.4 I useCurrentDir, myThid )
143     #else
144     STOP 'ABNORMAL END: S/R GAD_READ_PICKUP: Needs MDSIO pkg'
145     #endif
146 jmc 1.3
147     IF ( fileExist ) THEN
148     C- Read 2nd Order moments as consecutive records
149     prec = precFloat64
150     DO n=1,nSOM
151     iRec = n
152     CALL READ_REC_3D_RL( fn, prec, Nr,
153 jmc 1.5 O som_S(1-OLx,1-OLy,1,1,1,n),
154 jmc 1.3 I iRec, myIter, myThid )
155     ENDDO
156     ELSE
157     IF ( pickupStrictlyMatch ) THEN
158     WRITE(msgBuf,'(4A)') 'GAD_READ_PICKUP: ',
159     & 'try with " pickupStrictlyMatch=.FALSE.,"',
160     & ' in file: "data", NameList: "PARM03"'
161     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
162     STOP 'ABNORMAL END: S/R GAD_READ_PICKUP'
163     ELSE
164     WRITE(msgBuf,'(2A)') 'WARNING >> GAD_READ_PICKUP: ',
165     & 'approximated restart: reset SOM_S to zero'
166     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
167     ENDIF
168     ENDIF
169 jmc 1.1
170     ENDIF
171    
172 jmc 1.2 #endif /* GAD_ALLOW_TS_SOM_ADV */
173 jmc 1.1
174     RETURN
175     END

  ViewVC Help
Powered by ViewVC 1.1.22