New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
trcdtr.F in trunk/NEMO/TOP_SRC – NEMO

source: trunk/NEMO/TOP_SRC/trcdtr.F @ 186

Last change on this file since 186 was 186, checked in by opalod, 19 years ago

CL + CE : NEMO TRC_SRC start

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 11.7 KB
Line 
1      SUBROUTINE trcdtr
2CCC---------------------------------------------------------------------
3CCC
4CCC                       ROUTINE trcdtr
5CCC                     ******************
6CCC
7CCC  PURPOSE :
8CCC  ---------
9CCC     computes or READ initial DATA for passive tracer
10CCC
11CC   METHOD :
12CC   -------
13CC
14CC   INPUT :           no
15CC   -----
16CC      COMMON
17CC            /comdom/          : domain PARAMETER
18CC            /comcoo/          : orthogonal curvilinear coordinates
19CC                                and scale factors
20CC            /comask/          : masks, bathymetry
21CC
22CC   OUTPUT :
23CC   ------
24CC      argument                : no
25CC      COMMON
26CC            /cottrc/          : passive tracer field now and before
27CC
28CC   WORKSPACE :       no
29CC   ---------
30CC
31CC   MODIFICATIONS:
32CC   --------------
33CC      original  : 96-11
34CC      additions : 99-9
35CC                : 00-12 (O. Aumont, E. Kestenare) 
36CC                         add for POC in sediments
37CC----------------------------------------------------------------------
38CC parameters and commons
39CC ======================
40      USE oce_trc
41      USE trc
42      USE sms
43      IMPLICIT NONE
44#if defined key_passivetrc
45CC----------------------------------------------------------------------
46CC local declarations
47CC ==================
48      INTEGER ji,jj,jk,jn
49      REAL alka0, oxyg0, calc0, bioma0 
50      REAL silic1,po4,no3
51      REAL caralk,bicarb
52      REAL  ztraa, ztrab, ztran
53
54CCC---------------------------------------------------------------------
55CCC  OPA8, LODYC (15/11/96)
56CCC---------------------------------------------------------------------
57C
58C
59C 0. initialisations
60C ------------------
61C
62      IF(lwp) THEN
63          WRITE(numout,*) ' '
64          WRITE(numout,*) ' *** trcdtr initialisation for '
65          WRITE(numout,*) '     passive tracers'
66          WRITE(numout,*) ' '
67      ENDIF
68
69#if defined key_trc_hamocc3
70
71      sco2   = 2.15e-3
72      alka0  = 2.45e-3
73      oxyg0  = 2.e-4
74      po4    = 2.1e-6/po4r
75      bioma0 = 1.e-8
76      silic1 = 85.e-6
77      calc0  = 1.e-5
78
79        DO jk = 1,jpk
80          DO jj = 1,jpj
81            DO ji = 1,jpi
82C
83              trn(ji,jj,jk,jpdic) = sco2
84              trn(ji,jj,jk,jptal) = alka0
85              trn(ji,jj,jk,jpoxy) = oxyg0
86              trn(ji,jj,jk,jppo4) = po4
87              trn(ji,jj,jk,jppoc) = bioma0
88              trn(ji,jj,jk,jpsil) = silic1
89              trn(ji,jj,jk,jpcal) = calc0
90#if defined key_trc_p3zd
91              trn(ji,jj,jk,jpphy) = bioma0
92              trn(ji,jj,jk,jpzoo) = bioma0
93              trn(ji,jj,jk,jpdoc) = bioma0
94#endif
95              caralk = trn(ji,jj,jk,jptal)-
96     &                 bor/(1.+1.E-7/akb3(ji,jj,jk))
97              co3(ji,jj,jk) = caralk-trn(ji,jj,jk,jpdic)
98              bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk)
99              hi(ji,jj,jk) = ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk)
100              h2co3(ji,jj) = 1.e-5
101            ENDDO
102          ENDDO
103        ENDDO
104C
105C  initialize Silicate and Calcite in sediments
106C  --------------------------------------------
107C
108      sedcal = 0.
109      sedsil = 0.
110
111      WRITE(numout,*) 'Initialization of P3ZD tracers done'
112      WRITE(numout,*) '-----------------------------------'
113
114#elif defined key_cfc
115       DO  jn=1,jptra
116          DO  jj=1,jpj
117            DO  ji=1,jpi
118              DO  jk=1,jpk
119                trn(ji,jj,jk,jn)=0.0
120              END DO
121            END DO
122          END DO
123       END DO
124        DO jn=1,jptra
125          DO  jk=1,jpk
126            DO  jj=1,jpj
127              DO  ji=1,jpi
128               trb(ji,jj,jk,jn)=trn(ji,jj,jk,jn)
129              END DO
130            END DO
131          END DO
132        END DO
133#elif defined key_gosac
134c       DO  jn=1,jptra
135          DO  jj=1,jpj
136            DO  ji=1,jpi
137              DO  jk=1,jpk
138                trn(ji,jj,jk,1)=1895.*1.e-6*1028.*tmask(ji,jj,jk)
139                trn(ji,jj,jk,2)=0.9*1895.*1.e-6*1028.*tmask(ji,jj,jk)
140              END DO
141            END DO
142          END DO
143c       END DO
144        DO jn=1,jptra
145          DO  jk=1,jpk
146            DO  jj=1,jpj
147              DO  ji=1,jpi
148               trb(ji,jj,jk,jn)=trn(ji,jj,jk,jn)
149              END DO
150            END DO
151          END DO
152        END DO
153
154#elif defined key_trc_age
155      DO  jn=1,jptra
156          DO  jj=1,jpj
157            DO  ji=1,jpi
158              DO  jk=1,jpk
159              trn(ji,jj,jk,1)=1.
160              trn(ji,jj,jk,2)=0. 
161              END DO
162            END DO
163          END DO
164      END DO
165C
166#elif defined key_trc_lobster1 && (defined key_eel_r6 || defined key_eel_r2)
167c analytical initialisation used in Levy et al. (2001)
168     
169      DO  jk=1,7
170        DO  jj=1,jpj
171          DO  ji=1,jpi
172            trn(ji,jj,jk,jpdet)=0.016*tmask(ji,jj,jk)
173            trn(ji,jj,jk,jpzoo)=0.018*tmask(ji,jj,jk)
174            trn(ji,jj,jk,jpphy)=0.036*tmask(ji,jj,jk)
175            trn(ji,jj,jk,jpno3)=1.e-5*tmask(ji,jj,jk)
176            trn(ji,jj,jk,jpnh4)=0.0005*tmask(ji,jj,jk)
177            trn(ji,jj,jk,jpdom)=0.017*tmask(ji,jj,jk)
178          END DO
179        END DO
180      END DO
181      DO  jj=1,jpj
182        DO  ji=1,jpi
183          trn(ji,jj,8,jpdet)=0.020*tmask(ji,jj,1)
184          trn(ji,jj,8,jpzoo)=0.027*tmask(ji,jj,1)
185          trn(ji,jj,8,jpphy)=0.041*tmask(ji,jj,1)
186          trn(ji,jj,8,jpno3)=0.00022*tmask(ji,jj,1)
187          trn(ji,jj,8,jpnh4)=0.0033*tmask(ji,jj,1)
188          trn(ji,jj,8,jpdom)=0.021*tmask(ji,jj,1)
189        END DO
190      END DO
191      DO  jj=1,jpj
192        DO  ji=1,jpi
193          trn(ji,jj,9,jpdet)=0.0556*tmask(ji,jj,1)
194          trn(ji,jj,9,jpzoo)=0.123*tmask(ji,jj,1)
195          trn(ji,jj,9,jpphy)=0.122*tmask(ji,jj,1)
196          trn(ji,jj,9,jpno3)=0.028*tmask(ji,jj,1)
197          trn(ji,jj,9,jpnh4)=0.024*tmask(ji,jj,1)
198          trn(ji,jj,9,jpdom)=0.06*tmask(ji,jj,1)
199        END DO
200      END DO
201      DO  jj=1,jpj
202        DO  ji=1,jpi
203          trn(ji,jj,10,jpdet)=0.025*tmask(ji,jj,1)
204          trn(ji,jj,10,jpzoo)=0.016*tmask(ji,jj,1)
205          trn(ji,jj,10,jpphy)=0.029*tmask(ji,jj,1)
206          trn(ji,jj,10,jpno3)=2.462*tmask(ji,jj,1)
207          trn(ji,jj,10,jpnh4)=0.04*tmask(ji,jj,1)
208          trn(ji,jj,10,jpdom)=0.022*tmask(ji,jj,1)
209        END DO
210      END DO
211      DO  jj=1,jpj
212        DO  ji=1,jpi
213          trn(ji,jj,11,jpdet)=0.0057*tmask(ji,jj,1)
214          trn(ji,jj,11,jpzoo)=0.0005*tmask(ji,jj,1)
215          trn(ji,jj,11,jpphy)=0.0006*tmask(ji,jj,1)
216          trn(ji,jj,11,jpno3)=3.336*tmask(ji,jj,1)
217          trn(ji,jj,11,jpnh4)=0.005*tmask(ji,jj,1)
218          trn(ji,jj,11,jpdom)=0.004*tmask(ji,jj,1)
219        END DO
220      END DO
221      DO  jj=1,jpj
222        DO  ji=1,jpi
223          trn(ji,jj,12,jpdet)=0.002*tmask(ji,jj,1)
224          trn(ji,jj,12,jpzoo)=1.e-6*tmask(ji,jj,1)
225          trn(ji,jj,12,jpphy)=5.e-6*tmask(ji,jj,1)
226          trn(ji,jj,12,jpno3)=4.24*tmask(ji,jj,1)
227          trn(ji,jj,12,jpnh4)=0.001*tmask(ji,jj,1)
228          trn(ji,jj,12,jpdom)=3.e-5*tmask(ji,jj,1)
229        END DO
230      END DO
231      DO  jk=13,jpk
232        DO  jj=1,jpj
233          DO  ji=1,jpi
234            trn(ji,jj,jk,jpdet)=0.0
235            trn(ji,jj,jk,jpzoo)=0.0
236            trn(ji,jj,jk,jpphy)=0.0
237            trn(ji,jj,jk,jpnh4)=0.0
238            trn(ji,jj,jk,jpdom)=0.0
239          END DO
240        END DO
241      END DO
242      DO  jj=1,jpj
243        DO  ji=1,jpi
244          trn(ji,jj,13,jpno3)=5.31*tmask(ji,jj,13)
245          trn(ji,jj,14,jpno3)=6.73*tmask(ji,jj,14)
246          trn(ji,jj,15,jpno3)=8.32*tmask(ji,jj,15)
247          trn(ji,jj,16,jpno3)=10.13*tmask(ji,jj,16)
248          trn(ji,jj,17,jpno3)=11.95*tmask(ji,jj,17)
249          trn(ji,jj,18,jpno3)=13.57*tmask(ji,jj,18)
250          trn(ji,jj,19,jpno3)=15.08*tmask(ji,jj,19)
251          trn(ji,jj,20,jpno3)=16.41*tmask(ji,jj,20)
252          trn(ji,jj,21,jpno3)=17.47*tmask(ji,jj,21)
253          trn(ji,jj,22,jpno3)=18.29*tmask(ji,jj,22)
254          trn(ji,jj,23,jpno3)=18.88*tmask(ji,jj,23)
255          trn(ji,jj,24,jpno3)=19.30*tmask(ji,jj,24)
256          trn(ji,jj,25,jpno3)=19.68*tmask(ji,jj,25)
257          trn(ji,jj,26,jpno3)=19.91*tmask(ji,jj,26)
258          trn(ji,jj,27,jpno3)=19.99*tmask(ji,jj,27)
259          trn(ji,jj,28,jpno3)=20.01*tmask(ji,jj,28)
260          trn(ji,jj,29,jpno3)=20.01*tmask(ji,jj,29)
261          trn(ji,jj,30,jpno3)=20.01*tmask(ji,jj,30)
262        END DO
263      END DO
264
265#elif defined key_trc_pisces
266
267      sco2   = 2.3e-3
268      alka0  = 2.39e-3
269      oxyg0  = 1.8e-4
270      po4    = 2.165e-6/po4r
271      bioma0 = 1.e-8
272      silic1 = 91.51e-6
273      calc0  = 1.e-6
274      no3    = 30.88E-6*7.6
275
276
277      DO jk = 1,jpk
278        DO jj = 1,jpj
279          DO ji = 1,jpi
280              trn(ji,jj,jk,jpdic) = sco2
281              trn(ji,jj,jk,jptal) = alka0
282              trn(ji,jj,jk,jpoxy) = oxyg0
283              trn(ji,jj,jk,jppo4) = po4
284              trn(ji,jj,jk,jppoc) = bioma0
285              trn(ji,jj,jk,jpsil) = silic1
286              trn(ji,jj,jk,jpcal) = calc0
287              trn(ji,jj,jk,jpphy) = bioma0
288              trn(ji,jj,jk,jpzoo) = bioma0
289              trn(ji,jj,jk,jpdoc) = bioma0
290              trn(ji,jj,jk,jpdia) = bioma0
291              trn(ji,jj,jk,jpmes) = bioma0
292              trn(ji,jj,jk,jpbsi) = bioma0*0.15
293              trn(ji,jj,jk,jpfer) = 0.6E-9
294              trn(ji,jj,jk,jpbfe) = bioma0*5E-6
295              trn(ji,jj,jk,jpgoc) = bioma0
296              trn(ji,jj,jk,jpsfe) = bioma0*5.E-6
297              trn(ji,jj,jk,jpdfe) = bioma0*5.E-6
298              trn(ji,jj,jk,jpnfe) = bioma0*5.E-6
299              trn(ji,jj,jk,jpdsi) = bioma0*5.E-6
300              trn(ji,jj,jk,jpnch) = bioma0*12./55.
301              trn(ji,jj,jk,jpdch) = bioma0*12./55.
302              trn(ji,jj,jk,jpno3) = no3 
303              trn(ji,jj,jk,jpnh4) = bioma0
304          ENDDO
305        ENDDO
306      ENDDO
307C
308C  Initialization of chemical variables of the carbon cycle
309C  --------------------------------------------------------
310C
311      DO jk = 1,jpk
312        DO jj = 1,jpj
313          DO ji = 1,jpi
314              caralk = trn(ji,jj,jk,jptal)-
315     &                 borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk)))
316              co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)
317     &           +(1.-tmask(ji,jj,jk))*.5e-3
318              bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk)
319              hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk))
320     &           *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9
321          ENDDO
322        ENDDO
323      ENDDO
324
325      h2co3(:,:) = 1.e-5
326C
327C  initialize the half saturation constant for silicate
328C  ----------------------------------------------------
329C
330      xksi(:,:)=2.E-6
331C
332C  initialize Silicate and Calcite in sediments
333C
334      sedcal(:,:) = 0.
335      sedsil(:,:) = 0.
336
337      WRITE(numout,*) 'Initialization of PISCES tracers done'
338      WRITE(numout,*) ' '
339
340#else
341C 
342C general case
343C
344      DO  jn=1,jptra
345          DO  jk=1,jpk
346            DO  jj=1,jpj
347              DO  ji=1,jpi
348                trn(ji,jj,jk,jn)=0.1
349              END DO
350            END DO
351          END DO
352      ENDDO
353#endif
354
355#if defined key_trc_dta
356C   Initialization of tracer from a file
357C   that may also be used for damping
358C 
359      CALL trcdta( nit000 )
360      DO  jn = 1, jptra
361        IF( lutini(jn) ) THEN
362C initialisation from file
363           trn(:,:,:,jn) = trdta(:,:,:,jn)
364        ENDIF
365      END DO
366#endif
367C
368C before field :
369C
370      trb(:,:,:,:) = trn(:,:,:,:)
371
372      WRITE(numout,*)
373      DO jn = 1, jptra
374         IF( l_ctl .AND. lwp ) THEN ! print mean trends (used for debugging)
375            ztraa = SUM( tra(1:jpi,1:jpj,1:jpk,jn) * 
376     $          tmask(1:jpi,1:jpj,1:jpk) )
377            ztrab = SUM( trb(1:jpi,1:jpj,1:jpk,jn) * 
378     $          tmask(1:jpi,1:jpj,1:jpk) )
379            ztran = SUM( trn(1:jpi,1:jpj,1:jpk,jn) * 
380     $          tmask(1:jpi,1:jpj,1:jpk) )
381            WRITE(numout,*) ' trcdtr  - ',ctrcnm(jn),
382     $          ' : ', ztraa, '  ', ztrab, '  ', ztran
383         ENDIF
384      END DO
385C
386C  initialize the POC in sediments
387#  if defined key_trc_npzd || defined key_trc_lobster1 || defined key_trc_hamocc3 || defined key_trc_pisces
388C
389      sedpoc(:,:) = 0.
390C
391#  endif
392
393#else
394C
395C     no passive tracers
396C
397#endif
398C
399      RETURN
400      END
401
Note: See TracBrowser for help on using the repository browser.