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

Last change on this file since 565 was 493, checked in by opalod, 18 years ago

nemo_v1_bugfix_056:CE+RB: change key_trc_dta to key_dtatrc

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 8.7 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#if defined key_trc_pisces
64      REAL(wp) :: alka0,oxyg0,calc0,bioma0,    &
65                  silic1,po4,no3,caralk,bicarb
66#endif
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
79#if defined key_cfc
80      trn(:,:,:,:)=0.0
81#elif defined key_trc_pisces
82
83      sco2   = 2.3e-3
84      alka0  = 2.39e-3
85      oxyg0  = 1.8e-4
86      po4    = 2.165e-6/po4r
87      bioma0 = 1.e-8
88      silic1 = 91.51e-6
89      calc0  = 1.e-6
90      no3    = 30.88E-6*7.6
91
92      trn(:,:,:,jpdic) = sco2
93      trn(:,:,:,jptal) = alka0
94      trn(:,:,:,jpoxy) = oxyg0
95      trn(:,:,:,jppo4) = po4
96      trn(:,:,:,jppoc) = bioma0
97      trn(:,:,:,jpsil) = silic1
98      trn(:,:,:,jpcal) = calc0
99      trn(:,:,:,jpphy) = bioma0
100      trn(:,:,:,jpzoo) = bioma0
101      trn(:,:,:,jpdoc) = bioma0
102      trn(:,:,:,jpdia) = bioma0
103      trn(:,:,:,jpmes) = bioma0
104      trn(:,:,:,jpbsi) = bioma0*0.15
105      trn(:,:,:,jpfer) = 0.6E-9
106      trn(:,:,:,jpbfe) = bioma0*5E-6
107      trn(:,:,:,jpgoc) = bioma0
108      trn(:,:,:,jpsfe) = bioma0*5.E-6
109      trn(:,:,:,jpdfe) = bioma0*5.E-6
110      trn(:,:,:,jpnfe) = bioma0*5.E-6
111      trn(:,:,:,jpdsi) = bioma0*5.E-6
112      trn(:,:,:,jpnch) = bioma0*12./55.
113      trn(:,:,:,jpdch) = bioma0*12./55.
114      trn(:,:,:,jpno3) = no3 
115      trn(:,:,:,jpnh4) = bioma0
116
117!!  Initialization of chemical variables of the carbon cycle
118!!  --------------------------------------------------------
119
120      DO jk = 1,jpk
121        DO jj = 1,jpj
122          DO ji = 1,jpi
123              caralk = trn(ji,jj,jk,jptal)-         & 
124                      borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk)))
125              co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)       & 
126                     +(1.-tmask(ji,jj,jk))*.5e-3
127              bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk)
128              hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk))             & 
129                *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9
130          ENDDO
131        ENDDO
132      ENDDO
133
134      h2co3(:,:) = 1.e-5
135
136!!  initialize the half saturation constant for silicate
137!!  ----------------------------------------------------
138
139      xksi(:,:)=2.E-6
140
141!! initialize Silicate and Calcite and POC in sediments
142!! ---------------------------------------------------
143      sedcal(:,:) = 0.
144      sedsil(:,:) = 0.
145      sedpoc(:,:) = 0.
146
147      IF(lwp) WRITE(numout,*) 'Initialization of PISCES tracers done'
148      IF(lwp) WRITE(numout,*) ' '
149
150#elif defined key_trc_lobster1 && ( defined key_eel_r6 || defined key_eel_r2 )
151! analytical initialisation used in Levy et al. (2001)
152     
153      DO jk=1,7
154        trn(:,:,jk,jpdet)=0.016*tmask(:,:,jk)
155        trn(:,:,jk,jpzoo)=0.018*tmask(:,:,jk)
156        trn(:,:,jk,jpphy)=0.036*tmask(:,:,jk)
157        trn(:,:,jk,jpno3)=1.e-5*tmask(:,:,jk)
158        trn(:,:,jk,jpnh4)=0.0005*tmask(:,:,jk)
159        trn(:,:,jk,jpdom)=0.017*tmask(:,:,jk)
160      END DO
161
162      trn(:,:,8,jpdet)=0.020*tmask(:,:,1)
163      trn(:,:,8,jpzoo)=0.027*tmask(:,:,1)
164      trn(:,:,8,jpphy)=0.041*tmask(:,:,1)
165      trn(:,:,8,jpno3)=0.00022*tmask(:,:,1)
166      trn(:,:,8,jpnh4)=0.0033*tmask(:,:,1)
167      trn(:,:,8,jpdom)=0.021*tmask(:,:,1)
168
169      trn(:,:,9,jpdet)=0.0556*tmask(:,:,1)
170      trn(:,:,9,jpzoo)=0.123*tmask(:,:,1)
171      trn(:,:,9,jpphy)=0.122*tmask(:,:,1)
172      trn(:,:,9,jpno3)=0.028*tmask(:,:,1)
173      trn(:,:,9,jpnh4)=0.024*tmask(:,:,1)
174      trn(:,:,9,jpdom)=0.06*tmask(:,:,1)
175
176      trn(:,:,10,jpdet)=0.025*tmask(:,:,1)
177      trn(:,:,10,jpzoo)=0.016*tmask(:,:,1)
178      trn(:,:,10,jpphy)=0.029*tmask(:,:,1)
179      trn(:,:,10,jpno3)=2.462*tmask(:,:,1)
180      trn(:,:,10,jpnh4)=0.04*tmask(:,:,1)
181      trn(:,:,10,jpdom)=0.022*tmask(:,:,1)
182
183      trn(:,:,11,jpdet)=0.0057*tmask(:,:,1)
184      trn(:,:,11,jpzoo)=0.0005*tmask(:,:,1)
185      trn(:,:,11,jpphy)=0.0006*tmask(:,:,1)
186      trn(:,:,11,jpno3)=3.336*tmask(:,:,1)
187      trn(:,:,11,jpnh4)=0.005*tmask(:,:,1)
188      trn(:,:,11,jpdom)=0.004*tmask(:,:,1)
189
190      trn(:,:,12,jpdet)=0.002*tmask(:,:,1)
191      trn(:,:,12,jpzoo)=1.e-6*tmask(:,:,1)
192      trn(:,:,12,jpphy)=5.e-6*tmask(:,:,1)
193      trn(:,:,12,jpno3)=4.24*tmask(:,:,1)
194      trn(:,:,12,jpnh4)=0.001*tmask(:,:,1)
195      trn(:,:,12,jpdom)=3.e-5*tmask(:,:,1)
196
197      DO jk=13,jpk
198        trn(:,:,jk,jpdet)=0.0
199        trn(:,:,jk,jpzoo)=0.0
200        trn(:,:,jk,jpphy)=0.0
201        trn(:,:,jk,jpnh4)=0.0
202        trn(:,:,jk,jpdom)=0.0
203      END DO
204
205      trn(:,:,13,jpno3)=5.31*tmask(:,:,13)
206      trn(:,:,14,jpno3)=6.73*tmask(:,:,14)
207      trn(:,:,15,jpno3)=8.32*tmask(:,:,15)
208      trn(:,:,16,jpno3)=10.13*tmask(:,:,16)
209      trn(:,:,17,jpno3)=11.95*tmask(:,:,17)
210      trn(:,:,18,jpno3)=13.57*tmask(:,:,18)
211      trn(:,:,19,jpno3)=15.08*tmask(:,:,19)
212      trn(:,:,20,jpno3)=16.41*tmask(:,:,20)
213      trn(:,:,21,jpno3)=17.47*tmask(:,:,21)
214      trn(:,:,22,jpno3)=18.29*tmask(:,:,22)
215      trn(:,:,23,jpno3)=18.88*tmask(:,:,23)
216      trn(:,:,24,jpno3)=19.30*tmask(:,:,24)
217      trn(:,:,25,jpno3)=19.68*tmask(:,:,25)
218      trn(:,:,26,jpno3)=19.91*tmask(:,:,26)
219      trn(:,:,27,jpno3)=19.99*tmask(:,:,27)
220      trn(:,:,28,jpno3)=20.01*tmask(:,:,28)
221      trn(:,:,29,jpno3)=20.01*tmask(:,:,29)
222      trn(:,:,30,jpno3)=20.01*tmask(:,:,30)
223
224#elif defined key_trc_lobster1 && defined key_gyre
225! init NO3=f(density) by asklod AS Kremeur 2005-07
226      trn(:,:,:,jpdet)=0.1*tmask(:,:,:)
227      trn(:,:,:,jpzoo)=0.1*tmask(:,:,:)
228      trn(:,:,:,jpnh4)=0.1*tmask(:,:,:)
229      trn(:,:,:,jpphy)=0.1*tmask(:,:,:)
230      trn(:,:,:,jpdom)=1.*tmask(:,:,:)
231      DO  jk=1,jpk
232         DO  jj=1,jpj
233            DO  ji=1,jpi
234               IF (rhd(ji,jj,jk).LE.24.5e-3) THEN
235                  trn(ji,jj,jk,jpno3)=2.*tmask(ji,jj,jk)
236               ELSE
237                  trn(ji,jj,jk,jpno3)=(15.55*(rhd(ji,jj,jk)*1000)-380.11)*tmask(ji,jj,jk)
238               ENDIF
239            END DO
240         END DO
241      END DO
242
243#else
244 
245!! general case
246      do jn = 1, jptra
247         trn(:,:,:,jn)=0.1*tmask(:,:,:)
248      enddo
249
250#endif
251
252#if defined key_dtatrc
253!!   Initialization of tracer from a file
254!!   that may also be used for damping
255      CALL dta_trc( nittrc000 )
256      DO  jk = 1, jptra
257        IF( lutini(jk) ) THEN 
258!! initialisation from file
259           trn(:,:,:,jk) = trdta(:,:,:,jk)*tmask(:,:,:)
260        ENDIF
261      END DO
262#endif
263
264!! before field :
265!! -------------
266      trb(:,:,:,:) = trn(:,:,:,:)
267
268#if defined key_trc_lobster1
269!!  initialize the POC in sediments
270
271      sedpocb(:,:) = 0.
272      sedpocn(:,:) = 0.
273      sedpoca(:,:) = 0.
274#endif
275     
276 END SUBROUTINE trc_dtr 
277
278#else
279
280SUBROUTINE  trc_dtr 
281!!======================
282   !! no passive tracers
283!!======================
284END SUBROUTINE  trc_dtr
285#endif
286
287END MODULE trcdtr
Note: See TracBrowser for help on using the repository browser.