source: branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsms_medusa.F90 @ 8074

Last change on this file since 8074 was 8074, checked in by jpalmier, 3 years ago

JPALM — reverse MEDUSA cleaning and update MOCSY

File size: 3.9 KB
Line 
1MODULE trcsms_medusa
2   !!======================================================================
3   !!                         ***  MODULE trcsms_medusa  ***
4   !! TOP :   Main module of the MEDUSA tracers
5   !!======================================================================
6   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
7   !!              -   !  2008-08  (K. Popova) adaptation for MEDUSA
8   !!              -   !  2008-11  (A. Yool) continuing adaptation for MEDUSA
9   !!              -   !  2010-03  (A. Yool) updated for branch inclusion
10   !!----------------------------------------------------------------------
11#if defined key_medusa
12   !!----------------------------------------------------------------------
13   !!   'key_medusa'                                       bio tracers
14   !!----------------------------------------------------------------------
15   !! trc_sms_medusa   : MEDUSA_TRC model main routine
16   !!----------------------------------------------------------------------
17   USE par_trc         ! TOP parameters
18   USE oce_trc
19   USE trc
20   USE trcbio_medusa
21   USE trcopt_medusa
22   USE trcsed_medusa
23   USE trcavg_medusa
24
25
26   IMPLICIT NONE
27   PRIVATE
28
29   PUBLIC   trc_sms_medusa   ! called by trcsms.F90 module
30
31   !!----------------------------------------------------------------------
32   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
33   !! $Id$
34   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
35   !!----------------------------------------------------------------------
36
37CONTAINS
38
39   SUBROUTINE trc_sms_medusa( kt )
40      !!----------------------------------------------------------------------
41      !!                     ***  trc_sms_medusa  *** 
42      !!
43      !! ** Purpose :   main routine of MEDUSA_TRC model
44      !!
45      !! ** Method  : -
46      !!----------------------------------------------------------------------
47      INTEGER, INTENT(in) :: kt   ! ocean time-step index
48
49# if defined key_debug_medusa
50         IF(lwp) WRITE(numout,*) ' MEDUSA inside trc_sms_medusa'
51         CALL flush(numout)
52# endif
53
54      IF( kt == nittrc000 ) THEN
55       IF(lwp) WRITE(numout,*)
56       IF(lwp) WRITE(numout,*) ' trc_sms_medusa:  MEDUSA model'
57       IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
58      ENDIF
59
60      CALL trc_avg_medusa( kt ) ! rolling average module
61# if defined key_debug_medusa
62      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_avg_medusa'
63      CALL flush(numout)
64# endif
65     
66      CALL trc_opt_medusa( kt ) ! optical model
67# if defined key_debug_medusa
68      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_opt_medusa'
69      CALL flush(numout)
70# endif
71
72      !! AXY & JPALM (28/02/17): call dust before trc_bio_medusa (because of coupling)
73      CALL trc_sed_medusa_dust( kt ) ! dust submodel
74# if defined key_debug_medusa
75      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_sed_medusa_dust'
76      CALL flush(numout)
77# endif
78
79# if defined key_kill_medusa
80      !! MEDUSA skipped
81      IF(lwp) WRITE(numout,*) ' MEDUSA killed at kt =', kt
82      CALL flush(numout)
83# else
84      CALL trc_bio_medusa( kt ) ! biological model
85#  if defined key_debug_medusa
86      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_bio_medusa'
87      CALL flush(numout)
88#  endif
89     
90      CALL trc_sed_medusa( kt ) ! sedimentation model
91#  if defined key_debug_medusa
92      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_sed_medusa'
93      CALL flush(numout)
94#  endif
95# endif
96
97   END SUBROUTINE trc_sms_medusa
98   
99#else
100   !!----------------------------------------------------------------------
101   !!   Dummy module                                        No MEDUSA model
102   !!----------------------------------------------------------------------
103CONTAINS
104   SUBROUTINE trc_sms_medusa( kt )             ! Empty routine
105      INTEGER, INTENT( in ) ::   kt
106      WRITE(*,*) 'trc_sms_medusa: You should not have seen this print! error?', kt
107   END SUBROUTINE trc_sms_medusa
108#endif
109
110   !!======================================================================
111END MODULE trcsms_medusa
112
Note: See TracBrowser for help on using the repository browser.