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/NEMOGCM/NEMO/TOP_SRC/PISCES – NEMO

source: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90 @ 2528

Last change on this file since 2528 was 2528, checked in by rblod, 13 years ago

Update NEMOGCM from branch nemo_v3_3_beta

  • Property svn:keywords set to Id
File size: 5.9 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 "top_substitute.h90"
41   !!----------------------------------------------------------------------
42   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
43   !! $Id$
44   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
45   !!----------------------------------------------------------------------
46
47CONTAINS
48
49   SUBROUTINE trc_ini_pisces
50      !!----------------------------------------------------------------------
51      !!                   ***  ROUTINE trc_ini_pisces ***
52      !!
53      !! ** Purpose :   Initialisation of the PISCES biochemical model
54      !!----------------------------------------------------------------------
55
56
57      !  Control consitency
58      CALL trc_ctl_pisces
59
60
61      IF(lwp) WRITE(numout,*)
62      IF(lwp) WRITE(numout,*) ' trc_ini_pisces :   PISCES biochemical model initialisation'
63      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
64
65      !                                            ! Time-step
66      rfact   = rdttrc(1)                          ! ---------
67      rfactr  = 1. / rfact
68      rfact2  = rfact / FLOAT( nrdttrc )
69      rfact2r = 1. / rfact2
70
71      IF(lwp) WRITE(numout,*) '    Passive Tracer  time step    rfact  = ', rfact, ' rdt = ', rdttra(1)
72      IF(lwp) write(numout,*) '    PISCES  Biology time step    rfact2 = ', rfact2
73
74
75
76      ! Set biological ratios
77      ! ---------------------
78      rno3   = (16.+2.) / 122.
79      po4r   =   1.e0   / 122.
80      o2nit  =  32.     / 122.
81      rdenit =  97.6    /  16.
82      o2ut   = 140.     / 122.
83
84      CALL p4z_che        ! initialize the chemical constants
85
86      ! Initialization of tracer concentration in case of  no restart
87      !--------------------------------------------------------------
88      IF( .NOT. ln_rsttr ) THEN 
89         
90         trn(:,:,:,jpdic) = sco2
91         trn(:,:,:,jpdoc) = bioma0
92         trn(:,:,:,jptal) = alka0
93         trn(:,:,:,jpoxy) = oxyg0
94         trn(:,:,:,jpcal) = bioma0
95         trn(:,:,:,jppo4) = po4 / po4r
96         trn(:,:,:,jppoc) = bioma0
97#  if ! defined key_kriest
98         trn(:,:,:,jpgoc) = bioma0
99         trn(:,:,:,jpbfe) = bioma0 * 5.e-6
100#  else
101         trn(:,:,:,jpnum) = bioma0 / ( 6. * xkr_massp )
102#  endif
103         trn(:,:,:,jpsil) = silic1
104         trn(:,:,:,jpbsi) = bioma0 * 0.15
105         trn(:,:,:,jpdsi) = bioma0 * 5.e-6
106         trn(:,:,:,jpphy) = bioma0
107         trn(:,:,:,jpdia) = bioma0
108         trn(:,:,:,jpzoo) = bioma0
109         trn(:,:,:,jpmes) = bioma0
110         trn(:,:,:,jpfer) = 0.6E-9
111         trn(:,:,:,jpsfe) = bioma0 * 5.e-6
112         trn(:,:,:,jpdfe) = bioma0 * 5.e-6
113         trn(:,:,:,jpnfe) = bioma0 * 5.e-6
114         trn(:,:,:,jpnch) = bioma0 * 12. / 55.
115         trn(:,:,:,jpdch) = bioma0 * 12. / 55.
116         trn(:,:,:,jpno3) = no3
117         trn(:,:,:,jpnh4) = bioma0
118
119         ! initialize the half saturation constant for silicate
120         ! ----------------------------------------------------
121         xksi(:,:)    = 2.e-6
122         xksimax(:,:) = xksi(:,:)
123
124      ENDIF
125
126      IF(lwp) WRITE(numout,*) 'Initialization of PISCES tracers done'
127      IF(lwp) WRITE(numout,*) ' '
128
129      !
130   END SUBROUTINE trc_ini_pisces
131 
132   SUBROUTINE trc_ctl_pisces
133      !!----------------------------------------------------------------------
134      !!                     ***  ROUTINE trc_ctl_pisces  ***
135      !!
136      !! ** Purpose :   control the cpp options, namelist and files
137      !!----------------------------------------------------------------------
138
139      IF(lwp) WRITE(numout,*)
140      IF(lwp) WRITE(numout,*) ' use PISCES biological model '
141
142   ! Check number of tracers
143   ! -----------------------
144#if  defined key_kriest
145      IF( jp_pisces /= 23) CALL ctl_stop( ' PISCES must have 23 passive tracers. Change jp_pisces in par_pisces.F90' )
146#else
147      IF( jp_pisces /= 24) CALL ctl_stop( ' PISCES must have 24 passive tracers. Change jp_pisces in par_pisces.F90' )
148#endif
149
150   END SUBROUTINE trc_ctl_pisces
151 
152#else
153   !!----------------------------------------------------------------------
154   !!   Dummy module                            No PISCES biochemical model
155   !!----------------------------------------------------------------------
156CONTAINS
157   SUBROUTINE trc_ini_pisces             ! Empty routine
158   END SUBROUTINE trc_ini_pisces
159#endif
160
161   !!======================================================================
162END MODULE trcini_pisces
Note: See TracBrowser for help on using the repository browser.