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

source: trunk/NEMO/TOP_SRC/PISCES/trcini_pisces.F90 @ 1264

Last change on this file since 1264 was 1264, checked in by cetlod, 15 years ago

clean TOP model routines to avoid warning when compiling, see ticket:303

  • Property svn:keywords set to Id
File size: 6.1 KB
Line 
1MODULE trcini_pisces
2   !!======================================================================
3   !!                         ***  MODULE trcini_pisces  ***
4   !! TOP :   initialisation of the PISCES biochemical model
5   !!======================================================================
6   !! History :    -   !  1988-07  (E. Maier-Reiner) Original code
7   !!              -   !  1999-10  (O. Aumont, C. Le Quere)
8   !!              -   !  2002     (O. Aumont)  PISCES
9   !!             1.0  !  2005-03  (O. Aumont, A. El Moussaoui) F90
10   !!             2.0  !  2007-12  (C. Ethe, G. Madec) from trcini.pisces.h90
11   !!----------------------------------------------------------------------
12#if defined key_pisces
13   !!----------------------------------------------------------------------
14   !!   'key_pisces'                                       PISCES bio-model
15   !!----------------------------------------------------------------------
16   !! trc_ini_pisces   : PISCES biochemical model initialisation
17   !!----------------------------------------------------------------------
18   USE par_trc         ! TOP parameters
19   USE sms_pisces      ! Source Minus Sink variables
20   USE trc
21   USE oce_trc         ! ocean variables
22   USE p4zche 
23   USE lib_mpp
24
25   IMPLICIT NONE
26   PRIVATE
27
28   PUBLIC   trc_ini_pisces   ! called by trcini.F90 module
29
30   !! * Module variables
31   REAL(wp) :: &
32      sco2   =  2.312e-3         , &
33      alka0  =  2.423e-3         , &
34      oxyg0  =  177.6e-6         , &
35      po4    =  2.174e-6         , &
36      bioma0 =  1.000e-8         , &
37      silic1 =  91.65e-6         , &
38      no3    =  31.04e-6 * 7.6
39
40#  include "domzgr_substitute.h90"
41#  include "top_substitute.h90"
42   !!----------------------------------------------------------------------
43   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
44   !! $Id$
45   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
46   !!----------------------------------------------------------------------
47
48CONTAINS
49
50   SUBROUTINE trc_ini_pisces
51      !!----------------------------------------------------------------------
52      !!                   ***  ROUTINE trc_ini_pisces ***
53      !!
54      !! ** Purpose :   Initialisation of the PISCES biochemical model
55      !!----------------------------------------------------------------------
56      INTEGER ::   ji, jj, jk
57      REAL(wp) ::  caralk, bicarb, co3
58
59
60      !!----------------------------------------------------------------------
61
62
63      IF(lwp) WRITE(numout,*)
64      IF(lwp) WRITE(numout,*) ' trc_ini_pisces :   PISCES biochemical model initialisation'
65      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
66
67
68      !                                            ! Time-step
69      rfact   = rdttra(1) * float(ndttrc)          ! ---------
70      rfactr  = 1. / rfact
71      rfact2  = rfact / float(nrdttrc)
72      rfact2r = 1. / rfact2
73
74      IF(lwp) WRITE(numout,*) '    Tracer  time step    rfact  = ', rfact, ' rdt = ', rdt
75      IF(lwp) write(numout,*) '    Biology time step    rfact2 = ', rfact2
76
77
78
79      ! Set biological ratios
80      ! ---------------------
81      rno3   = (16.+2.) / 122.
82      po4r   =   1.e0   / 122.
83      o2nit  =  32.     / 122.
84      rdenit =  97.6    /  16.
85      o2ut   = 140.     / 122.
86
87      CALL p4z_che        ! initialize the chemical constants
88
89      ndayflxtr = 0      !  Initialize a counter for the computation of chemistry
90
91      ! Initialization of tracer concentration in case of  no restart
92      !--------------------------------------------------------------
93      IF( .NOT. lrsttr ) THEN 
94         
95         trn(:,:,:,jpdic) = sco2
96         trn(:,:,:,jpdoc) = bioma0
97         trn(:,:,:,jptal) = alka0
98         trn(:,:,:,jpoxy) = oxyg0
99         trn(:,:,:,jpcal) = bioma0
100         trn(:,:,:,jppo4) = po4 / po4r
101         trn(:,:,:,jppoc) = bioma0
102#  if ! defined key_kriest
103         trn(:,:,:,jpgoc) = bioma0
104         trn(:,:,:,jpbfe) = bioma0 * 5.e-6
105#  else
106         trn(:,:,:,jpnum) = bioma0 / ( 6. * xkr_massp )
107#  endif
108         trn(:,:,:,jpsil) = silic1
109         trn(:,:,:,jpbsi) = bioma0 * 0.15
110         trn(:,:,:,jpdsi) = bioma0 * 5.e-6
111         trn(:,:,:,jpphy) = bioma0
112         trn(:,:,:,jpdia) = bioma0
113         trn(:,:,:,jpzoo) = bioma0
114         trn(:,:,:,jpmes) = bioma0
115         trn(:,:,:,jpfer) = 0.6E-9
116         trn(:,:,:,jpsfe) = bioma0 * 5.e-6
117         trn(:,:,:,jpdfe) = bioma0 * 5.e-6
118         trn(:,:,:,jpnfe) = bioma0 * 5.e-6
119         trn(:,:,:,jpnch) = bioma0 * 12. / 55.
120         trn(:,:,:,jpdch) = bioma0 * 12. / 55.
121         trn(:,:,:,jpno3) = no3
122         trn(:,:,:,jpnh4) = bioma0
123
124         ! Initialization of chemical variables of the carbon cycle
125         ! --------------------------------------------------------
126         DO jk = 1, jpk
127            DO jj = 1, jpj
128               DO ji = 1, jpi
129                  caralk = trn(ji,jj,jk,jptal) - borat(ji,jj,jk) / (  1. + 1.E-8 / ( rtrn + akb3(ji,jj,jk) )  )
130                  co3    = ( caralk - trn(ji,jj,jk,jpdic) ) *        tmask(ji,jj,jk)   &
131                     &   +                  0.5e-3          * ( 1. - tmask(ji,jj,jk) )
132                  bicarb = ( 2. * trn(ji,jj,jk,jpdic) - caralk )
133                  hi(ji,jj,jk) = ( ak23(ji,jj,jk) * bicarb / co3 ) *        tmask(ji,jj,jk)   &
134                     &         +            1.e-9                  * ( 1. - tmask(ji,jj,jk) )
135               END DO
136            END DO
137         END DO
138         
139      ENDIF
140
141
142
143      ! initialize the half saturation constant for silicate
144      ! ----------------------------------------------------
145      xksi(:,:)    = 2.e-6
146      xksimax(:,:) = xksi(:,:)
147
148      IF(lwp) WRITE(numout,*) 'Initialization of PISCES tracers done'
149      IF(lwp) WRITE(numout,*) ' '
150
151      !
152   END SUBROUTINE trc_ini_pisces
153   
154#else
155   !!----------------------------------------------------------------------
156   !!   Dummy module                            No PISCES biochemical model
157   !!----------------------------------------------------------------------
158CONTAINS
159   SUBROUTINE trc_ini_pisces             ! Empty routine
160   END SUBROUTINE trc_ini_pisces
161#endif
162
163   !!======================================================================
164END MODULE trcini_pisces
Note: See TracBrowser for help on using the repository browser.