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.
sms_pisces.F90 in branches/2011/dev_r2787_PISCES_improvment/NEMOGCM/NEMO/TOP_SRC/PISCES – NEMO

source: branches/2011/dev_r2787_PISCES_improvment/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90 @ 2823

Last change on this file since 2823 was 2823, checked in by cetlod, 13 years ago

Add new parameterisation in PISCES, see ticket #854

  • Property svn:keywords set to Id
File size: 7.5 KB
Line 
1MODULE sms_pisces   
2   !!----------------------------------------------------------------------
3   !!                     ***  sms_pisces.F90  *** 
4   !! TOP :   PISCES Source Minus Sink variables
5   !!----------------------------------------------------------------------
6   !! History :   1.0  !  2000-02 (O. Aumont) original code
7   !!             3.2  !  2009-04 (C. Ethe & NEMO team) style
8   !!----------------------------------------------------------------------
9#if defined key_pisces
10   !!----------------------------------------------------------------------
11   !!   'key_pisces'                                         PISCES model
12   !!----------------------------------------------------------------------
13   USE par_oce
14   USE par_trc
15
16   IMPLICIT NONE
17   PUBLIC
18
19   INTEGER ::   numnatp
20
21   !!*  Time variables
22   INTEGER  ::   nrdttrc           !: ???
23   INTEGER  ::   ndayflxtr         !: ???
24   REAL(wp) ::   rfact , rfactr    !: ???
25   REAL(wp) ::   rfact2, rfact2r   !: ???
26   REAL(wp) ::   xstep             !: Time step duration for biology
27
28   !!*  Biological parameters
29   REAL(wp) ::   rno3              !: ???
30   REAL(wp) ::   o2ut              !: ???
31   REAL(wp) ::   po4r              !: ???
32   REAL(wp) ::   rdenit            !: ???
33   REAL(wp) ::   rdenita           !: ???
34   REAL(wp) ::   o2nit             !: ???
35   REAL(wp) ::   wsbio, wsbio2     !: ???
36   REAL(wp) ::   xkmort            !: ???
37   REAL(wp) ::   ferat3            !: ???
38
39   !!* Damping
40   LOGICAL  ::   ln_pisdmp         !: relaxation or not of nutrients to a mean value
41   LOGICAL  ::   ln_pisclo         !: Restoring or not of nutrients to initial value
42                                   !: on close seas
43
44   !!*  Biological fluxes for light
45   INTEGER , ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::  neln       !: number of T-levels + 1 in the euphotic layer
46   REAL(wp), ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::  heup       !: euphotic layer depth
47
48   !!*  Biological fluxes for primary production
49   REAL(wp), ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::   xksi       !: ???
50   REAL(wp), ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::   xksimax    !: ???
51   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanono3   !: ???
52   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatno3   !: ???
53   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanonh4   !: ???
54   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatnh4   !: ???
55   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimphy    !: ???
56   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdia    !: ???
57   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concdfe    !: ???
58   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concnfe    !: ???
59   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimnfe    !: ???
60   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdfe    !: ???
61   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimsi     !: ???
62
63
64   !!*  SMS for the organic matter
65   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xfracal    !: ??
66   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac    !: ??
67   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xlimbac    !: ??
68   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xdiss      !: ??
69#if defined key_diatrc
70    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodcal    !: Calcite production
71    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   grazing    !: Total zooplankton grazing
72#endif
73
74   !!* Variable for chemistry of the CO2 cycle
75   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   akb3       !: ???
76   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak13       !: ???
77   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak23       !: ???
78   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   aksp       !: ???
79   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   akw3       !: ???
80   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   borat      !: ???
81   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   hi         !: ???
82   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   excess     !: ???
83
84   !!* Temperature dependancy of SMS terms
85   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tgfunc    !: Temp. dependancy of various biological rates
86   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tgfunc2   !: Temp. dependancy of mesozooplankton rates
87
88   !!* Array used to indicate negative tracer values
89   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xnegtr     !: ???
90
91#if defined key_kriest
92   !!*  Kriest parameter for aggregation
93   REAL(wp) ::   xkr_eta                            !: ???
94   REAL(wp) ::   xkr_zeta                           !: ???
95   REAL(wp) ::   xkr_massp                          !: ???
96   REAL(wp) ::   xkr_mass_min, xkr_mass_max         !: ???
97#endif
98
99   !!----------------------------------------------------------------------
100   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
101   !! $Id$
102   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
103   !!----------------------------------------------------------------------
104CONTAINS
105
106   INTEGER FUNCTION sms_pisces_alloc()
107      !!----------------------------------------------------------------------
108      !!        *** ROUTINE sms_pisces_alloc ***
109      !!----------------------------------------------------------------------
110      USE lib_mpp , ONLY: ctl_warn
111      INTEGER ::   ierr(6)        ! Local variables
112      !!----------------------------------------------------------------------
113      ierr(:) = 0
114      !*  Biological fluxes for light
115      ALLOCATE( neln(jpi,jpj), heup(jpi,jpj),                   STAT=ierr(1) )
116      !
117      !*  Biological fluxes for primary production
118      ALLOCATE( xksimax(jpi,jpj)     , xksi(jpi,jpj)        ,       &
119         &      xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk),       &
120         &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),       &
121         &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),       &
122         &      xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk),       &
123         &      xlimsi  (jpi,jpj,jpk), concdfe (jpi,jpj,jpk),       &
124         &      concnfe (jpi,jpj,jpk),                          STAT=ierr(2) ) 
125         !
126       !*  SMS for the organic matter
127      ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac (jpi,jpj,jpk),               &
128#if defined key_diatrc
129         &      prodcal(jpi,jpj,jpk) , grazing(jpi,jpj,jpk) ,               &
130#endif 
131         &      xlimbac (jpi,jpj,jpk), xdiss(jpi,jpj,jpk)   ,   STAT=ierr(3) ) 
132
133      !* Variable for chemistry of the CO2 cycle
134      ALLOCATE( akb3(jpi,jpj,jpk)    , ak13  (jpi,jpj,jpk) ,       &
135         &      ak23(jpi,jpj,jpk)    , aksp  (jpi,jpj,jpk) ,       &
136         &      akw3(jpi,jpj,jpk)    , borat (jpi,jpj,jpk) ,       &
137         &      hi  (jpi,jpj,jpk)    , excess(jpi,jpj,jpk) ,   STAT=ierr(4) )
138         !
139      !* Temperature dependancy of SMS terms
140      ALLOCATE( tgfunc(jpi,jpj,jpk)  , tgfunc2(jpi,jpj,jpk) ,   STAT=ierr(5) )
141         !
142      !* Array used to indicate negative tracer values 
143      ALLOCATE( xnegtr(jpi,jpj,jpk)  ,                          STAT=ierr(6) )
144      !
145      sms_pisces_alloc = MAXVAL( ierr )
146      !
147      IF( sms_pisces_alloc /= 0 )   CALL ctl_warn('sms_pisces_alloc: failed to allocate arrays') 
148      !
149   END FUNCTION sms_pisces_alloc
150
151#else
152   !!----------------------------------------------------------------------   
153   !!  Empty module :                                     NO PISCES model
154   !!----------------------------------------------------------------------
155#endif
156   
157   !!======================================================================   
158END MODULE sms_pisces   
Note: See TracBrowser for help on using the repository browser.