MODULE par_pisces !!====================================================================== !! *** par_pisces *** !! TOP : set the PISCES parameters !!====================================================================== !! History : 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture !!---------------------------------------------------------------------- !! NEMO/TOP 3.3 , NEMO Consortium (2010) !! $Id$ !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- IMPLICIT NONE #if defined key_pisces_reduced !!--------------------------------------------------------------------- !! 'key_pisces_reduced' : LOBSTER bio-model !!--------------------------------------------------------------------- LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag INTEGER, PUBLIC, PARAMETER :: nn_p4z = 1 !: p4z flag INTEGER, PUBLIC, PARAMETER :: jp_pisces = 6 !: number of passive tracers INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 19 !: additional 2d output INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 3 !: additional 3d output INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 17 !: number of sms trends for PISCES ! assign an index in trc arrays for each LOBSTER prognostic variables INTEGER, PUBLIC, PARAMETER :: jpdet = 1 !: detritus [mmoleN/m3] INTEGER, PUBLIC, PARAMETER :: jpzoo = 2 !: zooplancton concentration [mmoleN/m3] INTEGER, PUBLIC, PARAMETER :: jpphy = 3 !: phytoplancton concentration [mmoleN/m3] INTEGER, PUBLIC, PARAMETER :: jpno3 = 4 !: nitrate concentration [mmoleN/m3] INTEGER, PUBLIC, PARAMETER :: jpnh4 = 5 !: ammonium concentration [mmoleN/m3] INTEGER, PUBLIC, PARAMETER :: jpdom = 6 !: dissolved organic matter [mmoleN/m3] ! productive layer depth INTEGER, PUBLIC, PARAMETER :: jpkb = 12 !: first vertical layers where biology is active INTEGER, PUBLIC, PARAMETER :: jpkbm1 = jpkb - 1 !: first vertical layers where biology is active #elif defined key_pisces !!--------------------------------------------------------------------- !! 'key_pisces' PISCES bio-model + ??? !!--------------------------------------------------------------------- LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag INTEGER, PUBLIC, PARAMETER :: nn_p4z = 2 !: p4z flag # if defined key_ligand LOGICAL, PUBLIC, PARAMETER :: lk_ligand = .TRUE. !: Kriest flag INTEGER, PUBLIC, PARAMETER :: jp_ligand = 2 INTEGER, PUBLIC, PARAMETER :: jp_ligand_diag = 0 # else LOGICAL, PUBLIC, PARAMETER :: lk_ligand = .FALSE. !: Kriest flag INTEGER, PUBLIC, PARAMETER :: jp_ligand = 0 INTEGER, PUBLIC, PARAMETER :: jp_ligand_diag = 0 # endif INTEGER, PUBLIC, PARAMETER :: jp_pisces = 24 + jp_ligand !: number of passive tracers INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 13 !: additional 2d output INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 13 + jp_ligand_diag !: additional 3d output INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 1 !: number of sms trends for PISCES ! assign an index in trc arrays for each LOBSTER prognostic variables ! WARNING: be carefull about the order when reading the restart ! !!gm this warning should be obsolet with IOM INTEGER, PUBLIC, PARAMETER :: jpdic = 1 !: dissolved inoganic carbon concentration INTEGER, PUBLIC, PARAMETER :: jptal = 2 !: total alkalinity INTEGER, PUBLIC, PARAMETER :: jpoxy = 3 !: oxygen carbon concentration INTEGER, PUBLIC, PARAMETER :: jpcal = 4 !: calcite concentration INTEGER, PUBLIC, PARAMETER :: jppo4 = 5 !: phosphate concentration INTEGER, PUBLIC, PARAMETER :: jppoc = 6 !: small particulate organic phosphate concentration INTEGER, PUBLIC, PARAMETER :: jpsil = 7 !: silicate concentration INTEGER, PUBLIC, PARAMETER :: jpphy = 8 !: phytoplancton concentration INTEGER, PUBLIC, PARAMETER :: jpzoo = 9 !: zooplancton concentration INTEGER, PUBLIC, PARAMETER :: jpdoc = 10 !: dissolved organic carbon concentration INTEGER, PUBLIC, PARAMETER :: jpdia = 11 !: Diatoms Concentration INTEGER, PUBLIC, PARAMETER :: jpmes = 12 !: Mesozooplankton Concentration INTEGER, PUBLIC, PARAMETER :: jpdsi = 13 !: (big) Silicate Concentration INTEGER, PUBLIC, PARAMETER :: jpfer = 14 !: Iron Concentration INTEGER, PUBLIC, PARAMETER :: jpsfe = 15 !: number of particulate organic phosphate concentration INTEGER, PUBLIC, PARAMETER :: jpdfe = 16 !: Diatoms iron Concentration INTEGER, PUBLIC, PARAMETER :: jpgsi = 17 !: Diatoms Silicate Concentration INTEGER, PUBLIC, PARAMETER :: jpnfe = 18 !: Nano iron Concentration INTEGER, PUBLIC, PARAMETER :: jpnch = 19 !: Nano Chlorophyll Concentration INTEGER, PUBLIC, PARAMETER :: jpdch = 20 !: Diatoms Chlorophyll Concentration INTEGER, PUBLIC, PARAMETER :: jpno3 = 21 !: Nitrates Concentration INTEGER, PUBLIC, PARAMETER :: jpnh4 = 22 !: Ammonium Concentration INTEGER, PUBLIC, PARAMETER :: jpgoc = 23 !: Big OM particles Concentration INTEGER, PUBLIC, PARAMETER :: jpbfe = 24 !: Big iron particles Concentration # if defined key_ligand INTEGER, PUBLIC, PARAMETER :: jplgw = 24 + 1 !: Weak Ligands INTEGER, PUBLIC, PARAMETER :: jpfep = 24 + 2 !: Fe nanoparticle # endif #elif defined key_pisces_quota !!--------------------------------------------------------------------- !! 'key_pisces' PISCES bio-model + ??? !!--------------------------------------------------------------------- LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag INTEGER, PUBLIC, PARAMETER :: nn_p4z = 3 !: p4z flag # if defined key_ligand LOGICAL, PUBLIC, PARAMETER :: lk_ligand = .TRUE. !: Kriest flag INTEGER, PUBLIC, PARAMETER :: jp_ligand = 2 INTEGER, PUBLIC, PARAMETER :: jp_ligand_diag = 0 # else LOGICAL, PUBLIC, PARAMETER :: lk_ligand = .FALSE. !: Kriest flag INTEGER, PUBLIC, PARAMETER :: jp_ligand = 0 INTEGER, PUBLIC, PARAMETER :: jp_ligand_diag = 0 # endif INTEGER, PUBLIC, PARAMETER :: jp_pisces = 39 + jp_ligand !: number of passive tracers INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 13 !: additional 2d output INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 20 + jp_ligand_diag !: additional 3d output INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 1 !: number of sms trends for PISCES ! assign an index in trc arrays for each LOBSTER prognostic variables ! WARNING: be carefull about the order when reading the restart ! !!gm this warning should be obsolet with IOM INTEGER, PUBLIC, PARAMETER :: jpdic = 1 !: dissolved inoganic carbon concentration INTEGER, PUBLIC, PARAMETER :: jptal = 2 !: total alkalinity INTEGER, PUBLIC, PARAMETER :: jpoxy = 3 !: oxygen carbon concentration INTEGER, PUBLIC, PARAMETER :: jpcal = 4 !: calcite concentration INTEGER, PUBLIC, PARAMETER :: jppo4 = 5 !: phosphate concentration INTEGER, PUBLIC, PARAMETER :: jppoc = 6 !: small particulate organic phosphate concentration INTEGER, PUBLIC, PARAMETER :: jpsil = 7 !: silicate concentration INTEGER, PUBLIC, PARAMETER :: jpphy = 8 !: phytoplancton concentration INTEGER, PUBLIC, PARAMETER :: jpzoo = 9 !: zooplancton concentration INTEGER, PUBLIC, PARAMETER :: jpdoc = 10 !: dissolved organic carbon concentration INTEGER, PUBLIC, PARAMETER :: jpdia = 11 !: Diatoms Concentration INTEGER, PUBLIC, PARAMETER :: jpmes = 12 !: Mesozooplankton Concentration INTEGER, PUBLIC, PARAMETER :: jpdsi = 13 !: (big) Silicate Concentration INTEGER, PUBLIC, PARAMETER :: jpfer = 14 !: Iron Concentration INTEGER, PUBLIC, PARAMETER :: jpsfe = 15 !: number of particulate organic phosphate concentration INTEGER, PUBLIC, PARAMETER :: jpdfe = 16 !: Diatoms iron Concentration INTEGER, PUBLIC, PARAMETER :: jpgsi = 17 !: Diatoms Silicate Concentration INTEGER, PUBLIC, PARAMETER :: jpnfe = 18 !: Nano iron Concentration INTEGER, PUBLIC, PARAMETER :: jpnch = 19 !: Nano Chlorophyll Concentration INTEGER, PUBLIC, PARAMETER :: jpdch = 20 !: Diatoms Chlorophyll Concentration INTEGER, PUBLIC, PARAMETER :: jpno3 = 21 !: Nitrates Concentration INTEGER, PUBLIC, PARAMETER :: jpnh4 = 22 !: Ammonium Concentration INTEGER, PUBLIC, PARAMETER :: jpdon = 23 !: dissolved organic nitrogen concentration INTEGER, PUBLIC, PARAMETER :: jpdop = 24 !: dissolved organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jppon = 25 !: small particulate organic nitrogen concentration INTEGER, PUBLIC, PARAMETER :: jppop = 26 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jpnph = 27 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jppph = 28 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jpndi = 29 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jppdi = 30 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jppic = 31 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jpnpi = 32 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jpppi = 33 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jppfe = 34 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jppch = 35 !: small particulate organic phosphorus concentration INTEGER, PUBLIC, PARAMETER :: jpgoc = 36 !: Big carbon particles Concentration INTEGER, PUBLIC, PARAMETER :: jpgon = 37 !: Big nitrogen particles Concentration INTEGER, PUBLIC, PARAMETER :: jpgop = 38 !: Big phosphorus particles Concentration INTEGER, PUBLIC, PARAMETER :: jpbfe = 39 !: Big iron particles Concentration # if defined key_ligand INTEGER, PUBLIC, PARAMETER :: jplgw = 39 + 1 !: Weak Ligands INTEGER, PUBLIC, PARAMETER :: jpfep = 39 + 2 !: Fe nanoparticle # endif #else !!--------------------------------------------------------------------- !! Default No CFC geochemical model !!--------------------------------------------------------------------- LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .FALSE. !: PISCES flag INTEGER, PUBLIC, PARAMETER :: nn_p4z = 0 !: p4z flag INTEGER, PUBLIC, PARAMETER :: jp_pisces = 0 !: No CFC tracers INTEGER, PUBLIC, PARAMETER :: jp_pisces_2d = 0 !: No CFC additional 2d output arrays INTEGER, PUBLIC, PARAMETER :: jp_pisces_3d = 0 !: No CFC additional 3d output arrays INTEGER, PUBLIC, PARAMETER :: jp_pisces_trd = 0 !: number of sms trends for PISCES #endif ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) INTEGER, PUBLIC, PARAMETER :: jp_pcs0 = 1 !: First index of PISCES tracers INTEGER, PUBLIC, PARAMETER :: jp_pcs1 = jp_pisces !: Last index of PISCES tracers INTEGER, PUBLIC, PARAMETER :: jp_pcs0_2d = 1 !: First index of 2D diag INTEGER, PUBLIC, PARAMETER :: jp_pcs1_2d = jp_pisces_2d !: Last index of 2D diag INTEGER, PUBLIC, PARAMETER :: jp_pcs0_3d = 1 !: First index of 3D diag INTEGER, PUBLIC, PARAMETER :: jp_pcs1_3d = jp_pisces_3d !: Last index of 3d diag INTEGER, PUBLIC, PARAMETER :: jp_pcs0_trd = 1 !: First index of bio diag INTEGER, PUBLIC, PARAMETER :: jp_pcs1_trd = jp_pisces_trd !: Last index of bio diag !!====================================================================== END MODULE par_pisces