[5726] | 1 | MODULE sms_medusa |
---|
| 2 | !!---------------------------------------------------------------------- |
---|
| 3 | !! *** sms_medusa.F90 *** |
---|
| 4 | !! TOP : MEDUSA Source Minus Sink variables |
---|
| 5 | !!---------------------------------------------------------------------- |
---|
| 6 | !! History : - ! 1999-09 (M. Levy) original code |
---|
| 7 | !! - ! 2000-12 (O. Aumont, E. Kestenare) add sediment |
---|
| 8 | !! 1.0 ! 2005-10 (C. Ethe) F90 |
---|
| 9 | !! 1.0 ! 2005-03 (A-S Kremeur) add fphylab, fzoolab, fdetlab, fdbod |
---|
| 10 | !! - ! 2005-06 (A-S Kremeur) add sedpocb, sedpocn, sedpoca |
---|
| 11 | !! 2.0 ! 2007-04 (C. Deltel, G. Madec) Free form and modules |
---|
| 12 | !! - ! 2008-08 (K. Popova) adaptation for MEDUSA |
---|
| 13 | !! - ! 2008-11 (A. Yool) continuing adaptation for MEDUSA |
---|
| 14 | !! - ! 2010-03 (A. Yool) updated for branch inclusion |
---|
| 15 | !! - ! 2011-04 (A. Yool) updated for ROAM project |
---|
| 16 | !!---------------------------------------------------------------------- |
---|
| 17 | |
---|
| 18 | #if defined key_medusa |
---|
| 19 | !!---------------------------------------------------------------------- |
---|
| 20 | !! 'key_medusa' MEDUSA model |
---|
| 21 | !!---------------------------------------------------------------------- |
---|
| 22 | USE par_oce |
---|
| 23 | USE par_trc |
---|
| 24 | |
---|
| 25 | IMPLICIT NONE |
---|
| 26 | PUBLIC |
---|
| 27 | |
---|
| 28 | !!---------------------------------------------------------------------- |
---|
| 29 | !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) |
---|
| 30 | !! $Id$ |
---|
| 31 | !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) |
---|
| 32 | !!---------------------------------------------------------------------- |
---|
| 33 | |
---|
| 34 | INTEGER :: numnatp_ref = -1 !! Logical units for namelist medusa |
---|
| 35 | INTEGER :: numnatp_cfg = -1 !! Logical units for namelist medusa |
---|
| 36 | INTEGER :: numonp = -1 !! Logical unit for namelist medusa output |
---|
| 37 | |
---|
| 38 | !!---------------------------------------------------------------------- |
---|
| 39 | !! Biological parameters |
---|
| 40 | !!---------------------------------------------------------------------- |
---|
| 41 | !! |
---|
| 42 | !! Primary production and chl related quantities |
---|
| 43 | REAL(wp) :: xxi !: conversion factor from gC to mmolN |
---|
| 44 | REAL(wp) :: xaln !: Chl-a specific initial slope of P-I curve for non-diatoms |
---|
| 45 | REAL(wp) :: xald !: Chl-a specific initial slope of P-I curve for diatoms |
---|
| 46 | INTEGER :: jphy !: phytoplankton T-dependent growth switch |
---|
| 47 | REAL(wp) :: xvpn !: maximum growth rate for non-diatoms |
---|
| 48 | REAL(wp) :: xvpd !: maximum growth rate for diatoms |
---|
| 49 | REAL(wp) :: xthetam !: maximum Chl to C ratio for non-diatoms |
---|
| 50 | REAL(wp) :: xthetamd !: maximum Chl to C ratio for diatoms |
---|
[8074] | 51 | REAL(wp) :: jq10 !: specific Q10 value (jphy==2) |
---|
[5726] | 52 | !! |
---|
| 53 | !! Diatom silicon parameters |
---|
| 54 | REAL(wp) :: xsin0 !: minimum diatom Si:N ratio |
---|
| 55 | REAL(wp) :: xnsi0 !: minimum diatom N:Si ratio |
---|
| 56 | REAL(wp) :: xuif !: hypothetical growth ratio at infinite Si:N ratio |
---|
| 57 | !! |
---|
| 58 | !! Nutrient limitation |
---|
| 59 | INTEGER :: jliebig !: Liebig nutrient uptake switch |
---|
| 60 | REAL(wp) :: xnln !: half-sat constant for DIN uptake by non-diatoms |
---|
| 61 | REAL(wp) :: xnld !: half-sat constant for DIN uptake by diatoms |
---|
| 62 | REAL(wp) :: xsld !: half-sat constant for Si uptake by diatoms |
---|
| 63 | REAL(wp) :: xfln !: half-sat constant for Fe uptake by non-diatoms |
---|
| 64 | REAL(wp) :: xfld !: half-sat constant for Fe uptake by diatoms |
---|
| 65 | !! |
---|
| 66 | !! Grazing |
---|
| 67 | REAL(wp) :: xgmi !: microzoo maximum growth rate |
---|
| 68 | REAL(wp) :: xgme !: mesozoo maximum growth rate |
---|
| 69 | REAL(wp) :: xkmi !: microzoo grazing half-sat parameter |
---|
| 70 | REAL(wp) :: xkme !: mesozoo grazing half-sat parameter |
---|
| 71 | REAL(wp) :: xphi !: micro/mesozoo grazing inefficiency |
---|
| 72 | REAL(wp) :: xbetan !: micro/mesozoo N assimilation efficiency |
---|
| 73 | REAL(wp) :: xbetac !: micro/mesozoo C assimilation efficiency |
---|
| 74 | REAL(wp) :: xkc !: micro/mesozoo net C growth efficiency |
---|
| 75 | REAL(wp) :: xpmipn !: grazing preference of microzoo for non-diatoms |
---|
| 76 | REAL(wp) :: xpmid !: grazing preference of microzoo for diatoms |
---|
| 77 | REAL(wp) :: xpmepn !: grazing preference of mesozoo for non-diatoms |
---|
| 78 | REAL(wp) :: xpmepd !: grazing preference of mesozoo for diatoms |
---|
| 79 | REAL(wp) :: xpmezmi !: grazing preference of mesozoo for microzoo |
---|
| 80 | REAL(wp) :: xpmed !: grazing preference of mesozoo for detritus |
---|
| 81 | !! |
---|
| 82 | !! Metabolic losses |
---|
| 83 | REAL(wp) :: xmetapn !: non-diatom metabolic loss rate |
---|
| 84 | REAL(wp) :: xmetapd !: diatom metabolic loss rate |
---|
| 85 | REAL(wp) :: xmetazmi !: microzoo metabolic loss rate |
---|
| 86 | REAL(wp) :: xmetazme !: mesozoo metabolic loss rate |
---|
| 87 | !! |
---|
| 88 | !! Mortality losses |
---|
| 89 | INTEGER :: jmpn !: non-diatom mortality functional form |
---|
| 90 | REAL(wp) :: xmpn !: non-diatom mortality rate |
---|
| 91 | REAL(wp) :: xkphn !: non-diatom mortality half-sat constant |
---|
| 92 | INTEGER :: jmpd !: diatom mortality functional form |
---|
| 93 | REAL(wp) :: xmpd !: diatom mortality rate |
---|
| 94 | REAL(wp) :: xkphd !: diatom mortality half-sat constant |
---|
| 95 | INTEGER :: jmzmi !: microzoo mortality functional form |
---|
| 96 | REAL(wp) :: xmzmi !: microzoo mortality rate |
---|
| 97 | REAL(wp) :: xkzmi !: microzoo mortality half-sat constant |
---|
| 98 | INTEGER :: jmzme !: mesozoo mortality functional form |
---|
| 99 | REAL(wp) :: xmzme !: mesozoo mortality rate |
---|
| 100 | REAL(wp) :: xkzme !: mesozoo mortality half-sat constant |
---|
| 101 | !! |
---|
| 102 | !! Remineralisation |
---|
| 103 | INTEGER :: jmd !: detritus T-dependent remineralisation switch |
---|
| 104 | INTEGER :: jsfd !: accelerate seafloor detritus remin. switch |
---|
| 105 | REAL(wp) :: xmd !: detrital nitrogen remineralisation rate |
---|
| 106 | REAL(wp) :: xmdc !: detrital carbon remineralisation rate |
---|
| 107 | !! |
---|
| 108 | !! Stochiometric ratios |
---|
| 109 | REAL(wp) :: xthetapn !: non-diatom C:N ratio |
---|
| 110 | REAL(wp) :: xthetapd !: diatom C:N ratio |
---|
| 111 | REAL(wp) :: xthetazmi !: microzoo C:N ratio |
---|
| 112 | REAL(wp) :: xthetazme !: mesozoo C:N ratio |
---|
| 113 | REAL(wp) :: xthetad !: detritus C:N ratio |
---|
| 114 | REAL(wp) :: xrfn !: phytoplankton Fe:N ratio |
---|
| 115 | REAL(wp) :: xrsn !: diatom Si:N ratio (NOT USED HERE; RETAINED FOR LOBSTER) |
---|
| 116 | !! |
---|
| 117 | !! Iron parameters |
---|
| 118 | INTEGER :: jiron !: iron scavenging submodel switch |
---|
| 119 | REAL(wp) :: xfe_mass !: iron atomic mass |
---|
| 120 | REAL(wp) :: xfe_sol !: aeolian iron solubility |
---|
| 121 | REAL(wp) :: xfe_sed !: sediment iron input |
---|
| 122 | REAL(wp) :: xLgT !: total ligand concentration (umol/m3) |
---|
| 123 | REAL(wp) :: xk_FeL !: dissociation constant for (Fe + L) |
---|
| 124 | REAL(wp) :: xk_sc_Fe !: scavenging rate of "free" iron |
---|
| 125 | !! |
---|
| 126 | !! Gravitational sinking |
---|
| 127 | REAL(wp) :: vsed !: detritus gravitational sinking rate |
---|
| 128 | REAL(wp) :: xhr !: coefficient for Martin et al. (1987) remineralisation |
---|
| 129 | !! |
---|
| 130 | !! Fast-sinking detritus parameters |
---|
| 131 | INTEGER :: jexport !: fast detritus remineralisation switch |
---|
| 132 | INTEGER :: jfdfate !: fate of fast detritus at seafloor switch |
---|
| 133 | INTEGER :: jrratio !: rain ratio switch |
---|
| 134 | INTEGER :: jocalccd !: CCD switch |
---|
| 135 | REAL(wp) :: xridg_r0 !: Ridgwell rain ratio coefficient |
---|
| 136 | REAL(wp) :: xfdfrac1 !: fast-sinking fraction of diatom nat. mort. losses |
---|
| 137 | REAL(wp) :: xfdfrac2 !: fast-sinking fraction of mesozooplankton mort. losses |
---|
| 138 | REAL(wp) :: xfdfrac3 !: fast-sinking fraction of diatom silicon grazing losses |
---|
| 139 | REAL(wp) :: xcaco3a !: polar (high latitude) CaCO3 fraction |
---|
| 140 | REAL(wp) :: xcaco3b !: equatorial (low latitude) CaCO3 fraction |
---|
| 141 | REAL(wp) :: xmassc !: organic C mass:mole ratio, C106 H175 O40 N16 P1 |
---|
| 142 | REAL(wp) :: xmassca !: calcium carbonate mass:mole ratio, CaCO3 |
---|
| 143 | REAL(wp) :: xmasssi !: biogenic silicon mass:mole ratio, (H2SiO3)n |
---|
| 144 | REAL(wp) :: xprotca !: calcium carbonate protection ratio |
---|
| 145 | REAL(wp) :: xprotsi !: biogenic silicon protection ratio |
---|
| 146 | REAL(wp) :: xfastc !: organic C remineralisation length scale |
---|
| 147 | REAL(wp) :: xfastca !: calcium carbonate dissolution length scale |
---|
| 148 | REAL(wp) :: xfastsi !: biogenic silicon dissolution length scale |
---|
| 149 | !! |
---|
| 150 | !! Benthos parameters |
---|
| 151 | INTEGER :: jorgben !: does organic detritus go to the benthos? |
---|
| 152 | INTEGER :: jinorgben !: does inorganic detritus go to the benthos? |
---|
| 153 | !! |
---|
| 154 | REAL(wp) :: xsedn !: organic nitrogen sediment remineralisation rate |
---|
| 155 | REAL(wp) :: xsedfe !: organic iron sediment remineralisation rate |
---|
| 156 | REAL(wp) :: xsedsi !: inorganic silicon sediment dissolution rate |
---|
| 157 | REAL(wp) :: xsedc !: organic carbon sediment remineralisation rate |
---|
| 158 | REAL(wp) :: xsedca !: inorganic carbon sediment dissolution rate |
---|
| 159 | REAL(wp) :: xburial !: burial rate of seafloor detritus |
---|
| 160 | !! |
---|
| 161 | !! River parameters |
---|
| 162 | INTEGER :: jriver_n !: riverine nitrogen? 0 = no, 1 = conc, 2 = flux |
---|
| 163 | INTEGER :: jriver_si !: riverine silicon? 0 = no, 1 = conc, 2 = flux |
---|
| 164 | INTEGER :: jriver_c !: riverine carbon? 0 = no, 1 = conc, 2 = flux |
---|
| 165 | INTEGER :: jriver_alk!: riverine alkalinity? 0 = no, 1 = conc, 2 = flux |
---|
| 166 | INTEGER :: jriver_dep!: depth river input added to? 1 = surface, >1 possible |
---|
| 167 | !! |
---|
| 168 | !! Miscellaneous |
---|
| 169 | REAL(wp) :: xsdiss !: diatom frustule dissolution rate |
---|
| 170 | !! |
---|
| 171 | !! Additional parameters |
---|
| 172 | INTEGER :: jpkb !: vertical layer for diagnostic of the vertical flux |
---|
| 173 | !! |
---|
| 174 | !! UKESM diagnostics |
---|
[5841] | 175 | INTEGER :: jdms !: include DMS diagnostics ? Jpalm (27-08-2014) |
---|
| 176 | INTEGER :: jdms_input !: use instant (0) or diel-average (1) inputs (AXY, 08/07/2015) |
---|
| 177 | INTEGER :: jdms_model !: choice of DMS model passed to atmosphere |
---|
| 178 | !! 1 = ANDR, 2 = SIMO, 3 = ARAN, 4 = HALL |
---|
[10302] | 179 | !! JPALM --19-12-2017 -- UM people need to tune the Anderson DMS scheme |
---|
| 180 | REAL(wp) :: dmsmin !: Anderson DMS scheme - DMS minimum value |
---|
| 181 | REAL(wp) :: dmscut !: Anderson DMS scheme - DMS cutoff value |
---|
| 182 | REAL(wp) :: dmsslp !: Anderson DMS scheme - DMS slope |
---|
| 183 | !! FOR UKESM |
---|
| 184 | REAL(wp) :: scl_chl !: scaling factor for tuned Chl passed to the UM |
---|
| 185 | INTEGER :: chl_out !: select Chl field exported and scaled for UM: |
---|
| 186 | !: 1- Surface Chl ; 2- MLD Chl |
---|
[5726] | 187 | !! |
---|
| 188 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: remdmp !: depth dependent damping coefficient of passive tracers |
---|
| 189 | !! |
---|
| 190 | !! AXY (27/07/10): add in indices for depth horizons (for sinking flux |
---|
| 191 | !! and seafloor iron inputs) |
---|
| 192 | INTEGER :: i0100, i0150, i0200, i0500, i1000, i1100 |
---|
| 193 | #if defined key_roam |
---|
| 194 | !! |
---|
| 195 | !! ROAM carbon, alkalinity and oxygen cycle parameters |
---|
| 196 | REAL(wp) :: xthetaphy !: oxygen evolution/consumption by phytoplankton |
---|
| 197 | REAL(wp) :: xthetazoo !: oxygen consumption by zooplankton |
---|
| 198 | REAL(wp) :: xthetanit !: oxygen consumption by nitrogen remineralisation |
---|
| 199 | REAL(wp) :: xthetarem !: oxygen consumption by carbon remineralisation |
---|
| 200 | REAL(wp) :: xo2min !: oxygen minimum concentration |
---|
| 201 | !! |
---|
| 202 | !! 3D fields of carbonate system parameters |
---|
| 203 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: f3_pH !: 3D pH |
---|
| 204 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: f3_h2co3 !: 3D carbonic acid |
---|
| 205 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: f3_hco3 !: 3D bicarbonate |
---|
| 206 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: f3_co3 !: 3D carbonate |
---|
| 207 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: f3_omcal !: 3D omega calcite |
---|
| 208 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: f3_omarg !: 3D omega aragonite |
---|
| 209 | !! |
---|
| 210 | !! 2D fields of calcium carbonate compensation depth |
---|
| 211 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: f2_ccd_cal !: 2D calcite CCD depth |
---|
| 212 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: f2_ccd_arg !: 2D aragonite CCD depth |
---|
| 213 | !! |
---|
[10302] | 214 | !! 2D fields of pCO2 and fCO2 for observation operator |
---|
| 215 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: f2_pco2w !: 2D pCO2 |
---|
| 216 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: f2_fco2w !: 2D fCO2 |
---|
| 217 | !! |
---|
[5726] | 218 | !! 2D fields of organic and inorganic material sedimented on the seafloor |
---|
| 219 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_sed_n !: 2D organic nitrogen (before) |
---|
| 220 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_sed_n !: 2D organic nitrogen (now) |
---|
| 221 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_sed_n !: 2D organic nitrogen (after) |
---|
| 222 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_sed_fe !: 2D organic iron (before) |
---|
| 223 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_sed_fe !: 2D organic iron (now) |
---|
| 224 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_sed_fe !: 2D organic iron (after) |
---|
| 225 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_sed_si !: 2D inorganic silicon (before) |
---|
| 226 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_sed_si !: 2D inorganic silicon (now) |
---|
| 227 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_sed_si !: 2D inorganic silicon (after) |
---|
| 228 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_sed_c !: 2D organic carbon (before) |
---|
| 229 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_sed_c !: 2D organic carbon (now) |
---|
| 230 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_sed_c !: 2D organic carbon (after) |
---|
| 231 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_sed_ca !: 2D inorganic carbon (before) |
---|
| 232 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_sed_ca !: 2D inorganic carbon (now) |
---|
| 233 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_sed_ca !: 2D inorganic carbon (after) |
---|
[5841] | 234 | !! |
---|
| 235 | !! 2D fields of temporally averaged properties for DMS calculations (AXY, 07/07/15) |
---|
| 236 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_dms_chn !: 2D avg CHN (before) |
---|
| 237 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_chn !: 2D avg CHN (now) |
---|
| 238 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_chn !: 2D avg CHN (after) |
---|
| 239 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_dms_chd !: 2D avg CHD (before) |
---|
| 240 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_chd !: 2D avg CHD (now) |
---|
| 241 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_chd !: 2D avg CHD (after) |
---|
| 242 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_dms_mld !: 2D avg MLD (before) |
---|
| 243 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_mld !: 2D avg MLD (now) |
---|
| 244 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_mld !: 2D avg MLD (after) |
---|
| 245 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_dms_qsr !: 2D avg QSR (before) |
---|
| 246 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_qsr !: 2D avg QSR (now) |
---|
| 247 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_qsr !: 2D avg QSR (after) |
---|
| 248 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_dms_din !: 2D avg DIN (before) |
---|
| 249 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_din !: 2D avg DIN (now) |
---|
| 250 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_din !: 2D avg DIN (after) |
---|
[6715] | 251 | !! |
---|
[8074] | 252 | !! 2D fields needing to be knows at first tstp for coupling with atm - UKEMS(Jpalm,14-06-2016) |
---|
[6715] | 253 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_co2_flx !: 2D avg fx co2 (before) |
---|
| 254 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_co2_flx !: 2D avg fx co2 (now) |
---|
| 255 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_co2_flx !: 2D avg fx co2 (after) |
---|
[8132] | 256 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_dms_srf !: 2D avg sfr dms (before) |
---|
| 257 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_srf !: 2D avg sfr dms (now) |
---|
| 258 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_srf !: 2D avg srf dms (after) |
---|
| 259 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_chl_srf !: 2D avg srf chl (now) |
---|
[6715] | 260 | |
---|
[5726] | 261 | #endif |
---|
| 262 | |
---|
| 263 | !!---------------------------------------------------------------------- |
---|
| 264 | !! CCD parameter |
---|
| 265 | !!---------------------------------------------------------------------- |
---|
| 266 | !! |
---|
| 267 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ocal_ccd !: CCD depth |
---|
| 268 | |
---|
| 269 | !!---------------------------------------------------------------------- |
---|
| 270 | !! Dust parameters |
---|
| 271 | !!---------------------------------------------------------------------- |
---|
| 272 | !! |
---|
| 273 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: dust !: dust parameter 1 |
---|
[6810] | 274 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zirondep !! Fe deposition |
---|
[5726] | 275 | |
---|
| 276 | !!---------------------------------------------------------------------- |
---|
| 277 | !! River parameters |
---|
| 278 | !!---------------------------------------------------------------------- |
---|
| 279 | !! |
---|
| 280 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: riv_n !: riverine N |
---|
| 281 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: riv_si !: riverine Si |
---|
| 282 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: riv_c !: riverine C |
---|
| 283 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: riv_alk !: riverine alkalinity |
---|
| 284 | !! AXY (19/07/12): add this to permit river fluxes to be added below top box |
---|
| 285 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: friver_dep !: where river fluxes added |
---|
| 286 | |
---|
[8074] | 287 | #if defined key_roam |
---|
[5726] | 288 | !!---------------------------------------------------------------------- |
---|
[10302] | 289 | !! JPALM -- change hist_pco2 init |
---|
[8074] | 290 | !!---------------------------------------------------------------------- |
---|
| 291 | !! |
---|
[10302] | 292 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: hist_pco2 !: pCO2 |
---|
| 293 | INTEGER :: co2_rec |
---|
| 294 | REAL(wp) :: co2_yinit, co2_yend !: First and Last year read in the xCO2.atm file |
---|
| 295 | REAL(wp) :: xobs_xco2a !: Observed atmospheric xCO2, from namelist |
---|
| 296 | #endif |
---|
[8074] | 297 | |
---|
[10302] | 298 | !!---------------------------------------------------------------------- |
---|
| 299 | !! JPALM -- PI CO2 key |
---|
| 300 | !!---------------------------------------------------------------------- |
---|
| 301 | !! |
---|
| 302 | #if defined key_axy_pi_co2 |
---|
| 303 | LOGICAL , PUBLIC :: lk_pi_co2 = .TRUE. !: PI xCO2 used |
---|
| 304 | #else |
---|
| 305 | LOGICAL , PUBLIC :: lk_pi_co2 = .FALSE. !: PI xCO2 unused |
---|
[8074] | 306 | #endif |
---|
| 307 | |
---|
| 308 | !!---------------------------------------------------------------------- |
---|
[5726] | 309 | !! Optical parameters |
---|
| 310 | !!---------------------------------------------------------------------- |
---|
| 311 | !! |
---|
| 312 | REAL(wp) :: xkr0 !: water coefficient absorption in red (NAMELIST) |
---|
| 313 | REAL(wp) :: xkg0 !: water coefficient absorption in green (NAMELIST) |
---|
| 314 | REAL(wp) :: xkrp !: pigment coefficient absorption in red (NAMELIST) |
---|
| 315 | REAL(wp) :: xkgp !: pigment coefficient absorption in green (NAMELIST) |
---|
| 316 | REAL(wp) :: xlr !: exposant for pigment absorption in red (NAMELIST) |
---|
| 317 | REAL(wp) :: xlg !: exposant for pigment absorption in green (NAMELIST) |
---|
| 318 | REAL(wp) :: rpig !: chla/chla+phea ratio (NAMELIST) |
---|
| 319 | |
---|
| 320 | INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:) :: neln !: number of levels in the euphotic layer |
---|
| 321 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xze !: euphotic layer depth |
---|
| 322 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpar !: par (photosynthetic available radiation) |
---|
| 323 | |
---|
| 324 | !!---------------------------------------------------------------------- |
---|
| 325 | !! Sediment parameters |
---|
| 326 | !! |
---|
| 327 | !! AXY (16/01/12): these parameters were originally part of the pre- |
---|
| 328 | !! cursor model on which MEDUSA's code was grounded; |
---|
| 329 | !! they do not relate to the sediment/benthos submodel |
---|
| 330 | !! added as part of the ROAM project; they have only |
---|
| 331 | !! been retained because they are distributed through |
---|
| 332 | !! MEDUSA and require a proper clean-up to purge |
---|
| 333 | !!---------------------------------------------------------------------- |
---|
| 334 | !! |
---|
| 335 | REAL(wp) :: sedlam !: time coefficient of POC remineralization in sediments |
---|
| 336 | REAL(wp) :: sedlostpoc !: ??? |
---|
| 337 | REAL(wp) :: areacot !: ??? |
---|
| 338 | |
---|
| 339 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: dminl !: fraction of sinking POC released in sediments |
---|
| 340 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dmin3 !: fraction of sinking POC released at each level |
---|
| 341 | |
---|
| 342 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sedpocb !: mass of POC in sediments |
---|
| 343 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sedpocn !: mass of POC in sediments |
---|
| 344 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sedpoca !: mass of POC in sediments |
---|
| 345 | |
---|
| 346 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: fbodf !: rapid sinking particles |
---|
| 347 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: fbods !: rapid sinking particles |
---|
| 348 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: fbodn !: rapid sinking particles |
---|
| 349 | |
---|
| 350 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ffln !: |
---|
| 351 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fflf !: |
---|
| 352 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ffls !: |
---|
| 353 | |
---|
| 354 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: cmask !: ??? |
---|
| 355 | |
---|
[10302] | 356 | !!---------------------------------------------------------------------- |
---|
| 357 | !! Parameters required for ocean colour assimilation |
---|
| 358 | !!---------------------------------------------------------------------- |
---|
| 359 | !! |
---|
| 360 | LOGICAL :: ln_foam_medusa !: Flag to calculate and save diagnostics |
---|
| 361 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: pgrow_avg !: Mixed layer average phytoplankton growth |
---|
| 362 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ploss_avg !: Mixed layer average phytoplankton loss |
---|
| 363 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: phyt_avg !: Mixed layer average phytoplankton |
---|
[13097] | 364 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: pgrow_avg_3d !: Mixed layer average phytoplankton growth |
---|
| 365 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ploss_avg_3d !: Mixed layer average phytoplankton loss |
---|
| 366 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: phyt_avg_3d !: Mixed layer average phytoplankton |
---|
[10302] | 367 | REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: mld_max !: Maximum mixed layer depth |
---|
| 368 | !! |
---|
| 369 | |
---|
[5726] | 370 | !!---------------------------------------------------------------------- |
---|
| 371 | !! NEMO/TOP 3.3 , NEMO Consortium (2010) |
---|
| 372 | !! $Id$ |
---|
| 373 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
| 374 | !!---------------------------------------------------------------------- |
---|
| 375 | CONTAINS |
---|
| 376 | |
---|
| 377 | INTEGER FUNCTION sms_medusa_alloc() |
---|
| 378 | !!---------------------------------------------------------------------- |
---|
| 379 | !! *** ROUTINE sms_medusa_alloc *** |
---|
| 380 | !!---------------------------------------------------------------------- |
---|
| 381 | USE lib_mpp , ONLY: ctl_warn |
---|
[10302] | 382 | INTEGER :: ierr(9) ! Local variables |
---|
[5726] | 383 | !!---------------------------------------------------------------------- |
---|
| 384 | ierr(:) = 0 |
---|
| 385 | ! |
---|
| 386 | #if defined key_medusa |
---|
| 387 | !* depth-dependent damping coefficient |
---|
| 388 | ALLOCATE( remdmp(jpk,jp_medusa), STAT=ierr(1) ) |
---|
| 389 | # if defined key_roam |
---|
| 390 | !* 2D and 3D fields of carbonate system parameters |
---|
| 391 | ALLOCATE( f2_ccd_cal(jpi,jpj) , f2_ccd_arg(jpi,jpj) , & |
---|
[10302] | 392 | f2_pco2w(jpi,jpj) , f2_fco2w(jpi,jpj) , & |
---|
[5726] | 393 | & f3_pH(jpi,jpj,jpk) , f3_h2co3(jpi,jpj,jpk), & |
---|
| 394 | & f3_hco3(jpi,jpj,jpk) , f3_co3(jpi,jpj,jpk) , & |
---|
| 395 | & f3_omcal(jpi,jpj,jpk), f3_omarg(jpi,jpj,jpk), STAT=ierr(2) ) |
---|
| 396 | !* 2D fields of organic and inorganic material sedimented on the seafloor |
---|
| 397 | ALLOCATE( zb_sed_n(jpi,jpj) , zn_sed_n(jpi,jpj) , & |
---|
| 398 | & za_sed_n(jpi,jpj) , & |
---|
| 399 | & zb_sed_fe(jpi,jpj) , zn_sed_fe(jpi,jpj) , & |
---|
| 400 | & za_sed_fe(jpi,jpj) , & |
---|
| 401 | & zb_sed_si(jpi,jpj) , zn_sed_si(jpi,jpj) , & |
---|
| 402 | & za_sed_si(jpi,jpj) , & |
---|
| 403 | & zb_sed_c(jpi,jpj) , zn_sed_c(jpi,jpj) , & |
---|
| 404 | & za_sed_c(jpi,jpj) , & |
---|
| 405 | & zb_sed_ca(jpi,jpj) , zn_sed_ca(jpi,jpj) , & |
---|
| 406 | & za_sed_ca(jpi,jpj) , STAT=ierr(3) ) |
---|
[5841] | 407 | !* 2D fields of temporally averaged properties for DMS calculations (AXY, 07/07/15) |
---|
| 408 | ALLOCATE( zb_dms_chn(jpi,jpj) , zn_dms_chn(jpi,jpj) , & |
---|
| 409 | & za_dms_chn(jpi,jpj) , & |
---|
| 410 | & zb_dms_chd(jpi,jpj) , zn_dms_chd(jpi,jpj) , & |
---|
| 411 | & za_dms_chd(jpi,jpj) , & |
---|
| 412 | & zb_dms_mld(jpi,jpj) , zn_dms_mld(jpi,jpj) , & |
---|
| 413 | & za_dms_mld(jpi,jpj) , & |
---|
| 414 | & zb_dms_qsr(jpi,jpj) , zn_dms_qsr(jpi,jpj) , & |
---|
| 415 | & za_dms_qsr(jpi,jpj) , & |
---|
| 416 | & zb_dms_din(jpi,jpj) , zn_dms_din(jpi,jpj) , & |
---|
| 417 | & za_dms_din(jpi,jpj) , STAT=ierr(4) ) |
---|
[6715] | 418 | !* 2D fields needing to be knows at first tstp for coupling with atm - |
---|
[8074] | 419 | !UKEMSi (Jpalm,14-06-2016) |
---|
[6715] | 420 | ALLOCATE( zb_co2_flx(jpi,jpj) , zn_co2_flx(jpi,jpj) , & |
---|
| 421 | & za_co2_flx(jpi,jpj) , & |
---|
| 422 | & zb_dms_srf(jpi,jpj) , zn_dms_srf(jpi,jpj) , & |
---|
[8132] | 423 | & za_dms_srf(jpi,jpj) , zn_chl_srf(jpi,jpj) , STAT=ierr(5) ) |
---|
[5726] | 424 | # endif |
---|
| 425 | !* 2D fields of miscellaneous parameters |
---|
| 426 | ALLOCATE( ocal_ccd(jpi,jpj) , dust(jpi,jpj) , & |
---|
[6810] | 427 | & zirondep(jpi,jpj) , & |
---|
[6466] | 428 | & riv_n(jpi,jpj) , & |
---|
[5726] | 429 | & riv_si(jpi,jpj) , riv_c(jpi,jpj) , & |
---|
[6715] | 430 | & riv_alk(jpi,jpj) , friver_dep(jpk,jpk) , STAT=ierr(6) ) |
---|
[5726] | 431 | !* 2D and 3D fields of light parameters |
---|
| 432 | ALLOCATE( neln(jpi,jpj) , xze(jpi,jpj) , & |
---|
[6715] | 433 | & xpar(jpi,jpj,jpk) , STAT=ierr(7) ) |
---|
[5726] | 434 | !* 2D and 3D fields of sediment-associated parameters |
---|
| 435 | ALLOCATE( dminl(jpi,jpj) , dmin3(jpi,jpj,jpk) , & |
---|
| 436 | & sedpocb(jpi,jpj) , sedpocn(jpi,jpj) , & |
---|
| 437 | & sedpoca(jpi,jpj) , fbodn(jpi,jpj) , & |
---|
| 438 | & fbodf(jpi,jpj) , fbods(jpi,jpj) , & |
---|
| 439 | & ffln(jpi,jpj,jpk) , fflf(jpi,jpj,jpk) , & |
---|
[6715] | 440 | & ffls(jpi,jpj,jpk) , cmask(jpi,jpj) , STAT=ierr(8) ) |
---|
[10302] | 441 | !* Fields for ocean colour data assimilation |
---|
| 442 | ALLOCATE( pgrow_avg(jpi,jpj) , ploss_avg(jpi,jpj) , & |
---|
[13097] | 443 | & pgrow_avg_3d(jpi,jpj,jpk) , ploss_avg_3d(jpi,jpj,jpk) , & |
---|
| 444 | & phyt_avg_3d(jpi,jpj,jpk) , & |
---|
[10302] | 445 | & phyt_avg(jpi,jpj) , mld_max(jpi,jpj) , STAT=ierr(9) ) |
---|
[5726] | 446 | #endif |
---|
| 447 | ! |
---|
| 448 | sms_medusa_alloc = MAXVAL( ierr ) |
---|
| 449 | ! |
---|
| 450 | IF( sms_medusa_alloc /= 0 ) CALL ctl_warn('sms_medusa_alloc: failed to allocate arrays') |
---|
| 451 | ! |
---|
| 452 | END FUNCTION sms_medusa_alloc |
---|
| 453 | |
---|
| 454 | #else |
---|
| 455 | !!---------------------------------------------------------------------- |
---|
| 456 | !! Empty module : NO MEDUSA model |
---|
| 457 | !!---------------------------------------------------------------------- |
---|
| 458 | #endif |
---|
| 459 | |
---|
| 460 | !!====================================================================== |
---|
| 461 | END MODULE sms_medusa |
---|