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

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

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


Revision 1.8 - (hide annotations) (download)
Tue Aug 25 21:33:28 2009 UTC (14 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62, checkpoint61v, checkpoint61w, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.7: +5 -2 lines
when pickupSuff is set, read pickup-file even if nIter0=0

1 jmc 1.8 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_init_varia.F,v 1.7 2009/04/28 18:18:29 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5 jahn 1.5 #include "GAD_OPTIONS.h"
6 jmc 1.1
7     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
8     CBOP
9     C !ROUTINE: PTRACERS_INIT_VARIA
10    
11     C !INTERFACE:
12     SUBROUTINE PTRACERS_INIT_VARIA( myThid )
13    
14     C !DESCRIPTION:
15     C Initialize PTRACERS data structures
16    
17     C !USES:
18 jahn 1.5 #include "PTRACERS_MOD.h"
19 jmc 1.1 IMPLICIT NONE
20     #include "SIZE.h"
21     #include "EEPARAMS.h"
22     #include "PARAMS.h"
23     #include "GRID.h"
24 jahn 1.5 #include "GAD.h"
25 jmc 1.1 #include "PTRACERS_SIZE.h"
26 jmc 1.4 #include "PTRACERS_PARAMS.h"
27     #include "PTRACERS_FIELDS.h"
28 jmc 1.1
29     C !INPUT PARAMETERS:
30     C myThid :: thread number
31     INTEGER myThid
32    
33     #ifdef ALLOW_PTRACERS
34    
35     C !LOCAL VARIABLES:
36     C i,j,k,bi,bj,iTracer :: loop indices
37 jahn 1.5 INTEGER i,j,k,bi,bj,iTracer,n
38 jmc 1.1 CEOP
39    
40     C Loop over tracers
41     DO iTracer = 1, PTRACERS_num
42    
43     C Loop over tiles
44     DO bj = myByLo(myThid), myByHi(myThid)
45     DO bi = myBxLo(myThid), myBxHi(myThid)
46    
47     C Initialize arrays in common blocks :
48     DO k=1,Nr
49 jmc 1.4 DO j=1-OLy,sNy+OLy
50     DO i=1-OLx,sNx+OLx
51 jmc 1.1 pTracer(i,j,k,bi,bj,iTracer) = PTRACERS_ref(k,iTracer)
52     gPtr(i,j,k,bi,bj,iTracer) = 0. _d 0
53 jmc 1.4 gpTrNm1(i,j,k,bi,bj,iTracer) = 0. _d 0
54 jmc 1.1 ENDDO
55     ENDDO
56     ENDDO
57 jmc 1.4 DO j=1-OLy,sNy+OLy
58     DO i=1-OLx,sNx+OLx
59     surfaceForcingPTr(i,j,bi,bj,iTracer) = 0. _d 0
60 jmc 1.1 ENDDO
61     ENDDO
62    
63 jmc 1.6 #ifdef PTRACERS_ALLOW_DYN_STATE
64 jahn 1.5 C Initialize SOM array :
65     IF ( PTRACERS_SOM_Advection(iTracer) ) THEN
66     DO n = 1,nSOM
67     DO k=1,Nr
68     DO j=1-OLy,sNy+OLy
69     DO i=1-OLx,sNx+OLx
70     _Ptracers_som(i,j,k,bi,bj,n,iTracer) = 0. _d 0
71     ENDDO
72     ENDDO
73     ENDDO
74     ENDDO
75     ENDIF
76 jmc 1.6 #endif /* PTRACERS_ALLOW_DYN_STATE */
77 jahn 1.5
78 jmc 1.1 C end bi,bj loops
79     ENDDO
80     ENDDO
81    
82     C end of Tracer loop
83     ENDDO
84    
85     _BARRIER
86    
87     C Now read initial conditions and always exchange
88     IF (nIter0.EQ.PTRACERS_Iter0) THEN
89     DO iTracer = 1, PTRACERS_numInUse
90     IF ( PTRACERS_initialFile(iTracer) .NE. ' ' ) THEN
91     CALL READ_FLD_XYZ_RL(PTRACERS_initialFile(iTracer),' ',
92     & pTracer(1-Olx,1-Oly,1,1,1,iTracer),0,myThid)
93 jmc 1.7 _EXCH_XYZ_RL(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
94 jmc 1.1 ENDIF
95     ENDDO
96     ENDIF
97    
98     C Apply mask
99     DO iTracer = 1, PTRACERS_numInUse
100     DO bj = myByLo(myThid), myByHi(myThid)
101     DO bi = myBxLo(myThid), myBxHi(myThid)
102     DO k=1,Nr
103 jmc 1.4 DO j=1-OLy,sNy+OLy
104     DO i=1-OLx,sNx+OLx
105 jmc 1.1 IF (maskC(i,j,k,bi,bj).EQ.0.)
106     & pTracer(i,j,k,bi,bj,iTracer)=0. _d 0
107     ENDDO
108     ENDDO
109     ENDDO
110     ENDDO
111     ENDDO
112     ENDDO
113    
114     C Read from a pickup file if needed
115 jmc 1.8 IF ( nIter0.GT.PTRACERS_Iter0 .OR.
116     & (nIter0.EQ.PTRACERS_Iter0 .AND. pickupSuff.NE.' ')
117     & ) THEN
118    
119 jmc 1.3 CALL PTRACERS_READ_PICKUP( nIter0, myThid )
120 jmc 1.1 ENDIF
121    
122     #endif /* ALLOW_PTRACERS */
123    
124     RETURN
125     END

  ViewVC Help
Powered by ViewVC 1.1.22