/[MITgcm]/MITgcm_contrib/antarctic/llc_1080_ABS/code/ptracers_init_varia.F
ViewVC logotype

Annotation of /MITgcm_contrib/antarctic/llc_1080_ABS/code/ptracers_init_varia.F

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


Revision 1.1 - (hide annotations) (download)
Wed Jan 17 17:47:31 2018 UTC (7 years, 6 months ago) by ynakayam
Branch: MAIN
CVS Tags: HEAD
adding configuration for ABS regional set up

1 ynakayam 1.1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_init_varia.F,v 1.12 2014/08/15 19:18:12 jmc Exp $
2     C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5     #include "GAD_OPTIONS.h"
6    
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     #include "PTRACERS_MOD.h"
19     IMPLICIT NONE
20     #include "SIZE.h"
21     #include "EEPARAMS.h"
22     #include "PARAMS.h"
23     #include "GRID.h"
24     #include "GAD.h"
25     #include "PTRACERS_SIZE.h"
26     #include "PTRACERS_PARAMS.h"
27     #include "PTRACERS_START.h"
28     #include "PTRACERS_FIELDS.h"
29    
30     C !INPUT PARAMETERS:
31     C myThid :: thread number
32     INTEGER myThid
33    
34     #ifdef ALLOW_PTRACERS
35    
36     C !LOCAL VARIABLES:
37     C i,j,k,bi,bj,iTracer :: loop indices
38     INTEGER i,j,k,bi,bj,iTracer
39     #ifdef PTRACERS_ALLOW_DYN_STATE
40     INTEGER n
41     #endif
42     CHARACTER*(MAX_LEN_FNAM) tmpInitialFile
43     CEOP
44    
45     C Initialise internal parameter in common block:
46     _BEGIN_MASTER( myThid )
47     DO iTracer = 1, PTRACERS_num
48     PTRACERS_StepFwd(iTracer) = .TRUE.
49     PTRACERS_startAB(iTracer) = nIter0 - PTRACERS_Iter0
50     ENDDO
51     _END_MASTER( myThid )
52     _BARRIER
53    
54     C Loop over tracers
55     DO iTracer = 1, PTRACERS_num
56    
57     C Loop over tiles
58     DO bj = myByLo(myThid), myByHi(myThid)
59     DO bi = myBxLo(myThid), myBxHi(myThid)
60    
61     C Initialize arrays in common blocks :
62     DO k=1,Nr
63     DO j=1-OLy,sNy+OLy
64     DO i=1-OLx,sNx+OLx
65     pTracer(i,j,k,bi,bj,iTracer) = PTRACERS_ref(k,iTracer)
66     gpTrNm1(i,j,k,bi,bj,iTracer) = 0. _d 0
67     ENDDO
68     ENDDO
69     ENDDO
70     DO j=1-OLy,sNy+OLy
71     DO i=1-OLx,sNx+OLx
72     surfaceForcingPTr(i,j,bi,bj,iTracer) = 0. _d 0
73     ENDDO
74     ENDDO
75    
76     #ifdef PTRACERS_ALLOW_DYN_STATE
77     C Initialize SOM array :
78     IF ( PTRACERS_SOM_Advection(iTracer) ) THEN
79     DO n = 1,nSOM
80     DO k=1,Nr
81     DO j=1-OLy,sNy+OLy
82     DO i=1-OLx,sNx+OLx
83     _Ptracers_som(i,j,k,bi,bj,n,iTracer) = 0. _d 0
84     ENDDO
85     ENDDO
86     ENDDO
87     ENDDO
88     ENDIF
89     #endif /* PTRACERS_ALLOW_DYN_STATE */
90    
91     C end bi,bj loops
92     ENDDO
93     ENDDO
94    
95     C end of Tracer loop
96     ENDDO
97    
98     C Now read initial conditions and always exchange
99     IF (nIter0.EQ.PTRACERS_Iter0) THEN
100     DO iTracer = 1, PTRACERS_numInUse
101     tmpInitialFile = PTRACERS_initialFile(iTracer)
102     IF ( tmpInitialFile .NE. ' ' ) THEN
103     CALL READ_FLD_XYZ_RL(tmpInitialFile,' ',
104     & pTracer(1-OLx,1-OLy,1,1,1,iTracer),0,myThid)
105     _EXCH_XYZ_RL(pTracer(1-OLx,1-OLy,1,1,1,iTracer),myThid)
106     ENDIF
107     ENDDO
108     ENDIF
109    
110     C Now read tracer restoring forcing ! added by Yoshi
111     CALL READ_FLD_XYZ_RL('tr1.bin',' ',
112     & ForcingPTr3(1-OLx,1-OLy,1,1,1,1),0,myThid)
113     _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,1),myThid)
114     ! CALL READ_FLD_XYZ_RL('tr2.bin',' ',
115     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,2),0,myThid)
116     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,2),myThid)
117     ! CALL READ_FLD_XYZ_RL('tr3.bin',' ',
118     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,3),0,myThid)
119     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,3),myThid)
120     ! CALL READ_FLD_XYZ_RL('tr4.bin',' ',
121     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,4),0,myThid)
122     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,4),myThid)
123     ! CALL READ_FLD_XYZ_RL('tr5.bin',' ',
124     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,5),0,myThid)
125     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,5),myThid)
126     ! CALL READ_FLD_XYZ_RL('tr6.bin',' ',
127     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,6),0,myThid)
128     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,6),myThid)
129     ! CALL READ_FLD_XYZ_RL('tr7.bin',' ',
130     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,7),0,myThid)
131     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,7),myThid)
132     ! CALL READ_FLD_XYZ_RL('tr8.bin',' ',
133     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,8),0,myThid)
134     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,8),myThid)
135     ! CALL READ_FLD_XYZ_RL('tr9.bin',' ',
136     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,9),0,myThid)
137     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,9),myThid)
138     ! CALL READ_FLD_XYZ_RL('tr10.bin',' ',
139     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,10),0,myThid)
140     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,10),myThid)
141     ! CALL READ_FLD_XYZ_RL('tr11.bin',' ',
142     ! & ForcingPTr3(1-OLx,1-OLy,1,1,1,11),0,myThid)
143     ! _EXCH_XYZ_RL(ForcingPTr3(1-OLx,1-OLy,1,1,1,11),myThid)
144    
145    
146     C Apply mask
147     DO iTracer = 1, PTRACERS_numInUse
148     DO bj = myByLo(myThid), myByHi(myThid)
149     DO bi = myBxLo(myThid), myBxHi(myThid)
150     DO k=1,Nr
151     DO j=1-OLy,sNy+OLy
152     DO i=1-OLx,sNx+OLx
153     IF (maskC(i,j,k,bi,bj).EQ.0.)
154     & pTracer(i,j,k,bi,bj,iTracer)=0. _d 0
155     ENDDO
156     ENDDO
157     ENDDO
158     ENDDO
159     ENDDO
160     ENDDO
161    
162     C Read from a pickup file if needed
163     IF ( nIter0.GT.PTRACERS_Iter0 .OR.
164     & (nIter0.EQ.PTRACERS_Iter0 .AND. pickupSuff.NE.' ')
165     & ) THEN
166    
167     CALL PTRACERS_READ_PICKUP( nIter0, myThid )
168     ENDIF
169    
170     #endif /* ALLOW_PTRACERS */
171    
172     RETURN
173     END

  ViewVC Help
Powered by ViewVC 1.1.22