[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 |
---|
[5726] | 18 | USE trcsms_medusa ! MEDUSA tracers |
---|
| 19 | USE trcsms_idtra ! Idealize Tracer |
---|
[1254] | 20 | USE trcsms_cfc ! CFC 11 & 12 |
---|
| 21 | USE trcsms_c14b ! C14b tracer |
---|
[6715] | 22 | USE trcsms_age ! AGE tracer |
---|
[945] | 23 | USE trcsms_my_trc ! MY_TRC tracers |
---|
| 24 | USE prtctl_trc ! Print control for debbuging |
---|
[268] | 25 | |
---|
[335] | 26 | IMPLICIT NONE |
---|
| 27 | PRIVATE |
---|
[268] | 28 | |
---|
[945] | 29 | PUBLIC trc_sms ! called in trcstp.F90 |
---|
[268] | 30 | |
---|
[945] | 31 | !!---------------------------------------------------------------------- |
---|
[2528] | 32 | !! NEMO/TOP 3.3 , NEMO Consortium (2010) |
---|
[5726] | 33 | !! $Id$ |
---|
[2715] | 34 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
[945] | 35 | !!---------------------------------------------------------------------- |
---|
[268] | 36 | CONTAINS |
---|
| 37 | |
---|
[335] | 38 | SUBROUTINE trc_sms( kt ) |
---|
[945] | 39 | !!--------------------------------------------------------------------- |
---|
[1011] | 40 | !! *** ROUTINE trc_sms *** |
---|
[335] | 41 | !! |
---|
[945] | 42 | !! ** Purpose : Managment of the time loop of passive tracers sms |
---|
[335] | 43 | !! |
---|
[945] | 44 | !! ** Method : - call the main routine of of each defined tracer model |
---|
[335] | 45 | !! ------------------------------------------------------------------------------------- |
---|
[268] | 46 | INTEGER, INTENT( in ) :: kt ! ocean time-step index |
---|
[945] | 47 | !! |
---|
[6261] | 48 | INTEGER :: jn |
---|
[433] | 49 | CHARACTER (len=25) :: charout |
---|
[945] | 50 | !!--------------------------------------------------------------------- |
---|
[3294] | 51 | ! |
---|
| 52 | IF( nn_timing == 1 ) CALL timing_start('trc_sms') |
---|
| 53 | ! |
---|
[945] | 54 | IF( lk_pisces ) CALL trc_sms_pisces ( kt ) ! main program of PISCES |
---|
[7912] | 55 | ! tmp - marc |
---|
| 56 | write(numout,*) 'bbb32. before call to trc_bio_medusa' |
---|
| 57 | flush(numout) |
---|
| 58 | ! |
---|
[6164] | 59 | IF( lk_medusa ) CALL trc_sms_medusa ( kt ) ! MEDUSA tracers |
---|
[7912] | 60 | ! tmp - marc |
---|
| 61 | write(numout,*) 'bbb33. after call to trc_bio_medusa' |
---|
| 62 | flush(numout) |
---|
| 63 | ! |
---|
[6201] | 64 | # if defined key_debug_medusa |
---|
| 65 | IF(lwp) WRITE(numout,*) '--trcsms : MEDUSA OK -- next IDTRA -- ' |
---|
| 66 | CALL flush(numout) |
---|
| 67 | # endif |
---|
[6164] | 68 | IF( lk_idtra ) CALL trc_sms_idtra ( kt ) ! radioactive decay of Id. tracer |
---|
[6201] | 69 | # if defined key_debug_medusa |
---|
| 70 | IF(lwp) WRITE(numout,*) '--trcsms : IDTRA OK -- next CFC -- ' |
---|
| 71 | CALL flush(numout) |
---|
| 72 | # endif |
---|
[945] | 73 | IF( lk_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC |
---|
[6201] | 74 | # if defined key_debug_medusa |
---|
[6715] | 75 | IF(lwp) WRITE(numout,*) '--trcsms : CFC OK -- next C14 -- ' |
---|
[6201] | 76 | CALL flush(numout) |
---|
| 77 | # endif |
---|
[1254] | 78 | IF( lk_c14b ) CALL trc_sms_c14b ( kt ) ! surface fluxes of C14 |
---|
[6715] | 79 | # if defined key_debug_medusa |
---|
| 80 | IF(lwp) WRITE(numout,*) '--trcsms : C14 OK -- next C14 -- ' |
---|
| 81 | CALL flush(numout) |
---|
| 82 | # endif |
---|
| 83 | IF( lk_age ) CALL trc_sms_age ( kt ) ! AGE tracer |
---|
| 84 | # if defined key_debug_medusa |
---|
| 85 | IF(lwp) WRITE(numout,*) '--trcsms : Age OK -- Continue -- ' |
---|
| 86 | CALL flush(numout) |
---|
| 87 | # endif |
---|
[945] | 88 | IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers |
---|
[268] | 89 | |
---|
[945] | 90 | IF(ln_ctl) THEN ! print mean trends (used for debugging) |
---|
| 91 | WRITE(charout, FMT="('sms ')") |
---|
| 92 | CALL prt_ctl_trc_info( charout ) |
---|
| 93 | CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) |
---|
[433] | 94 | ENDIF |
---|
[945] | 95 | ! |
---|
[3294] | 96 | IF( nn_timing == 1 ) CALL timing_stop('trc_sms') |
---|
| 97 | ! |
---|
[335] | 98 | END SUBROUTINE trc_sms |
---|
[268] | 99 | |
---|
| 100 | #else |
---|
[335] | 101 | !!====================================================================== |
---|
[945] | 102 | !! Dummy module : No passive tracer |
---|
[335] | 103 | !!====================================================================== |
---|
| 104 | CONTAINS |
---|
[945] | 105 | SUBROUTINE trc_sms( kt ) ! Empty routine |
---|
[268] | 106 | INTEGER, INTENT( in ) :: kt |
---|
| 107 | WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt |
---|
[335] | 108 | END SUBROUTINE trc_sms |
---|
[268] | 109 | #endif |
---|
| 110 | |
---|
[945] | 111 | !!====================================================================== |
---|
[268] | 112 | END MODULE trcsms |
---|