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 @ 247

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

CL : Add CVS Header and CeCILL licence information

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