-
Notifications
You must be signed in to change notification settings - Fork 0
/
trcsms.F90
79 lines (72 loc) · 3.45 KB
/
trcsms.F90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
MODULE trcsms
!!======================================================================
!! *** MODULE trcsms ***
!! TOP : Time loop of passive tracers sms
!!======================================================================
!! History : 1.0 ! 2005-03 (O. Aumont, A. El Moussaoui) F90
!! 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture
!!----------------------------------------------------------------------
#if defined key_top
!!----------------------------------------------------------------------
!! 'key_top' TOP models
!!----------------------------------------------------------------------
!! trc_sms : Time loop of passive tracers sms
!!----------------------------------------------------------------------
USE oce_trc !
USE trc !
USE trcsms_pisces ! PISCES biogeo-model
USE trcsms_cfc ! CFC 11 &/or 12
USE trcsms_c14 ! C14
USE trcsms_age ! AGE
USE trcsms_my_trc ! MY_TRC tracers
USE prtctl_trc ! Print control for debbuging
IMPLICIT NONE
PRIVATE
PUBLIC trc_sms ! called in trcstp.F90
!!----------------------------------------------------------------------
!! NEMO/TOP 3.3 , NEMO Consortium (2018)
!! $Id: trcsms.F90 9598 2018-05-15 22:47:16Z nicolasmartin $
!! Software governed by the CeCILL licence (./LICENSE)
!!----------------------------------------------------------------------
CONTAINS
SUBROUTINE trc_sms( kt )
!!---------------------------------------------------------------------
!! *** ROUTINE trc_sms ***
!!
!! ** Purpose : Managment of the time loop of passive tracers sms
!!
!! ** Method : - call the main routine of of each defined tracer model
!! -------------------------------------------------------------------------------------
INTEGER, INTENT( in ) :: kt ! ocean time-step index
!!
CHARACTER (len=25) :: charout
!!---------------------------------------------------------------------
!
IF( ln_timing ) CALL timing_start('trc_sms')
!
IF( ln_pisces ) CALL trc_sms_pisces ( kt ) ! main program of PISCES
IF( ll_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC
IF( ln_c14 ) CALL trc_sms_c14 ( kt ) ! surface fluxes of C14
IF( ln_age ) CALL trc_sms_age ( kt ) ! Age tracer
IF( ln_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers
IF(ln_ctl) THEN ! print mean trends (used for debugging)
WRITE(charout, FMT="('sms ')")
CALL prt_ctl_trc_info( charout )
CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm )
ENDIF
!
IF( ln_timing ) CALL timing_stop('trc_sms')
!
END SUBROUTINE trc_sms
#else
!!======================================================================
!! Dummy module : No passive tracer
!!======================================================================
CONTAINS
SUBROUTINE trc_sms( kt ) ! Empty routine
INTEGER, INTENT( in ) :: kt
WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt
END SUBROUTINE trc_sms
#endif
!!======================================================================
END MODULE trcsms