/[MITgcm]/MITgcm/pkg/cd_code/cd_code_checkpoint.F
ViewVC logotype

Contents of /MITgcm/pkg/cd_code/cd_code_checkpoint.F

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


Revision 1.5 - (show annotations) (download)
Sun Oct 10 06:08:48 2004 UTC (19 years, 8 months ago) by edhill
Branch: MAIN
Changes since 1.4: +1 -7 lines
 o move useMNC and related runtime switches to PARAMS.h

1 C $Header: /u/gcmpack/MITgcm/pkg/cd_code/cd_code_checkpoint.F,v 1.4 2004/09/10 12:19:30 edhill Exp $
2 C $Name: $
3
4 #include "CD_CODE_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: CD_CODE_READ_CHECKPOINT
9
10 C !INTERFACE:
11 SUBROUTINE CD_CODE_READ_CHECKPOINT( myIter, myThid )
12
13 C !DESCRIPTION:
14 C Read the checkpoint.
15
16 C !USES:
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "CD_CODE_VARS.h"
22
23 C !INPUT/OUTPUT PARAMETERS:
24 INTEGER myIter
25 INTEGER myThid
26 CEOP
27
28 #ifdef ALLOW_CD_CODE
29
30 C !LOCAL VARIABLES:
31 CHARACTER*(MAX_LEN_FNAM) fn
32 CHARACTER*(10) suff
33 INTEGER prec
34
35 C Suffix for pickup files
36 IF (pickupSuff.EQ.' ') THEN
37 WRITE(suff,'(I10.10)') myIter
38 ELSE
39 WRITE(suff,'(A10)') pickupSuff
40 ENDIF
41
42 _BARRIER
43 _BEGIN_MASTER( myThid )
44
45 prec = precFloat64
46 WRITE(fn,'(A,A10)') 'pickup_cd.',suff
47
48 #ifdef ALLOW_MNC
49 IF (useMNC .AND. pickup_read_mnc) THEN
50 C Read variables from the pickup file
51 CALL MNC_FILE_CLOSE_ALL_MATCHING(fn, myThid)
52 CALL MNC_CW_SET_UDIM(fn, 1, myThid)
53 CALL MNC_CW_RL_R('D',fn,0,0,'uVelD',uVelD, myThid)
54 CALL MNC_CW_RL_R('D',fn,0,0,'vVelD',vVelD, myThid)
55 CALL MNC_CW_RL_R('D',fn,0,0,'Unm1',Unm1, myThid)
56 CALL MNC_CW_RL_R('D',fn,0,0,'Vnm1',Vnm1, myThid)
57 CALL MNC_CW_RL_R('D',fn,0,0,'etaNm1', etaNm1, myThid)
58 ENDIF
59 #endif /* ALLOW_MNC */
60
61 IF (pickup_read_mdsio) THEN
62 CALL MDSREADFIELD(fn,prec,'RL',Nr,uVelD, 1,myThid)
63 CALL MDSREADFIELD(fn,prec,'RL',Nr,vVelD, 2,myThid)
64 CALL MDSREADFIELD(fn,prec,'RL',Nr,uNM1, 3,myThid)
65 CALL MDSREADFIELD(fn,prec,'RL',Nr,vNM1, 4,myThid)
66 IF ( usePickupBeforeC54 ) THEN
67 CALL MDSREADFIELD(fn,prec,'RL', 1,etaNm1,6*Nr+1,myThid)
68 ELSE
69 CALL MDSREADFIELD(fn,prec,'RL', 1,etaNm1,4*Nr+1,myThid)
70 ENDIF
71 ENDIF
72
73 _END_MASTER( myThid )
74 _BARRIER
75
76 _EXCH_XYZ_R8( uVelD, myThid )
77 _EXCH_XYZ_R8( vVelD, myThid )
78 CALL EXCH_UV_XYZ_RL(uNM1,vNM1,.TRUE.,myThid)
79 _EXCH_XY_R8( etaNm1, myThid )
80
81 #endif /* ALLOW_CD_CODE */
82
83 RETURN
84 END
85
86 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
87 CBOP
88 C !ROUTINE: CD_CODE_WRITE_CHECKPOINT
89
90 C !INTERFACE:
91 SUBROUTINE CD_CODE_WRITE_CHECKPOINT(
92 I prec,
93 I lgf,
94 I permCheckPoint,
95 I myIter,
96 I myThid )
97
98 C !DESCRIPTION:
99 C Read the pickup.
100
101 C !USES:
102 IMPLICIT NONE
103 #include "SIZE.h"
104 #include "EEPARAMS.h"
105 #include "PARAMS.h"
106 #include "CD_CODE_VARS.h"
107
108 C !INPUT/OUTPUT PARAMETERS:
109 INTEGER prec
110 LOGICAL lgf
111 LOGICAL permCheckPoint
112 INTEGER myIter
113 INTEGER myThid
114 CEOP
115
116 #ifdef ALLOW_CD_CODE
117
118 C !LOCAL VARIABLES:
119 CHARACTER*(MAX_LEN_FNAM) fn
120
121 IF ( permCheckPoint ) THEN
122 WRITE(fn,'(A,I10.10)') 'pickup_cd.',myIter
123 ELSE
124 WRITE(fn,'(A,A)') 'pickup_cd.',checkPtSuff(nCheckLev)
125 ENDIF
126
127 #ifdef ALLOW_MNC
128 IF (useMNC .AND. pickup_write_mnc) THEN
129 C Read variables from the pickup file
130 CALL MNC_FILE_CLOSE_ALL_MATCHING(fn, myThid)
131 CALL MNC_CW_SET_UDIM(fn, 1, myThid)
132 CALL MNC_CW_RL_W('D',fn,0,0,'uVelD',uVelD, myThid)
133 CALL MNC_CW_RL_W('D',fn,0,0,'vVelD',vVelD, myThid)
134 CALL MNC_CW_RL_W('D',fn,0,0,'Unm1',Unm1, myThid)
135 CALL MNC_CW_RL_W('D',fn,0,0,'Vnm1',Vnm1, myThid)
136 CALL MNC_CW_RL_W('D',fn,0,0,'etaNm1', etaNm1, myThid)
137 ENDIF
138 #endif /* ALLOW_MNC */
139
140 IF (pickup_write_mdsio) THEN
141 CALL MDSWRITEFIELD(fn,prec,lgf,'RL',Nr,uVelD,1,myIter,myThid)
142 CALL MDSWRITEFIELD(fn,prec,lgf,'RL',Nr,vVelD,2,myIter,myThid)
143 CALL MDSWRITEFIELD(fn,prec,lgf,'RL',Nr,uNM1, 3,myIter,myThid)
144 CALL MDSWRITEFIELD(fn,prec,lgf,'RL',Nr,vNM1, 4,myIter,myThid)
145 CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,etaNm1,4*Nr+1,
146 & myIter,myThid)
147 ENDIF
148
149 #endif /* ALLOW_CD_CODE */
150
151 RETURN
152 END

  ViewVC Help
Powered by ViewVC 1.1.22