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.F90 in trunk/NEMO/TOP_SRC – NEMO

source: trunk/NEMO/TOP_SRC/trcdtr.F90 @ 331

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

nemo_v1_update_005:RB: update headers for the TOP component.

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