Changeset 10345 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/SED/sed.F90
- Timestamp:
- 2018-11-21T11:25:53+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/SED/sed.F90
r9124 r10345 7 7 !! ! 06-12 (C. Ethe) Orignal 8 8 !!---------------------------------------------------------------------- 9 #if defined key_sed10 !!----------------------------------------------------------------------11 !! 'key_sed' Sediment12 !!----------------------------------------------------------------------13 9 USE par_sed 10 USE oce_sed 14 11 USE in_out_manager 12 15 13 16 14 IMPLICIT NONE 17 15 PUBLIC 18 16 19 PUBLIC sed_alloc 20 21 USE dom_oce , ONLY : nidom => nidom !: 22 USE dom_oce , ONLY : glamt => glamt !: longitude of t-point (degre) 23 USE dom_oce , ONLY : gphit => gphit !: latitude of t-point (degre) 24 USE dom_oce , ONLY : e3t_1d => e3t_1d !: reference depth of t-points (m) 25 USE dom_oce , ONLY : mbkt => mbkt !: vertical index of the bottom last T- ocean level 26 USE dom_oce , ONLY : tmask => tmask !: land/ocean mask at t-points 27 USE dom_oce , ONLY : rdt => rdt !: time step for the dynamics 28 USE dom_oce , ONLY : nyear => nyear !: Current year 29 USE dom_oce , ONLY : nmonth => nmonth !: Current month 30 USE dom_oce , ONLY : nday => nday !: Current day 31 USE dom_oce , ONLY : ndastp => ndastp !: time step date in year/month/day aammjj 32 USE dom_oce , ONLY : nday_year => nday_year !: curent day counted from jan 1st of the current year 33 USE dom_oce , ONLY : adatrj => adatrj !: number of elapsed days since the begining of the run 34 ! !: it is the accumulated duration of previous runs 35 ! !: that may have been run with different time steps. 36 37 #if ! defined key_sed_off 38 39 USE oce , ONLY : tsn => tsn !: pot. temperature (celsius) and salinity (psu) 40 41 USE trc , ONLY : trn => trc !: tracer 42 USE trc , ONLY : nwritetrc => nwritetrc !: outputs frequency of tracer model 43 44 USE p4zsink , ONLY : sinking => sinking !: sinking flux for POC 45 USE p4zsink , ONLY : sinking2 => sinking2 !: sinking flux for GOC 46 USE p4zsink , ONLY : sinkcal => sinkcal !: sinking flux for calcite 47 USE p4zsink , ONLY : sinksil => sinksil !: sinking flux for opal ( dsi ) 48 49 USE sms_pisces, ONLY : akb3 => akb3 !: Chemical constants 50 USE sms_pisces, ONLY : ak13 => ak13 !: Chemical constants 51 USE sms_pisces, ONLY : ak23 => ak23 !: Chemical constants 52 USE sms_pisces, ONLY : akw3 => akw3 !: Chemical constants 53 USE sms_pisces, ONLY : aksp => aksp !: Chemical constants 54 USE sms_pisces, ONLY : borat => borat !: Chemical constants ( borat ) 55 56 #endif 57 17 PUBLIC sed_alloc 58 18 59 19 !! Namelist 60 REAL(wp), PUBLIC, DIMENSION(5) :: reac !: reactivity rc in [l.mol-1.s-1]61 20 REAL(wp), PUBLIC :: reac_sil !: reactivity of silicate in [l.mol-1.s-1] 62 21 REAL(wp), PUBLIC :: reac_clay !: reactivity of clay in [l.mol-1.s-1] 63 REAL(wp), PUBLIC :: reac_poc !: reactivity of poc in [l.mol-1.s-1] 64 REAL(wp), PUBLIC :: reac_no3 !: reactivity of no3 in [l.mol-1.s-1] 22 REAL(wp), PUBLIC :: reac_ligc !: reactivity of Ligands [l.mol-1.s-1] 23 REAL(wp), PUBLIC :: reac_pocl !: reactivity of pocl in [s-1] 24 REAL(wp), PUBLIC :: reac_pocs !: reactivity of pocs in [s-1] 25 REAL(wp), PUBLIC :: reac_pocr !: reactivity of pocr in [s-1] 26 REAL(wp), PUBLIC :: reac_nh4 !: reactivity of NH4 in [l.mol-1.s-1] 27 REAL(wp), PUBLIC :: reac_h2s !: reactivity of ODU in [l.mol-1.s-1] 28 REAL(wp), PUBLIC :: reac_fe2 !: reactivity of Fe2+ in [l.mol-1.s-1] 29 REAL(wp), PUBLIC :: reac_feh2s !: reactivity of Fe2+ in [l.mol-1.s-1] 30 REAL(wp), PUBLIC :: reac_fes !: reactivity of Fe with H2S in [l.mol-1.s-1] 31 REAL(wp), PUBLIC :: reac_feso !: reactivity of FeS with O2 in [l.mol-1.s-1] 65 32 REAL(wp), PUBLIC :: reac_cal !: reactivity of cal in [l.mol-1.s-1] 66 REAL(wp), PUBLIC :: sat_sil !: saturation concentration for silicate in [mol.l-1]67 REAL(wp), PUBLIC :: sat_clay !: saturation concentration for clay in [mol.l-1]33 REAL(wp), PUBLIC :: adsnh4 !: adsorption coefficient of NH4 34 REAL(wp), PUBLIC :: ratligc !: C/L ratio in POC 68 35 REAL(wp), PUBLIC :: so2ut 69 36 REAL(wp), PUBLIC :: srno3 70 37 REAL(wp), PUBLIC :: spo4r 71 38 REAL(wp), PUBLIC :: srDnit 72 REAL(wp), PUBLIC :: sthro2 !: threshold O2 concen. in [mol.l-1]73 REAL(wp), PUBLIC :: pdb = 0.0112372 !: 13C/12C in PD Belemnite74 REAL(wp), PUBLIC :: rc13P = 0.980 !: 13C/12C in POC = rc13P*PDB75 REAL(wp), PUBLIC :: rc13Ca = 1.001 !: 13C/12C in CaCO3 = rc13Ca*PDB76 39 REAL(wp), PUBLIC :: dtsed !: sedimentation time step 77 REAL(wp), PUBLIC :: db !: bioturb coefficient in [cm2.s-1] 78 40 REAL(wp), PUBLIC :: dtsed2 !: sedimentation time step 79 41 INTEGER , PUBLIC :: nitsed000 80 42 INTEGER , PUBLIC :: nitsedend 81 INTEGER , PUBLIC :: nwrised 82 INTEGER , PUBLIC :: nfreq 83 REAL(wp), PUBLIC :: dens !: density of solid material 43 INTEGER, PUBLIC :: nrseddt 44 REAL , PUBLIC :: sedmask 45 REAL(wp), PUBLIC :: denssol !: density of solid material 46 INTEGER , PUBLIC :: numrsr, numrsw !: logical unit for sed restart (read and write) 47 LOGICAL , PUBLIC :: lrst_sed !: logical to control the trc restart write 48 LOGICAL , PUBLIC :: ln_rst_sed = .TRUE. !: initialisation from a restart file or not 49 LOGICAL , PUBLIC :: ln_btbz = .FALSE. !: Depth variation of the bioturbation coefficient 50 LOGICAL , PUBLIC :: ln_irrig = .FALSE. !: iActivation of the bioirrigation 51 LOGICAL , PUBLIC :: ln_sed_2way = .FALSE. !: 2 way coupling with PISCES 52 LOGICAL , PUBLIC :: ln_sediment_offline = .FALSE. !: Offline mode for sediment module 53 INTEGER , PUBLIC :: nn_rstsed !: control of the time step ( 0 or 1 ) for pass. tr. 54 INTEGER , PUBLIC :: nn_dtsed = 1 !: frequency of step on passive tracers 55 CHARACTER(len = 80) , PUBLIC :: cn_sedrst_in !: suffix of pass. tracer restart name (input) 56 CHARACTER(len = 256), PUBLIC :: cn_sedrst_indir !: restart input directory 57 CHARACTER(len = 80) , PUBLIC :: cn_sedrst_out !: suffix of pass. tracer restart name (output) 58 CHARACTER(len = 256), PUBLIC :: cn_sedrst_outdir !: restart output directory 59 84 60 ! 85 61 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: pwcp !: pore water sediment data at given time-step … … 87 63 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: solcp !: solid sediment data at given time-step 88 64 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: solcp0 !: solid sediment data at initial time 65 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: trc_dta 66 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: diff 89 67 90 68 !! * Shared module variables … … 102 80 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: press !: pressure 103 81 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: raintg !: total massic flux rained in each cell (sum of sol. comp.) 82 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: fecratio !: Fe/C ratio in falling particles to the sediments 104 83 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: dzdep !: total thickness of solid material rained [cm] in each cell 84 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: zkbot !: total thickness of solid material rained [cm] in each cell 85 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: wacc !: total thickness of solid material rained [cm] in each cell 105 86 ! 106 87 REAL(wp), PUBLIC, DIMENSION(:,: ), ALLOCATABLE :: hipor !: [h+] in mol/kg*densSW … … 127 108 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: aksis 128 109 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: aksps 110 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: sieqs 111 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: aks3s 112 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: akf3s 113 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: sulfats 114 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: fluorids 129 115 130 116 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: mol_wgt !: molecular weight of solid sediment data … … 133 119 !! Geometry 134 120 INTEGER , PUBLIC, SAVE :: jpoce, indoce !: Ocean points ( number/indices ) 135 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: iarroce !: Computation of 1D array of sediments points121 INTEGER , PUBLIC, DIMENSION(: ), ALLOCATABLE :: iarroce !: Computation of 1D array of sediments points 136 122 REAL(wp), PUBLIC, DIMENSION(:,: ), ALLOCATABLE :: epkbot !: ocean bottom layer thickness 123 REAL(wp), PUBLIC, DIMENSION(:,: ), ALLOCATABLE :: gdepbot !: Depth of the sediment 137 124 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: dzkbot !: ocean bottom layer thickness in meters 138 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: tmasksed !: sediment mask139 REAL(wp), PUBLIC, DIMENSION(:,: ), ALLOCATABLE :: sbathy !: bathymetry140 125 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: dz !: sediment layers thickness 141 126 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: por !: porosity profile 142 127 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: por1 !: 1-por 143 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: profsed !: depth of middle of each layer144 128 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: volw !: volume of pore water cell fraction 145 129 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: vols !: volume of solid cell fraction 146 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: diff !: diffusion ceofficient 130 REAL(wp), PUBLIC, DIMENSION(:,: ), ALLOCATABLE :: db !: bioturbation ceofficient 131 REAL(wp), PUBLIC, DIMENSION(:,: ), ALLOCATABLE :: irrig !: bioturbation ceofficient 147 132 REAL(wp), PUBLIC, DIMENSION(: ), ALLOCATABLE :: rdtsed !: sediment model time-step 133 REAL(wp), PUBLIC, DIMENSION(:,: ), ALLOCATABLE :: sedligand 148 134 REAL(wp) :: dens !: density of solid material 149 135 !! Inputs / Outputs … … 171 157 !!------------------------------------------------------------------- 172 158 ! 173 ALLOCATE( trc_dta(jpi,jpj,jdta) , & 174 & epkbot(jpi,jpj), sbathy(jpi,jpj) , & 175 & tmasksed(jpi,jpj,jpksed) , & 176 & dz(jpksed) , por(jpksed) , por1(jpksed), profsed(jpksed) , & 177 & volw(jpksed), vols(jpksed), diff(jpksed), rdtsed(jpksed) , & 159 ALLOCATE( trc_data(jpi,jpj,jpdta) , & 160 & epkbot(jpi,jpj), gdepbot(jpi,jpj) , & 161 & dz(jpksed) , por(jpksed) , por1(jpksed) , & 162 & volw(jpksed), vols(jpksed), rdtsed(jpksed) , & 178 163 & trcsedi (jpi,jpj,jpksed,jptrased) , & 179 164 & flxsedi3d(jpi,jpj,jpksed,jpdia3dsed) , & 180 & flxsedi2d(jpi,jpj,jp ksed,jpdia2dsed), &165 & flxsedi2d(jpi,jpj,jpdia2dsed) , & 181 166 & mol_wgt(jpsol), STAT=sed_alloc ) 182 167 … … 185 170 END FUNCTION sed_alloc 186 171 187 #else188 !!======================================================================189 !! No Sediment model190 !!======================================================================191 #endif192 193 172 END MODULE sed
Note: See TracChangeset
for help on using the changeset viewer.