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.F90 in trunk/NEMO/TOP_SRC – NEMO

source: trunk/NEMO/TOP_SRC/trcsms.F90 @ 650

Last change on this file since 650 was 433, checked in by opalod, 18 years ago

nemo_v1_update_044 : CT : update the passive tracers TOP component and the standard GYRE configuration

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.6 KB
RevLine 
[268]1MODULE trcsms
2   !!===========================================================================================
3   !!
4   !!                       *** MODULE trcsms ***
5   !!
6   !!  Time  loop of opa for passive tracer
7   !!
8   !!===========================================================================================
[340]9   !!  TOP 1.0,  LOCEAN-IPSL (2005)
10   !! $Header$
11   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
[274]12   !!----------------------------------------------------------------------
[335]13#if defined key_passivetrc   
14   !! * Modules used
15   !! ==============
16   USE oce_trc
17   USE trc
18   USE trcfreons
[433]19   USE prtctl_trc          ! Print control for debbuging
[268]20
[335]21   IMPLICIT NONE
22   PRIVATE
[268]23
24   !! * Accessibility
25   PUBLIC trc_sms
26
27CONTAINS
28
[335]29   SUBROUTINE trc_sms( kt )
30      !!===========================================================================================
31      !!
32      !!                       ROUTINE trcsms
33      !!                     *****************
34      !!
35      !!  PURPOSE :
36      !!  ---------
37      !!          time loop of opa for passive tracer
38      !!
39      !!   METHOD :
40      !!   -------
41      !!      compute the well/spring evolution
42      !!
43      !!   INPUT :
44      !!   -----
45      !!      argument
46      !!              ktask           : task identificator
47      !!              kt              : time step
48      !!      COMMON
49      !!            all the COMMON defined in opa
50      !!
51      !!
52      !!   OUTPUT :        : no
53      !!   ------
54      !!
55      !!   WORKSPACE :
56      !!   ---------
57      !!
58      !!   EXTERNAL :
59      !!   --------
60      !!      trcbio, trcsed, trcopt for NPZD or LOBSTER1 models
61      !!
62      !!      h3cprg for HAMOC3 and P3ZD models
63      !!
64      !!
65      !!   History:
66      !!   --------
67      !!      original  : 96-11
68      !!      additions : 99-07 (M. Levy)
69      !!                  04-00 (O. Aumont, M.A. Foujols) HAMOCC3 and P3ZD
70      !!                  12-00 (O. Aumont, E. Kestenare) add trcexp for instantaneous export
71      !!   05-03 (O. Aumont and A. El Moussaoui) F90
72      !! -------------------------------------------------------------------------------------
[268]73
[335]74      !! * Arguments
75      !! -----------
[268]76      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index     
77
[433]78      !! * Local variables
79      !! -----------------
80
81      CHARACTER (len=25) :: charout
82
[335]83      !! this ROUTINE is called only every ndttrc time step
84      !! --------------------------------------------------
[268]85
86      IF ( MOD(kt,ndttrc) /= 0) RETURN
87
[335]88      !! this first routines are parallelized on vertical slab
89      !! ------------------------------------------------------
[268]90
[335]91#if defined key_trc_lobster1
[268]92
[335]93      !! tracers: optical model
94      !! ----------------------
[268]95
[335]96      CALL trcopt( kt)
[268]97
[433]98      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
99         WRITE(charout, FMT="('OPT')")
100         CALL prt_ctl_trc_info(charout)
101         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
102      ENDIF
103
[335]104      !! tracers: biological model
105      !! -------------------------
[268]106
[335]107      CALL trcbio( kt)
[268]108
[433]109      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
110         WRITE(charout, FMT="('BIO')")
111         CALL prt_ctl_trc_info(charout)
112         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
113      ENDIF
114
[335]115      !! tracers: sedimentation model
116      !! ----------------------------
[268]117
[335]118      CALL trcsed(kt)
[433]119      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
120         WRITE(charout, FMT="('SED')")
121         CALL prt_ctl_trc_info(charout)
122         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
123      ENDIF
124 
[335]125      CALL trcexp(kt)
[268]126
[433]127      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
128         WRITE(charout, FMT="('EXP')")
129         CALL prt_ctl_trc_info(charout)
130         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
131      ENDIF
[268]132
133#elif defined key_trc_pisces
134
[335]135      !! p4zprg: main PROGRAM for PISCES
136      !! -------------------------------
137      CALL p4zprg(kt)
[268]138
[335]139      !! SMS to DO
[268]140
[335]141#elif defined key_cfc
[268]142
[335]143      !! CFC's code taken from K. Rodgers
[268]144
[335]145      !! This part is still experimental
146      !! -------------------------------
[268]147
[335]148      CALL trc_freons(kt)
[268]149
150#endif
151
152
153
[335]154   END SUBROUTINE trc_sms
[268]155
156#else
[335]157   !!======================================================================
158   !!  Empty module : No passive tracer
159   !!======================================================================
160CONTAINS
[268]161
[335]162   SUBROUTINE trc_sms( kt )
[268]163
[335]164      ! no passive tracers
[268]165      INTEGER, INTENT( in ) ::   kt
166      WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt
[335]167   END SUBROUTINE trc_sms
[268]168
169#endif
170
171
172END MODULE  trcsms
Note: See TracBrowser for help on using the repository browser.