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

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

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


Revision 1.1 - (hide annotations) (download)
Wed Oct 25 20:41:21 2006 UTC (17 years, 7 months ago) by jmc
Branch: MAIN
rename read,write_checkpoint to read,write_pickup

1 jmc 1.1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_read_checkpoint.F,v 1.12 2006/03/24 11:34:41 mlosch 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     C fn :: suffix for pickup file (eg. 0000000010)
38     INTEGER iTracer,prec,iRec
39     CHARACTER*(MAX_LEN_MBUF) fn
40     CEOP
41    
42     #ifdef ALLOW_MNC
43     IF ( PTRACERS_pickup_read_mnc ) THEN
44     C Read variables from the pickup file
45     WRITE(fn,'(a)') 'pickup_ptracers'
46     CALL MNC_FILE_CLOSE_ALL_MATCHING(fn, myThid)
47     CALL MNC_CW_SET_UDIM(fn, 1, myThid)
48     CALL MNC_CW_SET_CITER(fn, 3, 3, myIter, -1, myThid)
49     DO iTracer = 1,PTRACERS_numInUse
50     CALL MNC_CW_RL_R('D',fn,0,0, PTRACERS_names(iTracer),
51     & gPtrNm1(1-OLx,1-OLy,1,1,1,iTracer),myThid)
52     _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
53     ENDDO
54     CALL MNC_CW_SET_UDIM(fn, 2, myThid)
55     DO iTracer = 1,PTRACERS_numInUse
56     CALL MNC_CW_RL_R('D',fn,0,0, PTRACERS_names(iTracer),
57     & pTracer(1-OLx,1-OLy,1,1,1,iTracer),myThid)
58     _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
59     ENDDO
60     ENDIF
61     #endif /* ALLOW_MNC */
62    
63     IF ( PTRACERS_pickup_read_mdsio ) THEN
64    
65     WRITE(fn,'(A,I10.10)') 'pickup_ptracers.',myIter
66     prec = precFloat64
67    
68     IF ( usePickupBeforeC54 ) THEN
69     C Read fields as consecutive records
70     DO iTracer=1,PTRACERS_num
71     iRec = iTracer
72     CALL MDSREADFIELD(fn,prec,'RL',Nr,
73     & pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)
74     _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
75     ENDDO
76    
77     C Read historical tendancies as consecutive records
78     DO iTracer=1,PTRACERS_num
79     iRec = iTracer + PTRACERS_num
80     CALL MDSREADFIELD(fn,prec,'RL',Nr,
81     & gPtr(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)
82     _EXCH_XYZ_R8(gPtr(1-Olx,1-Oly,1,1,1,iTracer),myThid)
83     ENDDO
84     DO iTracer=1,PTRACERS_num
85     iRec = iTracer + PTRACERS_num*2
86     CALL MDSREADFIELD(fn,prec,'RL',Nr,
87     & gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)
88     _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
89     ENDDO
90    
91     ELSE
92     C Read fields & tendancies (needed for AB) as consecutive records,
93     C one tracer after the other, only for tracers "InUse". Note:
94     C this allow to restart from a pickup with a different number of
95     C tracers, with write_pickup dumping all of them (PTRACERS_num).
96     DO iTracer=1,PTRACERS_numInUse
97     iRec = 2*iTracer -1
98     CALL MDSREADFIELD(fn,prec,'RL',Nr,
99     & pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)
100     iRec = 2*iTracer
101     CALL MDSREADFIELD(fn,prec,'RL',Nr,
102     & gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)
103     _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
104     _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
105     ENDDO
106    
107     ENDIF
108    
109     ENDIF
110    
111     #endif /* ALLOW_PTRACERS */
112    
113     RETURN
114     END

  ViewVC Help
Powered by ViewVC 1.1.22