trcice.F90 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. MODULE trcice
  2. !!======================================================================
  3. !! *** MODULE trcice ***
  4. !! TOP : Manage the communication between TOP and sea ice
  5. !!======================================================================
  6. !! History : 3.5 ! 2013 (M. Vancoppenolle, O. Aumont, G. Madec), original code
  7. !!----------------------------------------------------------------------
  8. #if defined key_top
  9. !!----------------------------------------------------------------------
  10. !! 'key_top' TOP models
  11. !!----------------------------------------------------------------------
  12. !! trc_ice : Call the appropriate sea ice tracer subroutine
  13. !!----------------------------------------------------------------------
  14. USE oce_trc ! shared variables between ocean and passive tracers
  15. USE trc ! passive tracers common variables
  16. USE trcice_cfc ! CFC initialisation
  17. USE trcice_pisces ! PISCES initialisation
  18. USE trcice_c14b ! C14 bomb initialisation
  19. USE trcice_my_trc ! MY_TRC initialisation
  20. IMPLICIT NONE
  21. PRIVATE
  22. PUBLIC trc_ice_ini ! called by trc_nam
  23. CONTAINS
  24. SUBROUTINE trc_ice_ini
  25. !!---------------------------------------------------------------------
  26. !! *** ROUTINE trc_ice_ini ***
  27. !!
  28. !! ** Purpose : Initialization of the ice module for tracers
  29. !!
  30. !! ** Method : -
  31. !!
  32. !!---------------------------------------------------------------------
  33. ! --- Variable declarations --- !
  34. IF(lwp) THEN
  35. WRITE(numout,*)
  36. WRITE(numout,*) 'trc_ice_ini : Initialize sea ice tracer boundary condition'
  37. WRITE(numout,*) '~~~~~~~~~~~~~'
  38. ENDIF
  39. IF( nn_timing == 1 ) CALL timing_start('trc_ice_ini')
  40. !
  41. trc_i(:,:,:) = 0.0d0 ! by default
  42. trc_o(:,:,:) = 0.0d0 ! by default
  43. IF ( nn_ice_tr == 1 ) THEN
  44. IF( lk_pisces ) CALL trc_ice_ini_pisces ! PISCES bio-model
  45. IF( lk_my_trc ) CALL trc_ice_ini_my_trc ! MY_TRC tracers
  46. IF( lk_cfc ) CALL trc_ice_ini_cfc ! CFC tracers
  47. IF( lk_c14b ) CALL trc_ice_ini_c14b ! C14 bomb tracer
  48. ENDIF
  49. IF( nn_timing == 1 ) CALL timing_stop('trc_ice_ini')
  50. !
  51. END SUBROUTINE trc_ice_ini
  52. #else
  53. !!----------------------------------------------------------------------
  54. !! Empty module : No passive tracer
  55. !!----------------------------------------------------------------------
  56. CONTAINS
  57. SUBROUTINE trc_ice_ini ! Dummy routine
  58. END SUBROUTINE trc_ice_ini
  59. #endif
  60. !!======================================================================
  61. END MODULE trcice