par_pisces.F90 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. MODULE par_pisces
  2. !!======================================================================
  3. !! *** par_pisces ***
  4. !! TOP : set the PISCES parameters
  5. !!======================================================================
  6. !! History : 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture
  7. !!----------------------------------------------------------------------
  8. !! NEMO/TOP 3.3 , NEMO Consortium (2010)
  9. !! $Id: par_pisces.F90 3680 2012-11-27 14:42:24Z rblod $
  10. !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
  11. !!----------------------------------------------------------------------
  12. IMPLICIT NONE
  13. #if defined key_pisces_reduced
  14. !!---------------------------------------------------------------------
  15. !! 'key_pisces_reduced' : LOBSTER bio-model
  16. !!---------------------------------------------------------------------
  17. LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag
  18. LOGICAL, PUBLIC, PARAMETER :: lk_p4z = .FALSE. !: p4z flag
  19. INTEGER, PUBLIC, PARAMETER :: jp_pisces = 6 !: number of passive tracers
  20. INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 19 !: additional 2d output
  21. INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 3 !: additional 3d output
  22. INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 17 !: number of sms trends for PISCES
  23. ! assign an index in trc arrays for each LOBSTER prognostic variables
  24. INTEGER, PUBLIC, PARAMETER :: jpdet = 1 !: detritus [mmoleN/m3]
  25. INTEGER, PUBLIC, PARAMETER :: jpzoo = 2 !: zooplancton concentration [mmoleN/m3]
  26. INTEGER, PUBLIC, PARAMETER :: jpphy = 3 !: phytoplancton concentration [mmoleN/m3]
  27. INTEGER, PUBLIC, PARAMETER :: jpno3 = 4 !: nitrate concentration [mmoleN/m3]
  28. INTEGER, PUBLIC, PARAMETER :: jpnh4 = 5 !: ammonium concentration [mmoleN/m3]
  29. INTEGER, PUBLIC, PARAMETER :: jpdom = 6 !: dissolved organic matter [mmoleN/m3]
  30. ! productive layer depth
  31. INTEGER, PUBLIC, PARAMETER :: jpkb = 12 !: first vertical layers where biology is active
  32. INTEGER, PUBLIC, PARAMETER :: jpkbm1 = jpkb - 1 !: first vertical layers where biology is active
  33. #elif defined key_pisces && defined key_kriest
  34. !!---------------------------------------------------------------------
  35. !! 'key_pisces' & 'key_kriest' PISCES bio-model + ???
  36. !!---------------------------------------------------------------------
  37. LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag
  38. LOGICAL, PUBLIC, PARAMETER :: lk_p4z = .TRUE. !: p4z flag
  39. LOGICAL, PUBLIC, PARAMETER :: lk_kriest = .TRUE. !: Kriest flag
  40. INTEGER, PUBLIC, PARAMETER :: jp_pisces = 23 !: number of passive tracers
  41. INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 13 !: additional 2d output
  42. INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 18 !: additional 3d output
  43. INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 1 !: number of sms trends for PISCES
  44. ! assign an index in trc arrays for each LOBSTER prognostic variables
  45. ! WARNING: be carefull about the order when reading the restart
  46. ! !!gm this warning should be obsolet with IOM
  47. INTEGER, PUBLIC, PARAMETER :: jpdic = 1 !: dissolved inoganic carbon concentration
  48. INTEGER, PUBLIC, PARAMETER :: jptal = 2 !: total alkalinity
  49. INTEGER, PUBLIC, PARAMETER :: jpoxy = 3 !: oxygen carbon concentration
  50. INTEGER, PUBLIC, PARAMETER :: jpcal = 4 !: calcite concentration
  51. INTEGER, PUBLIC, PARAMETER :: jppo4 = 5 !: phosphate concentration
  52. INTEGER, PUBLIC, PARAMETER :: jppoc = 6 !: small particulate organic phosphate concentration
  53. INTEGER, PUBLIC, PARAMETER :: jpsil = 7 !: silicate concentration
  54. INTEGER, PUBLIC, PARAMETER :: jpphy = 8 !: phytoplancton concentration
  55. INTEGER, PUBLIC, PARAMETER :: jpzoo = 9 !: zooplancton concentration
  56. INTEGER, PUBLIC, PARAMETER :: jpdoc = 10 !: dissolved organic carbon concentration
  57. INTEGER, PUBLIC, PARAMETER :: jpdia = 11 !: Diatoms Concentration
  58. INTEGER, PUBLIC, PARAMETER :: jpmes = 12 !: Mesozooplankton Concentration
  59. INTEGER, PUBLIC, PARAMETER :: jpdsi = 13 !: Diatoms Silicate Concentration
  60. INTEGER, PUBLIC, PARAMETER :: jpfer = 14 !: Iron Concentration
  61. INTEGER, PUBLIC, PARAMETER :: jpnum = 15 !: Big iron particles Concentration
  62. INTEGER, PUBLIC, PARAMETER :: jpsfe = 16 !: number of particulate organic phosphate concentration
  63. INTEGER, PUBLIC, PARAMETER :: jpdfe = 17 !: Diatoms iron Concentration
  64. INTEGER, PUBLIC, PARAMETER :: jpgsi = 18 !: (big) Silicate Concentration
  65. INTEGER, PUBLIC, PARAMETER :: jpnfe = 19 !: Nano iron Concentration
  66. INTEGER, PUBLIC, PARAMETER :: jpnch = 20 !: Nano Chlorophyll Concentration
  67. INTEGER, PUBLIC, PARAMETER :: jpdch = 21 !: Diatoms Chlorophyll Concentration
  68. INTEGER, PUBLIC, PARAMETER :: jpno3 = 22 !: Nitrates Concentration
  69. INTEGER, PUBLIC, PARAMETER :: jpnh4 = 23 !: Ammonium Concentration
  70. #elif defined key_pisces
  71. !!---------------------------------------------------------------------
  72. !! 'key_pisces' : standard PISCES bio-model
  73. !!---------------------------------------------------------------------
  74. LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag
  75. LOGICAL, PUBLIC, PARAMETER :: lk_p4z = .TRUE. !: p4z flag
  76. LOGICAL, PUBLIC, PARAMETER :: lk_kriest = .FALSE. !: Kriest flag
  77. INTEGER, PUBLIC, PARAMETER :: jp_pisces = 24 !: number of PISCES passive tracers
  78. INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 13 !: additional 2d output
  79. INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 11 !: additional 3d output
  80. INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 1 !: number of sms trends for PISCES
  81. ! assign an index in trc arrays for each LOBSTER prognostic variables
  82. ! WARNING: be carefull about the order when reading the restart
  83. ! !!gm this warning should be obsolet with IOM
  84. INTEGER, PUBLIC, PARAMETER :: jpdic = 1 !: dissolved inoganic carbon concentration
  85. INTEGER, PUBLIC, PARAMETER :: jptal = 2 !: total alkalinity
  86. INTEGER, PUBLIC, PARAMETER :: jpoxy = 3 !: oxygen carbon concentration
  87. INTEGER, PUBLIC, PARAMETER :: jpcal = 4 !: calcite concentration
  88. INTEGER, PUBLIC, PARAMETER :: jppo4 = 5 !: phosphate concentration
  89. INTEGER, PUBLIC, PARAMETER :: jppoc = 6 !: small particulate organic phosphate concentration
  90. INTEGER, PUBLIC, PARAMETER :: jpsil = 7 !: silicate concentration
  91. INTEGER, PUBLIC, PARAMETER :: jpphy = 8 !: phytoplancton concentration
  92. INTEGER, PUBLIC, PARAMETER :: jpzoo = 9 !: zooplancton concentration
  93. INTEGER, PUBLIC, PARAMETER :: jpdoc = 10 !: dissolved organic carbon concentration
  94. INTEGER, PUBLIC, PARAMETER :: jpdia = 11 !: Diatoms Concentration
  95. INTEGER, PUBLIC, PARAMETER :: jpmes = 12 !: Mesozooplankton Concentration
  96. INTEGER, PUBLIC, PARAMETER :: jpdsi = 13 !: Diatoms Silicate Concentration
  97. INTEGER, PUBLIC, PARAMETER :: jpfer = 14 !: Iron Concentration
  98. INTEGER, PUBLIC, PARAMETER :: jpbfe = 15 !: Big iron particles Concentration
  99. INTEGER, PUBLIC, PARAMETER :: jpgoc = 16 !: big particulate organic phosphate concentration
  100. INTEGER, PUBLIC, PARAMETER :: jpsfe = 17 !: Small iron particles Concentration
  101. INTEGER, PUBLIC, PARAMETER :: jpdfe = 18 !: Diatoms iron Concentration
  102. INTEGER, PUBLIC, PARAMETER :: jpgsi = 19 !: (big) Silicate Concentration
  103. INTEGER, PUBLIC, PARAMETER :: jpnfe = 20 !: Nano iron Concentration
  104. INTEGER, PUBLIC, PARAMETER :: jpnch = 21 !: Nano Chlorophyll Concentration
  105. INTEGER, PUBLIC, PARAMETER :: jpdch = 22 !: Diatoms Chlorophyll Concentration
  106. INTEGER, PUBLIC, PARAMETER :: jpno3 = 23 !: Nitrates Concentration
  107. INTEGER, PUBLIC, PARAMETER :: jpnh4 = 24 !: Ammonium Concentration
  108. #else
  109. !!---------------------------------------------------------------------
  110. !! Default No CFC geochemical model
  111. !!---------------------------------------------------------------------
  112. LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .FALSE. !: PISCES flag
  113. LOGICAL, PUBLIC, PARAMETER :: lk_p4z = .FALSE. !: p4z flag
  114. INTEGER, PUBLIC, PARAMETER :: jp_pisces = 0 !: No CFC tracers
  115. INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 0 !: No CFC additional 2d output arrays
  116. INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 0 !: No CFC additional 3d output arrays
  117. INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 0 !: number of sms trends for PISCES
  118. #endif
  119. ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
  120. INTEGER, PUBLIC, PARAMETER :: jp_pcs0 = 1 !: First index of PISCES tracers
  121. INTEGER, PUBLIC, PARAMETER :: jp_pcs1 = jp_pisces !: Last index of PISCES tracers
  122. INTEGER, PUBLIC, PARAMETER :: jp_pcs0_2d = 1 !: First index of 2D diag
  123. INTEGER, PUBLIC, PARAMETER :: jp_pcs1_2d = jp_pisces_2d !: Last index of 2D diag
  124. INTEGER, PUBLIC, PARAMETER :: jp_pcs0_3d = 1 !: First index of 3D diag
  125. INTEGER, PUBLIC, PARAMETER :: jp_pcs1_3d = jp_pisces_3d !: Last index of 3d diag
  126. INTEGER, PUBLIC, PARAMETER :: jp_pcs0_trd = 1 !: First index of bio diag
  127. INTEGER, PUBLIC, PARAMETER :: jp_pcs1_trd = jp_pisces_trd !: Last index of bio diag
  128. !!======================================================================
  129. END MODULE par_pisces