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_lobster.F90 in branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER – NEMO

source: branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trcini_lobster.F90 @ 766

Last change on this file since 766 was 766, checked in by gm, 16 years ago

dev_001_GM - create 1 trcini_ module by trc model (CFC, LOBSTER, PISCES..) - never compiled

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 KB
Line 
1MODULE trcini_lobster
2   !!======================================================================
3   !!                         ***  MODULE trcini_lobster  ***
4   !! TOP :   initialisation of the LOBSTER biological model
5   !!======================================================================
6   !! History :    -   !  1999-09  (M. Levy) Original code
7   !!              -   !  2000-12  (0. Aumont, E. Kestenare) add sediment
8   !!             1.0  !  2004-03  (C. Ethe) Modularity
9   !!              -   !  2005-03  (O. Aumont, A. El Moussaoui) F90
10   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) from trcini.lobster1.h90
11   !!----------------------------------------------------------------------
12#if defined key_trc_lobster1
13   !!----------------------------------------------------------------------
14   !!   'key_trc_lobster1'                                    LOBSTER model
15   !!----------------------------------------------------------------------
16   !! trc_ini_lobster  : LOBSTER model initialisation
17   !!----------------------------------------------------------------------
18   USE par_trc         ! TOP parameters
19   USE trccfc          ! CFC sms trends
20
21   IMPLICIT NONE
22   PRIVATE
23
24   PUBLIC   trc_ini_lobster   ! called by trcini.F90 module
25
26#  include "domzgr_substitute.h90"
27#  include "passivetrc_substitute.h90"
28   !!----------------------------------------------------------------------
29   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
30   !! $Id:$
31   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
32   !!----------------------------------------------------------------------
33
34CONTAINS
35
36   SUBROUTINE trc_ini_lobster
37      !!----------------------------------------------------------------------
38      !!                    ***  ROUTINE trc_ini_lobster  ***
39      !! ** purpose :   specific initialisation for LOBSTER bio-model
40      !!----------------------------------------------------------------------
41      INTEGER  ::   ji, jj, jk, jn
42      REAL(wp) ::   zdm0(jpi,jpj,jpk), zrro(jpi,jpj), zfluo, zfluu
43      REAL(wp) ::   ztest, zfluo, zfluu
44      REAL(wp), DIMENSION(jpi,jpj)     ::   zrro
45      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdm0
46      !!----------------------------------------------------------------------
47
48      IF(lwp) WRITE(numout,*)
49      IF(lwp) WRITE(numout,*) ' trc_ini_lobster :   LOBSTER biochemical model initialisation'
50      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~'
51
52
53      ! initialization of fields for optical model
54      ! --------------------------------------------
55      xze (:,:)   = 5.e0
56      xpar(:,:,:) = 0.e0
57
58      ! initialization for passive tracer remineralisation-damping  array
59      ! -----------------------------------------------------------------
60
61      DO jn = 1, jptra
62         remdmp(:,jn) = tminr
63      END DO
64
65      IF(lwp) THEN
66         WRITE(numout,*) ' '
67         WRITE(numout,*) ' trcini: compute remineralisation-damping  '
68         WRITE(numout,*) '         arrays for tracers'
69      ENDIF
70
71      ! initialization of biological variables
72      ! ------------------------------------------
73
74      ! Calculate vertical distribution of newly formed biogenic poc
75      ! in the water column in the case of max. possible bottom depth
76      ! ------------------------------------------------------------
77
78      zdm0   = 0.e0
79      zrro = 1.e0
80      DO jk = jpkb,jpkm1
81         DO jj =1, jpj
82            DO ji =1, jpi
83               zfluo = ( fsdepw(ji,jj,jk  ) / fsdepw(ji,jj,jpkb) )**xhr 
84               zfluu = ( fsdepw(ji,jj,jk+1) / fsdepw(ji,jj,jpkb) )**xhr
85               IF( zfluo.GT.1. )   zfluo = 1.e0
86               zdm0(ji,jj,jk) = zfluo - zfluu
87               IF( jk <= jpkb-1 )   zdm0(ji,jj,jk) = 0.e0
88               zrro(ji,jj) = zrro(ji,jj) - zdm0(ji,jj,jk)
89            END DO
90         END DO
91      END DO
92
93      zdm0(:,:,jpk) = zrro(:,:)
94
95      ! Calculate vertical distribution of newly formed biogenic poc
96      ! in the water column with realistic topography (first "dry" layer
97      ! contains total fraction, which has passed to the upper layers)
98      ! ----------------------------------------------------------------------
99      dminl = 0.
100      dmin3 = zdm0
101      DO jk = 1, jpk
102         DO jj = 1, jpj
103            DO ji = 1, jpi
104               IF( tmask(ji,jj,jk) == 0. ) THEN
105                  dminl(ji,jj) = dminl(ji,jj) + dmin3(ji,jj,jk)
106                  dmin3(ji,jj,jk) = 0.e0
107               ENDIF
108            END DO
109         END DO
110      END DO
111
112      DO jj = 1, jpj
113         DO ji = 1, jpi
114            IF( tmask(ji,jj,1) == 0 )   dmin3(ji,jj,1) = 0.e0
115         END DO
116      END DO
117
118      ! Coastal mask
119      ! ------------   
120      cmask = 0.e0
121      DO ji = 2, jpi-1
122         DO jj = 2, jpj-1
123            if (tmask(ji,jj,1) == 1) then
124               ztest=tmask(ji+1,jj,1)*tmask(ji-1,jj,1)*tmask(ji,jj+1,1)*tmask(ji,jj-1,1)
125               IF (ztest == 0) cmask(ji,jj) = 1.
126            endif
127         END DO
128      END DO
129
130      cmask( 1 ,:) = cmask(jpi-1,:)
131      cmask(jpi,:) = cmask( 2   ,:)
132
133      !!gm BUG !!!!!   not valid in mpp and also not valid for north fold   !!!!!
134
135      ! Coastal surface
136      ! ---------------
137      areacot = 0.e0
138      DO ji = 2, jpi-1
139         DO jj = 2, jpj-1
140            areacot = areacot + e1t(ji,jj) * e2t(ji,jj) * cmask(ji,jj)
141         END DO
142      END DO
143      !
144   END SUBROUTINE trc_ini_lobster
145
146#else
147   !!----------------------------------------------------------------------
148   !!   Dummy module                                   No LOBSTER bio-model
149   !!----------------------------------------------------------------------
150CONTAINS
151   SUBROUTINE trc_ini_lobster             ! Empty routine
152   END SUBROUTINE trc_ini_lobster
153#endif
154
155   !!======================================================================
156END MODULE trcini_lobster
Note: See TracBrowser for help on using the repository browser.