/[MITgcm]/MITgcm/pkg/ptracers/ptracers_read_pickup.F
ViewVC logotype

Contents of /MITgcm/pkg/ptracers/ptracers_read_pickup.F

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


Revision 1.4 - (show annotations) (download)
Fri Oct 19 03:22:25 2007 UTC (16 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59i
Changes since 1.3: +6 -2 lines
use pickupSuff (if defined) instead of nIter0

1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_read_pickup.F,v 1.3 2007/01/09 22:26:03 jmc Exp $
2 C $Name: $
3
4 #include "PTRACERS_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: PTRACERS_READ_PICKUP
9
10 C !INTERFACE:
11 SUBROUTINE PTRACERS_READ_PICKUP( myIter, myThid )
12
13 C !DESCRIPTION:
14 C Reads current state of passive tracers 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 "PTRACERS_SIZE.h"
22 #include "PTRACERS.h"
23
24 C !INPUT PARAMETERS:
25 C myIter :: time-step number
26 C myThid :: thread number
27 INTEGER myIter
28 INTEGER myThid
29
30 #ifdef ALLOW_PTRACERS
31
32 C !LOCAL VARIABLES:
33 C iTracer :: loop indices
34 C iRec :: record number
35 C fn :: character buffer for creating filename
36 C prec :: precision of pickup files
37 INTEGER iTracer,prec,iRec
38 CHARACTER*(MAX_LEN_MBUF) fn
39 CEOP
40
41 _BARRIER
42
43 #ifdef ALLOW_MNC
44 IF ( PTRACERS_pickup_read_mnc ) THEN
45 C Read variables from the pickup file
46 WRITE(fn,'(a)') 'pickup_ptracers'
47 CALL MNC_FILE_CLOSE_ALL_MATCHING(fn, myThid)
48 CALL MNC_CW_SET_UDIM(fn, 1, myThid)
49 CALL MNC_CW_SET_CITER(fn, 3, 3, myIter, -1, myThid)
50 DO iTracer = 1,PTRACERS_numInUse
51 CALL MNC_CW_RL_R('D',fn,0,0, PTRACERS_names(iTracer),
52 & gPtrNm1(1-OLx,1-OLy,1,1,1,iTracer),myThid)
53 _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
54 ENDDO
55 CALL MNC_CW_SET_UDIM(fn, 2, myThid)
56 DO iTracer = 1,PTRACERS_numInUse
57 CALL MNC_CW_RL_R('D',fn,0,0, PTRACERS_names(iTracer),
58 & pTracer(1-OLx,1-OLy,1,1,1,iTracer),myThid)
59 _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
60 ENDDO
61 ENDIF
62 #endif /* ALLOW_MNC */
63
64 IF ( PTRACERS_pickup_read_mdsio ) THEN
65
66 IF ( pickupSuff.EQ.' ' ) THEN
67 WRITE(fn,'(A,I10.10)') 'pickup_ptracers.',myIter
68 ELSE
69 WRITE(fn,'(A,A10)') 'pickup_ptracers.',pickupSuff
70 ENDIF
71 prec = precFloat64
72
73 IF ( usePickupBeforeC54 ) THEN
74 C Read fields as consecutive records
75 DO iTracer=1,PTRACERS_num
76 iRec = iTracer
77 CALL READ_REC_3D_RL( fn, prec, Nr,
78 O pTracer(1-Olx,1-Oly,1,1,1,iTracer),
79 I iRec, myIter, myThid )
80 _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
81 ENDDO
82
83 C Read historical tendencies as consecutive records
84 DO iTracer=1,PTRACERS_num
85 iRec = iTracer + PTRACERS_num
86 CALL READ_REC_3D_RL( fn, prec, Nr,
87 O gPtr(1-Olx,1-Oly,1,1,1,iTracer),
88 I iRec, myIter, myThid )
89 _EXCH_XYZ_R8(gPtr(1-Olx,1-Oly,1,1,1,iTracer),myThid)
90 ENDDO
91 DO iTracer=1,PTRACERS_num
92 iRec = iTracer + PTRACERS_num*2
93 CALL READ_REC_3D_RL( fn, prec, Nr,
94 O gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),
95 I iRec, myIter, myThid )
96 _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
97 ENDDO
98
99 ELSE
100 C Read fields & tendencies (needed for AB) as consecutive records,
101 C one tracer after the other, only for tracers "InUse". Note:
102 C this allow to restart from a pickup with a different number of
103 C tracers, with write_pickup dumping all of them (PTRACERS_num).
104 DO iTracer=1,PTRACERS_numInUse
105 iRec = 2*iTracer -1
106 CALL READ_REC_3D_RL( fn, prec, Nr,
107 O pTracer(1-Olx,1-Oly,1,1,1,iTracer),
108 I iRec, myIter, myThid )
109 iRec = 2*iTracer
110 CALL READ_REC_3D_RL( fn, prec, Nr,
111 O gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),
112 I iRec, myIter, myThid )
113 _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
114 _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
115 ENDDO
116
117 ENDIF
118
119 ENDIF
120
121 #endif /* ALLOW_PTRACERS */
122
123 RETURN
124 END

  ViewVC Help
Powered by ViewVC 1.1.22