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.
trcini.pisces.h in trunk/NEMO/TOP_SRC/SMS – NEMO

source: trunk/NEMO/TOP_SRC/SMS/trcini.pisces.h @ 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:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 10.1 KB
Line 
1
2CCC $Header$ 
3CCC  TOP 1.0 , LOCEAN-IPSL (2005) 
4C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
5C ---------------------------------------------------------------------------
6CCC-----------------------------------------------------------------
7CCC
8CCC                     ROUTINE trcini.pisces.h
9CCC                     ************************
10CCC
11CCC  PURPOSE :
12CCC  ---------
13CCC     Initialisation of PISCES biological and chemical variables
14CCC
15CC   INPUT :
16CC   -----
17CC      common
18CC              all the common defined in opa
19CC
20CC
21CC   OUTPUT :                   : no
22CC   ------
23CC
24CC   EXTERNAL :
25CC   ----------
26CC         p4zche
27CC
28CC   MODIFICATIONS:
29CC   --------------
30CC      original  : 1988-07  E. MAIER-REIMER      MPI HAMBURG
31CC      additions : 1999-10  O. Aumont and C. Le Quere
32CC      additions : 2002     O. Aumont (PISCES)
33CC
34CCC---------------------------------------------------------------------
35CC local declarations
36CC ==================
37      INTEGER ichl,iband,mo
38      INTEGER jpmois,jpan
39      PARAMETER (jpan=1, jpmois=12)
40
41      REAL xtoto,expide,denitide
42      REAL ndepo(jpi,jpj),river(jpi,jpj)
43      REAL riverdoc(jpi,jpj)
44      CHARACTER*34 clname
45
46      INTEGER ipi,ipj,ipk,istep(jpmois),itime,istep0(jpan)
47      REAL zsecond, zlon(jpi,jpj),zlat(jpi,jpj),zlev(jpk),zdate0
48      INTEGER numriv,numdust,numbath,numdep
49C
50C 1. initialization
51C -----------------
52C
53C computation of the record length for direct access FILE
54C this length depend of 512 for the t3d machine
55C
56      rfact = rdttra(1) * float(ndttrc)
57      rfactr = 1./rfact
58      WRITE(numout,*) ' Tracer time step=',rfact,' rdt=',rdt
59      rfact2= rfact / float(nrdttrc)
60      rfact2r = 1./rfact2
61      write(numout,*) ' Biology time step=',rfact2
62C
63C    INITIALISE DUST INPUT FROM ATMOSPHERE
64C    -------------------------------------
65C
66       IF (bdustfer) THEN
67         clname='dust.orca.nc'
68       CALL flinopen(clname,mig(1),nlci,mjg(1),nlcj,.false.,ipi,ipj,0
69     $      ,zlon,zlat,zlev,itime,istep,zdate0,zsecond,numdust)
70       CALL flinget(numdust,'dust',jpidta,jpjdta,0,jpmois,1,
71     $        12,mig(1),nlci,mjg(1),nlcj,dustmo(1:nlci,1:nlcj,12) )
72       CALL flinclo(numdust)
73       ELSE
74       dustmo(:,:,:)=0.
75       ENDIF
76C
77C    INITIALISE THE NUTRIENT INPUT BY RIVERS
78C    ---------------------------------------
79C
80       IF (briver) THEN
81        clname='river.orca.nc'
82       CALL flinopen(clname,mig(1),nlci,mjg(1),nlcj,.false.,ipi,ipj,0
83     $      ,zlon,zlat,zlev,itime,istep0,zdate0,zsecond,numriv)
84       CALL flinget(numriv,'riverdic',jpidta,jpjdta,0,jpan,1,
85     $        1,mig(1),nlci,mjg(1),nlcj,river(1:nlci,1:nlcj) )
86       CALL flinget(numriv,'riverdoc',jpidta,jpjdta,0,jpan,1,
87     $        1,mig(1),nlci,mjg(1),nlcj,riverdoc(1:nlci,1:nlcj) )
88       CALL flinclo(numriv)
89       ELSE
90       river(:,:)=0.
91       riverdoc(:,:)=0.
92       endif
93C
94C    INITIALISE THE N INPUT BY DUST
95C    ---------------------------------------
96C
97       IF (bndepo) THEN
98        clname='ndeposition.orca.nc'
99       CALL flinopen(clname,mig(1),nlci,mjg(1),nlcj,.false.,ipi,ipj,0
100     $      ,zlon,zlat,zlev,itime,istep0,zdate0,zsecond,numdep)
101       CALL flinget(numdep,'ndep',jpidta,jpjdta,0,jpan,1,
102     $        1,mig(1),nlci,mjg(1),nlcj,ndepo(1:nlci,1:nlcj) )
103       CALL flinclo(numdep)
104       ELSE
105       ndepo(:,:)=0.
106       ENDIF
107C
108C    Computation of the coastal mask.
109C    Computation of an island mask to enhance coastal supply
110C    of iron
111C    -------------------------------------------------------
112C
113       IF (bsedinput) THEN
114        clname='bathy.orca.nc'
115       CALL flinopen(clname,mig(1),nlci,mjg(1),nlcj,.false.,ipi,ipj,ipk
116     $      ,zlon,zlat,zlev,itime,istep0,zdate0,zsecond,numbath)
117       CALL flinget(numbath,'bathy',jpidta,jpjdta,jpk,jpan,1,
118     $        1,mig(1),nlci,mjg(1),nlcj,cmask(1:nlci,1:nlcj,1:jpk) )
119       CALL flinclo(numbath)
120C
121       DO jk=1,jpk
122         DO ji=1,jpi
123           DO jj=1,jpj
124           expide=min(8.,(fsdept(ji,jj,jk)/500.)**(-1.5))
125           denitide=-0.9543+0.7662*log(expide)-0.235*log(expide)**2
126           cmask(ji,jj,jk)=cmask(ji,jj,jk)*exp(denitide)/0.6858
127           END DO
128         END DO
129       END DO
130       ELSE
131       cmask(:,:,:)=0.
132       ENDIF
133C
134C     Computation of the total atmospheric supply of Si
135C     -------------------------------------------------
136C
137       sumdepsi=0.
138       DO mo=1,12
139         DO jj=2,jpjm1
140           DO ji=2,jpim1
141           sumdepsi=sumdepsi+dustmo(ji,jj,mo)/(12.*rmoss)*8.8
142     &       *0.075/28.1*e1t(ji,jj)*e2t(ji,jj)*tmask(ji,jj,1)
143           END DO
144         END DO
145       END DO
146C
147C    COMPUTATION OF THE N/P RELEASE DUE TO COASTAL RIVERS
148C    COMPUTATION OF THE Si RELEASE DUE TO COASTAL RIVERS
149C    ---------------------------------------------------
150C
151       DO jj=1,jpj
152         DO ji=1,jpi
153       cotdep(ji,jj,1)=river(ji,jj)*1E9/(12.*raass
154     &   *e1t(ji,jj)*e2t(ji,jj)*fse3t(ji,jj,1))*tmask(ji,jj,1)
155       po4dep(ji,jj,1)=(river(ji,jj)+riverdoc(ji,jj))*1E9
156     &   /(31.6*raass*e1t(ji,jj)*e2t(ji,jj)*fse3t(ji,jj,1))
157     &   *tmask(ji,jj,1)
158       nitdep(ji,jj,1)=7.6*ndepo(ji,jj)*tmask(ji,jj,1)/(14E6*raass
159     &   *fse3t(ji,jj,1))
160         END DO
161       END DO
162
163      rivpo4input=0.
164      rivalkinput=0.
165      rivnitinput=0.
166       DO jj=2,jpjm1
167         DO ji=2,jpim1
168         rivpo4input=rivpo4input+po4dep(ji,jj,1)*(e1t(ji,jj)*e2t(ji,jj)
169     &     *fse3t(ji,jj,1))*tmask(ji,jj,1)*raass
170         rivalkinput=rivalkinput+cotdep(ji,jj,1)*(e1t(ji,jj)*e2t(ji,jj)
171     &     *fse3t(ji,jj,1))*tmask(ji,jj,1)*raass
172         rivnitinput=rivnitinput+nitdep(ji,jj,1)*(e1t(ji,jj)*e2t(ji,jj)
173     &     *fse3t(ji,jj,1))*tmask(ji,jj,1)*raass
174         END DO
175       END DO
176C
177C    Coastal supply of iron
178C    ----------------------
179C
180      DO jk=1,jpkm1
181        DO jj=1,jpj
182          DO ji=1,jpi
183          ironsed(ji,jj,jk)=sedfeinput*cmask(ji,jj,jk)
184     &      /(fse3t(ji,jj,jk)*rjjss)
185          END DO
186        END DO
187      END DO
188C
189CC----------------------------------------------------------------------
190CC
191CC Initialize biological variables
192CC
193CC----------------------------------------------------------------------
194C
195      spocri = 0.003
196      jkopt = 14
197C
198C Set biological ratios
199C ---------------------
200C
201      rno3   = (16.+2.)/122.
202      po4r   = 1./122.
203      o2ut   = 172./122.
204      o2nit  = 32./122.
205      rdenit = 97.6/16.
206      o2ut   = 140./122.
207C
208CC----------------------------------------------------------------------
209CC
210CC Initialize chemical variables
211CC
212CC----------------------------------------------------------------------
213C
214C set pre-industrial atmospheric [co2] (ppm) and o2/n2 ratio
215C ----------------------------------------------------------
216C
217      atcox = 0.20946
218C
219C Set lower/upper limits for temperature and salinity
220C ---------------------------------------------------
221C
222      salchl = 1./1.80655
223      calcon = 1.03E-2
224C
225C Set coefficients for apparent solubility equilibrium
226C   of calcite (Ingle, 1800, eq. 6)
227C ----------------------------------------------------
228C
229      akcc1 = -34.452
230      akcc2 = -39.866
231      akcc3 = 110.21
232      akcc4 = -7.5752E-6
233C
234C
235C Set coefficients for seawater pressure correction
236C -------------------------------------------------
237C
238      devk1  = 24.2
239      devk2  = 16.4
240      devkb  = 27.5
241      devk1t = 0.085
242      devk2t = 0.04
243      devkbt = 0.095
244C
245      devkst = 0.23
246      devks  = 35.4
247C
248C Set universal gas constants
249C ---------------------------
250C
251      rgas = 83.143
252      oxyco = 1./22.4144
253C
254C Set boron constants
255C -------------------
256C
257      bor1 = 0.00023
258      bor2 = 1./10.82
259C
260C Set volumetric solubility constants for co2 in ml/l (Weiss, 1974)
261C -----------------------------------------------------------------
262C
263      c00 = -58.0931
264      c01 = 90.5069
265      c02 = 22.2940
266      c03 = 0.027766
267      c04 = -0.025888
268      c05 = 0.0050578
269C
270C Set coeff. for 1. dissoc. of carbonic acid (Edmond and Gieskes, 1970)
271C ---------------------------------------------------------------------
272C
273      c10 = -2307.1266
274      c11 = 2.83655
275      c12 = -1.5529413
276      c13 = -4.0484
277      c14 = -0.20760841
278      c15 = 0.08468345
279      c16 = -0.00654208
280      c17 = -0.001005
281C
282C Set coeff. for 2. dissoc. of carbonic acid (Edmond and Gieskes, 1970)
283C ---------------------------------------------------------------------
284C
285      c20 = -3351.6106
286      c21 = -9.226508
287      c22 = -0.2005743
288      c23 = -23.9722
289      c24 = -0.106901773
290      c25 = 0.1130822
291      c26 = -0.00846934
292      c27 = -0.001005
293C
294C Set coeff. for 1. dissoc. of boric acid (Edmond and Gieskes, 1970)
295C ------------------------------------------------------------------
296C
297      cb0  = -8966.90
298      cb1  = -2890.53
299      cb2  = -77.942
300      cb3  = 1.728
301      cb4  = -0.0996
302      cb5  = 148.0248
303      cb6  = 137.1942
304      cb7  = 1.62142
305      cb8  = -24.4344
306      cb9  = -25.085
307      cb10 = -0.2474
308      cb11 = 0.053105
309C
310C Set coeff. for dissoc. of water (Dickson and Riley, 1979, 
311C   eq. 7, coefficient cw2 corrected from 0.9415 to 0.09415 
312C   after pers. commun. to B. Bacastow, 1988)
313C ---------------------------------------------------------
314C
315      cw0 = -13847.26
316      cw1 = 148.9652
317      cw2 = -23.6521
318      cw3 = 118.67
319      cw4 = -5.977
320      cw5 = 1.0495
321      cw6 = -0.01615
322C
323C Set volumetric solubility constants for o2 in ml/l (Weiss, 1970)
324C ----------------------------------------------------------------
325C
326      ox0 = -58.3877
327      ox1 = 85.8079
328      ox2 = 23.8439
329      ox3 = -0.034892
330      ox4 = 0.015568
331      ox5 = -0.0019387
332C
333C  FROM THE NEW BIOOPTIC MODEL PROPOSED JM ANDRE, WE READ HERE
334C  A PRECOMPUTED ARRAY CORRESPONDING TO THE ATTENUATION COEFFICIENT
335C
336         open(49,file='kRGB61.txt',form='formatted')
337         do ichl=1,61
338           READ(49,*) xtoto,(xkrgb(iband,ichl),iband = 1,3)
339         end do
340         close(49)
341C     
342#if defined key_off_degrad
343C
344C Read volume for degraded regions (DEGINIT)
345C ------------------------------------------
346C
347#    if defined key_vpp
348      CALL READ3S(902,facvol,jpi,jpj,jpk)
349#    else
350      READ (902) facvol
351#    endif
352#endif
353C
354C
355C  Call p4zche to initialize the chemical constants
356------------------------------------------------
357C
358      CALL p4zche
359C
360      WRITE(numout,*) ' Initialisation of PISCES done'
Note: See TracBrowser for help on using the repository browser.