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

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

CL + CE : NEMO TRC_SRC start

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