source: branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcsms.F90 @ 6715

Last change on this file since 6715 was 6715, checked in by jpalmier, 4 years ago

JPALM — 16-06-2016 — MEDUSA branch update :

— pass co2 flux and dms_surf through restart for atm coupling.
— introduce CFC cycle for dynamic evolution comparison
— add Tim Graham Age tracer
— include MEDUSA Q10 modif
— svn-key removed
— still need debug stage

File size: 4.4 KB
Line 
1MODULE trcsms
2   !!======================================================================
3   !!                         ***  MODULE trcsms  ***
4   !! TOP :   Time loop of passive tracers sms
5   !!======================================================================
6   !! History :   1.0  !  2005-03 (O. Aumont, A. El Moussaoui) F90
7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture
8   !!----------------------------------------------------------------------
9#if defined key_top
10   !!----------------------------------------------------------------------
11   !!   'key_top'                                                TOP models
12   !!----------------------------------------------------------------------
13   !!   trc_sms        :  Time loop of passive tracers sms
14   !!----------------------------------------------------------------------
15   USE oce_trc            !
16   USE trc                !
17   USE trcsms_pisces      ! PISCES biogeo-model
18   USE trcsms_medusa      ! MEDUSA tracers
19   USE trcsms_idtra       ! Idealize Tracer
20   USE trcsms_cfc         ! CFC 11 & 12
21   USE trcsms_c14b        ! C14b tracer
22   USE trcsms_age         ! AGE tracer
23   USE trcsms_my_trc      ! MY_TRC  tracers
24   USE prtctl_trc         ! Print control for debbuging
25
26   IMPLICIT NONE
27   PRIVATE
28
29   PUBLIC   trc_sms    ! called in trcstp.F90
30
31   !!----------------------------------------------------------------------
32   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
33   !! $Id$
34   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
35   !!----------------------------------------------------------------------
36CONTAINS
37
38   SUBROUTINE trc_sms( kt )
39      !!---------------------------------------------------------------------
40      !!                     ***  ROUTINE trc_sms  ***
41      !!
42      !! ** Purpose :   Managment of the time loop of passive tracers sms
43      !!
44      !! ** Method  : -  call the main routine of of each defined tracer model
45      !! -------------------------------------------------------------------------------------
46      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index     
47      !!
48      INTEGER            ::  jn
49      CHARACTER (len=25) :: charout
50      !!---------------------------------------------------------------------
51      !
52      IF( nn_timing == 1 )   CALL timing_start('trc_sms')
53      !
54      IF( lk_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES
55      IF( lk_medusa  )   CALL trc_sms_medusa ( kt )    ! MEDUSA  tracers
56# if defined key_debug_medusa
57         IF(lwp) WRITE(numout,*) '--trcsms : MEDUSA OK --  next IDTRA -- '
58      CALL flush(numout)
59# endif
60      IF( lk_idtra   )   CALL trc_sms_idtra  ( kt )    ! radioactive decay of Id. tracer
61# if defined key_debug_medusa
62         IF(lwp) WRITE(numout,*) '--trcsms : IDTRA OK --  next CFC -- '
63      CALL flush(numout)
64# endif
65      IF( lk_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC
66# if defined key_debug_medusa
67         IF(lwp) WRITE(numout,*) '--trcsms : CFC OK --  next C14 -- '
68      CALL flush(numout)
69# endif
70      IF( lk_c14b    )   CALL trc_sms_c14b   ( kt )    ! surface fluxes of C14
71# if defined key_debug_medusa
72         IF(lwp) WRITE(numout,*) '--trcsms : C14 OK --  next C14 -- '
73      CALL flush(numout)
74# endif
75      IF( lk_age     )   CALL trc_sms_age    ( kt )    ! AGE tracer
76# if defined key_debug_medusa
77         IF(lwp) WRITE(numout,*) '--trcsms : Age OK --  Continue  -- '
78      CALL flush(numout)
79# endif
80      IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers
81
82      IF(ln_ctl) THEN      ! print mean trends (used for debugging)
83         WRITE(charout, FMT="('sms ')")
84         CALL prt_ctl_trc_info( charout )
85         CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm )
86      ENDIF
87      !
88      IF( nn_timing == 1 )   CALL timing_stop('trc_sms')
89      !
90   END SUBROUTINE trc_sms
91
92#else
93   !!======================================================================
94   !!  Dummy module :                                     No passive tracer
95   !!======================================================================
96CONTAINS
97   SUBROUTINE trc_sms( kt )                   ! Empty routine
98      INTEGER, INTENT( in ) ::   kt
99      WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt
100   END SUBROUTINE trc_sms
101#endif 
102
103   !!======================================================================
104END MODULE  trcsms
Note: See TracBrowser for help on using the repository browser.