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

source: branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90 @ 2690

Last change on this file since 2690 was 2690, checked in by gm, 13 years ago

dynamic mem: #785 ; homogeneization of the coding style associated with dyn allocation

  • Property svn:keywords set to Id
File size: 6.7 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   !!*  Time variables
20   INTEGER  ::   nrdttrc           !: ???
21   INTEGER  ::   ndayflxtr         !: ???
22   REAL(wp) ::   rfact , rfactr    !: ???
23   REAL(wp) ::   rfact2, rfact2r   !: ???
24   REAL(wp) ::   xstep             !: Time step duration for biology
25
26   !!*  Biological parameters
27   REAL(wp) ::   part              !: ???
28   REAL(wp) ::   rno3              !: ???
29   REAL(wp) ::   o2ut              !: ???
30   REAL(wp) ::   po4r              !: ???
31   REAL(wp) ::   rdenit            !: ???
32   REAL(wp) ::   o2nit             !: ???
33   REAL(wp) ::   wsbio, wsbio2     !: ???
34   REAL(wp) ::   xkmort            !: ???
35   REAL(wp) ::   ferat3            !: ???
36
37   !!* Damping
38   LOGICAL  ::   ln_pisdmp         !: relaxation or not of nutrients to a mean value
39   LOGICAL  ::   ln_pisclo         !: Restoring or not of nutrients to initial value
40                                   !: on close seas
41
42   !!*  Biological fluxes for light
43   INTEGER , ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::  neln       !: number of T-levels + 1 in the euphotic layer
44   REAL(wp), ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::  heup       !: euphotic layer depth
45
46   !!*  Biological fluxes for primary production
47   REAL(wp), ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::   xksi       !: ???
48   REAL(wp), ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::   xksimax    !: ???
49   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanono3   !: ???
50   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatno3   !: ???
51   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanonh4   !: ???
52   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatnh4   !: ???
53   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimphy    !: ???
54   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdia    !: ???
55   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concdfe    !: ???
56   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concnfe    !: ???
57
58   !!*  SMS for the organic matter
59   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xfracal    !: ??
60   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac    !: ??
61   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xlimbac    !: ??
62   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xdiss      !: ??
63#if defined key_diatrc
64   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodcal    !: Calcite production
65   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   grazing    !: Total zooplankton grazing
66#endif
67
68   !!* Variable for chemistry of the CO2 cycle
69   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   akb3       !: ???
70   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak13       !: ???
71   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak23       !: ???
72   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   aksp       !: ???
73   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   akw3       !: ???
74   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   borat      !: ???
75   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   hi         !: ???
76
77   !!* Array used to indicate negative tracer values
78   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xnegtr     !: ???
79
80#if defined key_kriest
81   !!*  Kriest parameter for aggregation
82   REAL(wp) ::   xkr_eta                            !: ???
83   REAL(wp) ::   xkr_zeta                           !: ???
84   REAL(wp) ::   xkr_massp                          !: ???
85   REAL(wp) ::   xkr_mass_min, xkr_mass_max         !: ???
86#endif
87
88   !!----------------------------------------------------------------------
89   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
90   !! $Id$
91   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
92   !!----------------------------------------------------------------------
93CONTAINS
94
95   INTEGER FUNCTION sms_pisces_alloc()
96      !!----------------------------------------------------------------------
97      !!        *** ROUTINE sms_pisces_alloc ***
98      !!----------------------------------------------------------------------
99      USE lib_mpp , ONLY: ctl_warn
100      INTEGER ::   ierr(5)        ! Local variables
101      !!----------------------------------------------------------------------
102      ierr(:) = 0
103      !
104      !*  Biological fluxes for light
105      ALLOCATE( neln(jpi,jpj), heup(jpi,jpj),                           STAT=ierr(1) )
106      !
107      !*  Biological fluxes for primary production
108      ALLOCATE( xksimax(jpi,jpj)     , xksi(jpi,jpj)        ,               &
109         &      xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk),               &
110         &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),               &
111         &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),               &
112         &      concdfe (jpi,jpj,jpk), concnfe (jpi,jpj,jpk),           STAT=ierr(2) ) 
113         !
114      !*  SMS for the organic matter
115      ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac (jpi,jpj,jpk),               &
116#if defined key_diatrc
117         &      prodcal(jpi,jpj,jpk) , grazing(jpi,jpj,jpk) ,               &
118#endif 
119         &      xlimbac (jpi,jpj,jpk), xdiss(jpi,jpj,jpk)   ,           STAT=ierr(3) ) 
120         !
121      !* Variable for chemistry of the CO2 cycle
122      ALLOCATE( akb3(jpi,jpj,jpk), ak13(jpi,jpj,jpk) ,                      &
123         &      ak23(jpi,jpj,jpk), aksp(jpi,jpj,jpk) ,                      &
124         &      akw3(jpi,jpj,jpk), borat(jpi,jpj,jpk), hi(jpi,jpj,jpk), STAT=ierr(4) )
125         !
126      !* Array used to indicate negative tracer values 
127      ALLOCATE( xnegtr(jpi,jpj,jpk),                                    STAT=ierr(5) )
128      !
129      sms_pisces_alloc = MAXVAL( ierr )
130      !
131      IF( sms_pisces_alloc /= 0 )   CALL ctl_warn('sms_pisces_alloc: failed to allocate arrays') 
132      !
133   END FUNCTION sms_pisces_alloc
134
135#else
136   !!----------------------------------------------------------------------   
137   !!  Empty module :                                     NO PISCES model
138   !!----------------------------------------------------------------------
139#endif
140   
141   !!======================================================================   
142END MODULE sms_pisces   
Note: See TracBrowser for help on using the repository browser.