trcsms.F90 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. MODULE trcsms
  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
  8. !!----------------------------------------------------------------------
  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
  18. USE trcsms_cfc ! CFC 11 & 12
  19. USE trcsms_c14b ! C14b tracer
  20. USE trcsms_age ! AGE tracer
  21. USE trcsms_my_trc ! MY_TRC tracers
  22. USE prtctl_trc ! Print control for debbuging
  23. IMPLICIT NONE
  24. PRIVATE
  25. PUBLIC trc_sms ! called in trcstp.F90
  26. !!----------------------------------------------------------------------
  27. !! NEMO/TOP 3.3 , NEMO Consortium (2010)
  28. !! $Id$
  29. !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
  30. !!----------------------------------------------------------------------
  31. CONTAINS
  32. SUBROUTINE trc_sms( kt )
  33. !!---------------------------------------------------------------------
  34. !! *** ROUTINE trc_sms ***
  35. !!
  36. !! ** Purpose : Managment of the time loop of passive tracers sms
  37. !!
  38. !! ** Method : - call the main routine of of each defined tracer model
  39. !! -------------------------------------------------------------------------------------
  40. INTEGER, INTENT( in ) :: kt ! ocean time-step index
  41. !!
  42. CHARACTER (len=25) :: charout
  43. !!---------------------------------------------------------------------
  44. !
  45. IF( nn_timing == 1 ) CALL timing_start('trc_sms')
  46. !
  47. IF( lk_pisces ) CALL trc_sms_pisces ( kt ) ! main program of PISCES
  48. IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers
  49. IF( lk_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC
  50. IF( lk_c14b ) CALL trc_sms_c14b ( kt ) ! surface fluxes of C14
  51. IF( lk_age ) CALL trc_sms_age ( kt ) ! AGE tracer
  52. IF(ln_ctl) THEN ! print mean trends (used for debugging)
  53. WRITE(charout, FMT="('sms ')")
  54. CALL prt_ctl_trc_info( charout )
  55. CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm )
  56. ENDIF
  57. !
  58. IF( nn_timing == 1 ) CALL timing_stop('trc_sms')
  59. !
  60. END SUBROUTINE trc_sms
  61. #else
  62. !!======================================================================
  63. !! Dummy module : No passive tracer
  64. !!======================================================================
  65. CONTAINS
  66. SUBROUTINE trc_sms( kt ) ! Empty routine
  67. INTEGER, INTENT( in ) :: kt
  68. WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt
  69. END SUBROUTINE trc_sms
  70. #endif
  71. !!======================================================================
  72. END MODULE trcsms