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.
trcsms_lobster.F90 in branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/LOBSTER – NEMO

source: branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcsms_lobster.F90 @ 2636

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

dynamic mem: #785 ; move ctl_stop & warn in lib_mpp to avoid a circular dependency + ctl_stop improvment

  • Property svn:keywords set to Id
File size: 3.5 KB
Line 
1MODULE trcsms_lobster
2   !!======================================================================
3   !!                         ***  MODULE trcsms_lobster  ***
4   !! TOP :   Time loop of LOBSTER model
5   !!======================================================================
6   !! History :   1.0  !            M. Levy
7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture
8   !!----------------------------------------------------------------------
9#if defined key_lobster
10   !!----------------------------------------------------------------------
11   !!   'key_lobster'                                       LOBSTER bio-model
12   !!----------------------------------------------------------------------
13   !!   trcsms_lobster        :  Time loop of passive tracers sms
14   !!----------------------------------------------------------------------
15   USE oce_trc          !
16   USE trc
17   USE trcbio
18   USE trcopt
19   USE trcsed
20   USE trcexp
21   USE trdmod_oce
22   USE trdmod_trc_oce
23   USE trdmod_trc
24   USE trdmld_trc
25   USE lib_mpp          ! MPP library
26
27   IMPLICIT NONE
28   PRIVATE
29
30   PUBLIC   trc_sms_lobster    ! called in trcsms.F90
31
32   !!----------------------------------------------------------------------
33   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
34   !! $Id$
35   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
36   !!----------------------------------------------------------------------
37CONTAINS
38
39   SUBROUTINE trc_sms_lobster( kt )
40      !!---------------------------------------------------------------------
41      !!                     ***  ROUTINE trc_sms_lobster  ***
42      !!
43      !! ** Purpose :  Managment of the call to Biological sources and sinks
44      !!               routines of LOBSTER bio-model
45      !!
46      !! ** Method  : - ???
47      !! --------------------------------------------------------------------
48      USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released
49      USE wrk_nemo, ONLY: ztrlob => wrk_3d_1   ! used for lobster sms trends
50      !!
51      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index     
52      INTEGER :: jn
53      !! --------------------------------------------------------------------
54
55      IF( wrk_in_use(3,1) ) THEN
56         CALL ctl_stop('trc_sms_lobster : requested workspace array unavailable')   ;   RETURN
57      ENDIF
58
59      CALL trc_opt( kt )      ! optical model
60      CALL trc_bio( kt )      ! biological model
61      CALL trc_sed( kt )      ! sedimentation model
62      CALL trc_exp( kt )      ! export
63
64      IF( l_trdtrc ) THEN
65          DO jn = jp_lob0, jp_lob1
66            ztrlob(:,:,:) = tra(:,:,:,jn)
67            CALL trd_mod_trc( ztrlob, jn, jptra_trd_sms, kt )   ! save trends
68          END DO
69      END IF
70
71      IF( lk_trdmld_trc )  CALL trd_mld_bio( kt )   ! trends: Mixed-layer
72
73      IF( wrk_not_released(3,1) )   CALL ctl_stop('trc_sms_lobster : failed to release workspace array.')
74      !
75   END SUBROUTINE trc_sms_lobster
76
77#else
78   !!======================================================================
79   !!  Dummy module :                                     No passive tracer
80   !!======================================================================
81CONTAINS
82   SUBROUTINE trc_sms_lobster( kt )                   ! Empty routine
83      INTEGER, INTENT( in ) ::   kt
84      WRITE(*,*) 'trc_sms_lobster: You should not have seen this print! error?', kt
85   END SUBROUTINE trc_sms_lobster
86#endif 
87
88   !!======================================================================
89END MODULE  trcsms_lobster
Note: See TracBrowser for help on using the repository browser.