p2zsms.F90 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. MODULE p2zsms
  2. !!======================================================================
  3. !! *** MODULE p2zsms ***
  4. !! TOP : Time loop of LOBSTER model
  5. !!======================================================================
  6. !! History : 1.0 ! M. Levy
  7. !! 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture
  8. !!----------------------------------------------------------------------
  9. #if defined key_pisces_reduced
  10. !!----------------------------------------------------------------------
  11. !! 'key_pisces_reduced' LOBSTER bio-model
  12. !!----------------------------------------------------------------------
  13. !! p2zsms : Time loop of passive tracers sms
  14. !!----------------------------------------------------------------------
  15. USE oce_trc !
  16. USE trc
  17. USE sms_pisces
  18. USE p2zbio
  19. USE p2zopt
  20. USE p2zsed
  21. USE p2zexp
  22. USE trd_oce
  23. USE trdtrc_oce
  24. USE trdtrc
  25. USE trdmxl_trc
  26. IMPLICIT NONE
  27. PRIVATE
  28. PUBLIC p2z_sms ! called in p2zsms.F90
  29. !!----------------------------------------------------------------------
  30. !! NEMO/TOP 3.3 , NEMO Consortium (2010)
  31. !! $Id: p2zsms.F90 2750 2016-01-12 10:42:05Z ufla $
  32. !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
  33. !!----------------------------------------------------------------------
  34. CONTAINS
  35. SUBROUTINE p2z_sms( kt )
  36. !!---------------------------------------------------------------------
  37. !! *** ROUTINE p2z_sms ***
  38. !!
  39. !! ** Purpose : Managment of the call to Biological sources and sinks
  40. !! routines of LOBSTER bio-model
  41. !!
  42. !! ** Method : - ???
  43. !! --------------------------------------------------------------------
  44. !!
  45. INTEGER, INTENT( in ) :: kt ! ocean time-step index
  46. !
  47. INTEGER :: jn
  48. !! --------------------------------------------------------------------
  49. !
  50. IF( nn_timing == 1 ) CALL timing_start('p2z_sms')
  51. !
  52. CALL p2z_opt( kt ) ! optical model
  53. CALL p2z_bio( kt ) ! biological model
  54. CALL p2z_sed( kt ) ! sedimentation model
  55. CALL p2z_exp( kt ) ! export
  56. IF( l_trdtrc ) THEN
  57. DO jn = jp_pcs0, jp_pcs1
  58. CALL trd_trc( tra(:,:,:,jn), jn, jptra_sms, kt ) ! save trends
  59. END DO
  60. END IF
  61. IF( lk_trdmxl_trc ) CALL trd_mxl_bio( kt ) ! trends: Mixed-layer
  62. !
  63. IF ( lwm .AND. kt == nittrc000 ) CALL FLUSH ( numonp ) ! flush output namelist PISCES
  64. IF( nn_timing == 1 ) CALL timing_stop('p2z_sms')
  65. !
  66. END SUBROUTINE p2z_sms
  67. #else
  68. !!======================================================================
  69. !! Dummy module : No passive tracer
  70. !!======================================================================
  71. CONTAINS
  72. SUBROUTINE p2z_sms( kt ) ! Empty routine
  73. INTEGER, INTENT( in ) :: kt
  74. WRITE(*,*) 'p2z_sms: You should not have seen this print! error?', kt
  75. END SUBROUTINE p2z_sms
  76. #endif
  77. !!======================================================================
  78. END MODULE p2zsms