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

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

JPALM — 11-04-2017 — MEDUSA spring tidy-up refreshning session

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
62# if defined key_debug_medusa
63      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_avg_medusa'
64      CALL flush(numout)
65# endif
66     
67      CALL trc_opt_medusa( kt ) ! optical model
68
69# if defined key_debug_medusa
70      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_opt_medusa'
71      CALL flush(numout)
72# endif
73
74      !! AXY & JPALM (28/02/17): call dust before trc_bio_medusa (because of coupling)
75      CALL trc_sed_medusa_dust( kt ) ! dust submodel
76
77# if defined key_debug_medusa
78      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_sed_medusa_dust'
79      CALL flush(numout)
80# endif
81
82# if defined key_kill_medusa
83
84      !! MEDUSA skipped
85      IF(lwp) WRITE(numout,*) ' MEDUSA killed at kt =', kt
86      CALL flush(numout)
87# else
88      CALL trc_bio_medusa( kt ) ! biological model
89
90#  if defined key_debug_medusa
91      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_bio_medusa'
92      CALL flush(numout)
93#  endif
94     
95      CALL trc_sed_medusa( kt ) ! sedimentation model
96
97#  if defined key_debug_medusa
98      IF(lwp) WRITE(numout,*) ' MEDUSA done trc_sed_medusa'
99      CALL flush(numout)
100#  endif
101
102# endif
103
104   END SUBROUTINE trc_sms_medusa
105   
106#else
107   !!----------------------------------------------------------------------
108   !!   Dummy module                                        No MEDUSA model
109   !!----------------------------------------------------------------------
110CONTAINS
111   SUBROUTINE trc_sms_medusa( kt )             ! Empty routine
112      INTEGER, INTENT( in ) ::   kt
113      WRITE(*,*) 'trc_sms_medusa: You should not have seen this print! error?', kt
114   END SUBROUTINE trc_sms_medusa
115#endif
116
117   !!======================================================================
118END MODULE trcsms_medusa
119
Note: See TracBrowser for help on using the repository browser.