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

Contents 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 - (show 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 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