source: branches/dev_001_GM/NEMO/TOP_SRC/trcdtr.F90 @ 773

Last change on this file since 773 was 773, checked in by gm, 13 years ago

dev_001_GM - small changes : compilation OK

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.4 KB
Line 
1MODULE trcdtr
2   !!======================================================================
3   !!                         ***  MODULE trcdtr  ***
4   !! TOP :   computes or READ initial DATA for passive tracer
5   !!======================================================================
6   !! History :    -   !  1996-11  ()  original code
7   !!                  !  2000-12  (O. Aumont, E. Kestenare) add for POC in sediments
8   !!             1.0  !  2005-12  (O. Aumont, A. El Moussaoui) F90
9   !!----------------------------------------------------------------------
10#if defined key_top
11   !!----------------------------------------------------------------------
12   !!   'key_top'                                                TOP models
13   !!----------------------------------------------------------------------
14   !!   trc_dtr    :  computes or READ initial DATA for passive tracer
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
25   PUBLIC trc_dtr      ! called in ???
26
27   !!----------------------------------------------------------------------
28   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)
29   !! $Header:$
30   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
31   !!----------------------------------------------------------------------
32
33CONTAINS
34
35   SUBROUTINE trc_dtr
36      !!---------------------------------------------------------------------
37      !!                     ***  ROUTINE trc_dtr  ***
38      !!
39      !! ** Purpose :   computes or READ initial DATA for passive tracer
40      !!
41      !! ** Method  :
42      !!---------------------------------------------------------------------
43      INTEGER ::   jn 
44# if defined key_pisces
45      INTEGER ::   ji, jj, jk 
46      REAL(wp) ::   alka0, oxyg0, calc0, bioma0
47      REAL(wp) ::   silic1, po4, no3, caralk, bicarb, co3
48# endif
49      !!---------------------------------------------------------------------
50
51      IF(lwp) WRITE(numout,*)
52      IF(lwp) WRITE(numout,*) 'trc_dtr : initialisation of the passive tracers'
53      IF(lwp) WRITE(numout,*) '~~~~~~~'
54
55      IF( lk_cfc ) THEN
56         DO jn = jp_cfc0,jp_cfc1
57            trn(:,:,:,jn) = 0.e0      ! CFC initialisation to zera
58         END DO
59      ENDIF
60     
61# if defined key_pisces
62      ! PISCES initialisation
63      ! ---------------------
64      sco2   =  2.300e-3
65      alka0  =  2.390e-3
66      oxyg0  =  1.800e-4
67      po4    =  2.165e-6 / po4r
68      bioma0 =  1.000e-8
69      silic1 = 91.510e-6
70      calc0  =  1.000e-6
71      no3    = 30.880e-6 * 7.6
72
73      trn(:,:,:,jpdic) = sco2
74      trn(:,:,:,jpdoc) = bioma0
75      trn(:,:,:,jptal) = alka0
76      trn(:,:,:,jpoxy) = oxyg0
77      trn(:,:,:,jpcal) = calc0
78      trn(:,:,:,jppo4) = po4
79      trn(:,:,:,jppoc) = bioma0
80#  if ! defined key_kriest
81      trn(:,:,:,jpgoc) = bioma0
82      trn(:,:,:,jpbfe) = bioma0 * 5.e-6
83#  else
84      trn(:,:,:,jpnum) = bioma0 / ( 6. *xkr_massp )
85#  endif
86      trn(:,:,:,jpsil) = silic1
87      trn(:,:,:,jpbsi) = bioma0 * 0.15
88      trn(:,:,:,jpdsi) = bioma0 * 5.e-6
89      trn(:,:,:,jpphy) = bioma0
90      trn(:,:,:,jpdia) = bioma0
91      trn(:,:,:,jpzoo) = bioma0
92      trn(:,:,:,jpmes) = bioma0
93      trn(:,:,:,jpfer) = 0.6E-9
94      trn(:,:,:,jpsfe) = bioma0 * 5.e-6
95      trn(:,:,:,jpdfe) = bioma0 * 5.e-6
96      trn(:,:,:,jpnfe) = bioma0 * 5.e-6
97      trn(:,:,:,jpnch) = bioma0 * 12. / 55.
98      trn(:,:,:,jpdch) = bioma0 * 12. / 55.
99      trn(:,:,:,jpno3) = no3
100      trn(:,:,:,jpnh4) = bioma0
101
102      ! Initialization of chemical variables of the carbon cycle
103      ! --------------------------------------------------------
104      DO jk = 1, jpk
105         DO jj = 1, jpj
106            DO ji = 1, jpi
107               caralk = trn(ji,jj,jk,jptal) - borat(ji,jj,jk) / (  1. + 1.E-8 / ( rtrn + akb3(ji,jj,jk) )  )
108               co3    = ( caralk - trn(ji,jj,jk,jpdic) ) *        tmask(ji,jj,jk)   &
109                  &   +                  0.5e-3          * ( 1. - tmask(ji,jj,jk) )
110               bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk)
111               hi(ji,jj,jk) = ( ak23(ji,jj,jk) * bicarb / co3 ) *        tmask(ji,jj,jk)   & 
112                  &         +            1.e-9                  * ( 1. - tmask(ji,jj,jk) )
113          END DO
114        END DO
115      END DO
116
117      ! initialize the half saturation constant for silicate
118      ! ----------------------------------------------------
119      xksi(:,:) = 2.e-6
120
121      IF(lwp) WRITE(numout,*) 'Initialization of PISCES tracers done'
122      IF(lwp) WRITE(numout,*) ' '
123
124# elif defined key_lobster && ( defined key_eel_r6 || defined key_eel_r2 )
125      ! LOBSTER initialisation for EEL
126      ! ----------------------
127      ! here: analytical initialisation used in Levy et al. (2001)
128     
129      DO jk = 1, 7
130         trn(:,:,jk,jpdet) = 0.016 * tmask(:,:,jk)
131         trn(:,:,jk,jpzoo) = 0.018 * tmask(:,:,jk)
132         trn(:,:,jk,jpphy) = 0.036 * tmask(:,:,jk)
133         trn(:,:,jk,jpno3) = 1.e-5 * tmask(:,:,jk)
134         trn(:,:,jk,jpnh4) = 5.e-4 * tmask(:,:,jk)
135         trn(:,:,jk,jpdom) = 0.017 * tmask(:,:,jk)
136      END DO
137
138      trn(:,:, 8,jpdet) = 0.020   * tmask(:,:, 8)
139      trn(:,:, 8,jpzoo) = 0.027   * tmask(:,:, 8)
140      trn(:,:, 8,jpphy) = 0.041   * tmask(:,:, 8)
141      trn(:,:, 8,jpno3) = 0.00022 * tmask(:,:, 8)
142      trn(:,:, 8,jpnh4) = 0.0033  * tmask(:,:, 8)
143      trn(:,:, 8,jpdom) = 0.021   * tmask(:,:, 8)
144
145      trn(:,:, 9,jpdet) = 0.0556  * tmask(:,:, 9)
146      trn(:,:, 9,jpzoo) = 0.123   * tmask(:,:, 9)
147      trn(:,:, 9,jpphy) = 0.122   * tmask(:,:, 9)
148      trn(:,:, 9,jpno3) = 0.028   * tmask(:,:, 9)
149      trn(:,:, 9,jpnh4) = 0.024   * tmask(:,:, 9)
150      trn(:,:, 9,jpdom) = 0.06    * tmask(:,:, 9)
151
152      trn(:,:,10,jpdet) = 0.025   * tmask(:,:,10)
153      trn(:,:,10,jpzoo) = 0.016   * tmask(:,:,10)
154      trn(:,:,10,jpphy) = 0.029   * tmask(:,:,10)
155      trn(:,:,10,jpno3) = 2.462   * tmask(:,:,10)
156      trn(:,:,10,jpnh4) = 0.04    * tmask(:,:,10)
157      trn(:,:,10,jpdom) = 0.022   * tmask(:,:,10)
158
159      trn(:,:,11,jpdet) = 0.0057  * tmask(:,:,11)
160      trn(:,:,11,jpzoo) = 0.0005  * tmask(:,:,11)
161      trn(:,:,11,jpphy) = 0.0006  * tmask(:,:,11)
162      trn(:,:,11,jpno3) = 3.336   * tmask(:,:,11)
163      trn(:,:,11,jpnh4) = 0.005   * tmask(:,:,11)
164      trn(:,:,11,jpdom) = 0.004   * tmask(:,:,11)
165
166      trn(:,:,12,jpdet) = 0.002   * tmask(:,:,12)
167      trn(:,:,12,jpzoo) = 1.e-6   * tmask(:,:,12)
168      trn(:,:,12,jpphy) = 5.e-6   * tmask(:,:,12)
169      trn(:,:,12,jpno3) = 4.24    * tmask(:,:,12)
170      trn(:,:,12,jpnh4) = 0.001   * tmask(:,:,12)
171      trn(:,:,12,jpdom) = 3.e-5   * tmask(:,:,12)
172
173      DO jk=13,jpk
174        trn(:,:,jk,jpdet) = 0.e0
175        trn(:,:,jk,jpzoo) = 0.e0
176        trn(:,:,jk,jpphy) = 0.e0
177        trn(:,:,jk,jpnh4) = 0.e0
178        trn(:,:,jk,jpdom) = 0.e0
179      END DO
180
181      trn(:,:,13,jpno3) = 5.31  * tmask(:,:,13)
182      trn(:,:,14,jpno3) = 6.73  * tmask(:,:,14)
183      trn(:,:,15,jpno3) = 8.32  * tmask(:,:,15)
184      trn(:,:,16,jpno3) = 10.13 * tmask(:,:,16)
185      trn(:,:,17,jpno3) = 11.95 * tmask(:,:,17)
186      trn(:,:,18,jpno3) = 13.57 * tmask(:,:,18)
187      trn(:,:,19,jpno3) = 15.08 * tmask(:,:,19)
188      trn(:,:,20,jpno3) = 16.41 * tmask(:,:,20)
189      trn(:,:,21,jpno3) = 17.47 * tmask(:,:,21)
190      trn(:,:,22,jpno3) = 18.29 * tmask(:,:,22)
191      trn(:,:,23,jpno3) = 18.88 * tmask(:,:,23)
192      trn(:,:,24,jpno3) = 19.30 * tmask(:,:,24)
193      trn(:,:,25,jpno3) = 19.68 * tmask(:,:,25)
194      trn(:,:,26,jpno3) = 19.91 * tmask(:,:,26)
195      trn(:,:,27,jpno3) = 19.99 * tmask(:,:,27)
196      trn(:,:,28,jpno3) = 20.01 * tmask(:,:,28)
197      trn(:,:,29,jpno3) = 20.01 * tmask(:,:,29)
198      trn(:,:,30,jpno3) = 20.01 * tmask(:,:,30)
199
200# elif defined key_lobster && defined key_gyre
201      ! LOBSTER initialisation for GYRE
202      ! ----------------------
203      ! here:  init NO3=f(density) by asklod AS Kremeur 2005-07
204      trn(:,:,:,jpdet) = 0.1 * tmask(:,:,:)
205      trn(:,:,:,jpzoo) = 0.1 * tmask(:,:,:)
206      trn(:,:,:,jpnh4) = 0.1 * tmask(:,:,:)
207      trn(:,:,:,jpphy) = 0.1 * tmask(:,:,:)
208      trn(:,:,:,jpdom) = 1.0 * tmask(:,:,:)
209      DO jk = 1, jpk
210         DO jj = 1, jpj
211            DO ji = 1, jpi
212               IF( rhd(ji,jj,jk) <= 24.5e-3 ) THEN
213                  trn(ji,jj,jk,jpno3) = 2. * tmask(ji,jj,jk)
214               ELSE
215                  trn(ji,jj,jk,jpno3) = ( 15.55 * ( rhd(ji,jj,jk) * 1000. ) - 380.11 ) * tmask(ji,jj,jk)
216               ENDIF
217            END DO
218         END DO
219      END DO
220
221# else
222      ! Default case
223      ! ------------
224      DO jn = 1, jptra
225         trn(:,:,:,jn) = 0.1 * tmask(:,:,:)
226      END DO
227
228# endif
229
230# if defined key_dtatrc
231     ! Initialization of tracer from a file that may also be used for damping
232      CALL dta_trc( nittrc000 )
233      DO jn = 1, jptra
234        IF( lutini(jn) )   trn(:,:,:,jk) = trdta(:,:,:,jn) * tmask(:,:,:)   ! initialisation from file if required
235      END DO
236# endif
237
238      ! before field :
239      ! -------------
240      trb(:,:,:,:) = trn(:,:,:,:)
241
242# if defined key_lobster
243      !  initialize the POC in sediments
244      sedpocb(:,:) = 0.e0
245      sedpocn(:,:) = 0.e0
246      sedpoca(:,:) = 0.e0
247# endif
248      !
249   END SUBROUTINE trc_dtr 
250
251#else
252   !!----------------------------------------------------------------------
253   !!  Dummy module :                                     No passive tracer
254   !!----------------------------------------------------------------------
255CONTAINS
256   SUBROUTINE trc_dtr                      ! Empty routine   
257   END SUBROUTINE trc_dtr
258#endif
259
260   !!======================================================================
261END MODULE trcdtr
Note: See TracBrowser for help on using the repository browser.