[268] | 1 | MODULE trcsms |
---|
[945] | 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 |
---|
[274] | 8 | !!---------------------------------------------------------------------- |
---|
[945] | 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 |
---|
[7646] | 18 | USE trcsms_cfc ! CFC 11 &/or 12 |
---|
| 19 | USE trcsms_c14 ! C14 |
---|
| 20 | USE trcsms_age ! AGE |
---|
[945] | 21 | USE trcsms_my_trc ! MY_TRC tracers |
---|
[13892] | 22 | USE prtctl ! Print control for debbuging |
---|
[268] | 23 | |
---|
[335] | 24 | IMPLICIT NONE |
---|
| 25 | PRIVATE |
---|
[268] | 26 | |
---|
[945] | 27 | PUBLIC trc_sms ! called in trcstp.F90 |
---|
[268] | 28 | |
---|
[945] | 29 | !!---------------------------------------------------------------------- |
---|
[10067] | 30 | !! NEMO/TOP 4.0 , NEMO Consortium (2018) |
---|
[1152] | 31 | !! $Id$ |
---|
[10068] | 32 | !! Software governed by the CeCILL license (see ./LICENSE) |
---|
[945] | 33 | !!---------------------------------------------------------------------- |
---|
[268] | 34 | CONTAINS |
---|
| 35 | |
---|
[12377] | 36 | SUBROUTINE trc_sms( kt, Kbb, Kmm , Krhs ) |
---|
[945] | 37 | !!--------------------------------------------------------------------- |
---|
[1011] | 38 | !! *** ROUTINE trc_sms *** |
---|
[335] | 39 | !! |
---|
[945] | 40 | !! ** Purpose : Managment of the time loop of passive tracers sms |
---|
[335] | 41 | !! |
---|
[945] | 42 | !! ** Method : - call the main routine of of each defined tracer model |
---|
[335] | 43 | !! ------------------------------------------------------------------------------------- |
---|
[12377] | 44 | INTEGER, INTENT( in ) :: kt ! ocean time-step index |
---|
| 45 | INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs ! time level indices |
---|
[945] | 46 | !! |
---|
[433] | 47 | CHARACTER (len=25) :: charout |
---|
[945] | 48 | !!--------------------------------------------------------------------- |
---|
[3294] | 49 | ! |
---|
[9124] | 50 | IF( ln_timing ) CALL timing_start('trc_sms') |
---|
[3294] | 51 | ! |
---|
[12377] | 52 | IF( ln_pisces ) CALL trc_sms_pisces ( kt, Kbb, Kmm, Krhs ) ! main program of PISCES |
---|
| 53 | IF( ll_cfc ) CALL trc_sms_cfc ( kt, Kbb, Kmm, Krhs ) ! surface fluxes of CFC |
---|
| 54 | IF( ln_c14 ) CALL trc_sms_c14 ( kt, Kbb, Kmm, Krhs ) ! surface fluxes of C14 |
---|
| 55 | IF( ln_age ) CALL trc_sms_age ( kt, Kbb, Kmm, Krhs ) ! Age tracer |
---|
| 56 | IF( ln_my_trc ) CALL trc_sms_my_trc ( kt, Kbb, Kmm, Krhs ) ! MY_TRC tracers |
---|
[268] | 57 | |
---|
[12377] | 58 | IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) |
---|
[945] | 59 | WRITE(charout, FMT="('sms ')") |
---|
[13892] | 60 | CALL prt_ctl_info( charout, cdcomp = 'top' ) |
---|
| 61 | CALL prt_ctl( tab4d_1=tr(:,:,:,:,Kmm), mask1=tmask, clinfo=ctrcnm ) |
---|
[433] | 62 | ENDIF |
---|
[945] | 63 | ! |
---|
[9124] | 64 | IF( ln_timing ) CALL timing_stop('trc_sms') |
---|
[3294] | 65 | ! |
---|
[335] | 66 | END SUBROUTINE trc_sms |
---|
[268] | 67 | |
---|
| 68 | #else |
---|
[335] | 69 | !!====================================================================== |
---|
[945] | 70 | !! Dummy module : No passive tracer |
---|
[335] | 71 | !!====================================================================== |
---|
| 72 | CONTAINS |
---|
[945] | 73 | SUBROUTINE trc_sms( kt ) ! Empty routine |
---|
[268] | 74 | INTEGER, INTENT( in ) :: kt |
---|
| 75 | WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt |
---|
[335] | 76 | END SUBROUTINE trc_sms |
---|
[268] | 77 | #endif |
---|
| 78 | |
---|
[945] | 79 | !!====================================================================== |
---|
[5656] | 80 | END MODULE trcsms |
---|