- Timestamp:
- 2021-12-03T20:32:50+01:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14318_RK3_stage1
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14318_RK3_stage1
- Property svn:externals
-
old new 9 9 10 10 # SETTE 11 ^/utils/CI/sette@14244 sette 11 ^/utils/CI/sette@HEAD sette 12
-
- Property svn:externals
-
NEMO/branches/2021/dev_r14318_RK3_stage1/src/TOP/PISCES/sms_pisces.F90
r12377 r15574 2 2 !!---------------------------------------------------------------------- 3 3 !! *** sms_pisces.F90 *** 4 !! TOP : PISCES Source Minus Sink variables 4 !! TOP : PISCES Source Minus Sink variables are declared and allocated 5 5 !!---------------------------------------------------------------------- 6 6 !! History : 1.0 ! 2000-02 (O. Aumont) original code … … 17 17 INTEGER :: numonp = -1 !! Logical unit for namelist pisces output 18 18 19 ! !: PISCES : silicon dependant half saturation20 21 19 !!* Model used 22 20 LOGICAL :: ln_p2z !: Flag to use LOBSTER model … … 27 25 28 26 !!* Time variables 29 INTEGER :: nrdttrc !: ??? 30 REAL(wp) :: rfact , rfactr !: ??? 31 REAL(wp) :: rfact2, rfact2r !: ??? 32 REAL(wp) :: xstep !: Time step duration for biology 33 REAL(wp) :: ryyss !: number of seconds per year 34 REAL(wp) :: r1_ryyss !: inverse number of seconds per year 35 27 INTEGER :: nrdttrc !: ??? 28 REAL(wp) :: rfact , rfactr !: time step duration (in seconds) 29 REAL(wp) :: rfact2, rfact2r !: time step duration (in seconds) when timesplitting is activated for PISCES 30 REAL(wp) :: xstep !: Time step duration for biology 31 REAL(wp) :: ryyss !: number of seconds per year 32 REAL(wp) :: r1_ryyss !: inverse number of seconds per year 36 33 37 34 !!* Biological parameters 38 REAL(wp) :: rno3 !: ??? 39 REAL(wp) :: o2ut !: ??? 40 REAL(wp) :: po4r !: ??? 41 REAL(wp) :: rdenit !: ??? 42 REAL(wp) :: rdenita !: ??? 43 REAL(wp) :: o2nit !: ??? 44 REAL(wp) :: wsbio, wsbio2 !: ??? 45 REAL(wp) :: wsbio2max !: ??? 46 REAL(wp) :: wsbio2scale !: ??? 47 REAL(wp) :: xkmort !: ??? 48 REAL(wp) :: ferat3 !: ??? 49 REAL(wp) :: ldocp !: ??? 50 REAL(wp) :: ldocz !: ??? 51 REAL(wp) :: lthet !: ??? 52 REAL(wp) :: no3rat3 !: ??? 53 REAL(wp) :: po4rat3 !: ??? 54 35 REAL(wp) :: rno3 !: C/N stoichiometric ratio 36 REAL(wp) :: o2ut !: O2/N stoichiometric ratio for ammonification 37 REAL(wp) :: po4r !: C/P stoichiometric ratio 38 REAL(wp) :: rdenit !: C/N ratio for denitrification 39 REAL(wp) :: rdenita !: C/N ratio for denitrification 40 REAL(wp) :: o2nit !: O2/N ratio for nitrification 41 REAL(wp) :: wsbio, wsbio2 !: Sinking speeds of particles 42 REAL(wp) :: wsbio2max !: Maximum sinking speed of the largest particles 43 REAL(wp) :: wsbio2scale !: Length scale for the variations of wsbio2 44 REAL(wp) :: oxymin !: half saturation constant for anoxia 45 REAL(wp) :: xkmort !: Mortality half-saturation constant 46 REAL(wp) :: feratz !: Fe/C in microzooplankton 47 REAL(wp) :: feratm !: Fe/C in mesozooplankton 48 REAL(wp) :: ldocp !: Ligand production ratio during PP 49 REAL(wp) :: ldocz !: Ligand production ratio by grazing 50 REAL(wp) :: lthet !: Uptake of ligand by phytoplankton 51 REAL(wp) :: no3rat3 !: C/N ratio of zooplankton 52 REAL(wp) :: po4rat3 !: C/P ratio of zooplankton 55 53 56 54 !!* diagnostic parameters 57 REAL(wp) :: tpp 58 REAL(wp) :: t_oce_co2_exp 59 REAL(wp) :: t_oce_co2_flx 60 REAL(wp) :: t_oce_co2_flx_cum 61 REAL(wp) :: t_atm_co2_flx 55 REAL(wp) :: tpp !: total primary production 56 REAL(wp) :: t_oce_co2_exp !: total carbon export 57 REAL(wp) :: t_oce_co2_flx !: Total ocean carbon flux 58 REAL(wp) :: t_oce_co2_flx_cum !: Cumulative Total ocean carbon flux 59 REAL(wp) :: t_atm_co2_flx !: global mean of atmospheric pco2 62 60 63 61 !!* restoring 64 LOGICAL :: ln_pisdmp 65 INTEGER :: nn_pisdmp 62 LOGICAL :: ln_pisdmp !: restoring or not of nutrients to a mean value 63 INTEGER :: nn_pisdmp !: frequency of relaxation or not of nutrients to a mean value 66 64 67 65 !!* Mass conservation 68 LOGICAL :: ln_check_mass !: Flag to check mass conservation 69 LOGICAL , PUBLIC :: ln_ironice !: boolean for Fe input from sea ice 66 LOGICAL :: ln_check_mass !: Flag to check mass conservation 67 LOGICAL, PUBLIC :: ln_ironice !: boolean for Fe input from sea ice 68 69 !!* Diurnal cycle in PISCES 70 LOGICAL :: ln_p4z_dcyc !: Flag to activate diurnal cycle in PISCES 70 71 71 72 !!* Biological fluxes for light : variables shared by pisces & lobster 72 INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:) :: neln !: number of T-levels + 1 in the euphotic layer 73 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: heup !: euphotic layer depth 74 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: etot !: par (photosynthetic available radiation) 75 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: etot_ndcy !: PAR over 24h in case of diurnal cycle 73 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,: ) :: strn !: Day duration in hours 76 74 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: enano, ediat !: PAR for phyto, nano and diat 77 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: enanom, ediatm !: PAR for phyto, nano and diat75 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: enanom, ediatm !: mean PAR for phyto, nano and diat 78 76 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: epico !: PAR for pico 79 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: epicom !: PAR for pico 80 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: emoy !: averaged PAR in the mixed layer 81 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: heup_01 !: Absolute euphotic layer depth 82 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksi !: LOBSTER : zooplakton closure 77 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: epicom !: mean PAR for pico 78 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: emoy, etotm !: averaged PAR in the mixed layer 79 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksi !: Half-saturation con,stant for diatoms 83 80 84 81 !!* Biological fluxes for primary production 85 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksimax !: ???82 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksimax !: Maximum half-saturation constant over the year (Si) 86 83 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: biron !: bioavailable fraction of iron 87 84 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: plig !: proportion of iron organically complexed … … 92 89 93 90 !!* SMS for the organic matter 94 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xfracal !: ??95 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrfac !: ??96 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrfac2 !: ??97 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: orem !: ??98 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiss !: ??91 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xfracal !: Fraction of nanophytoplankton that are calcifying organisms 92 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrfac !: OMZ 93 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrfac2 !: N depleted indice 94 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: orem !: oxic remineralisation 95 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiss !: Shear rate 99 96 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodcal !: Calcite production 100 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodpoc !: Calcite production 101 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: conspoc !: Calcite production 102 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodgoc !: Calcite production 103 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: consgoc !: Calcite production 97 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodpoc !: POC production 98 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: conspoc !: POC consumption 99 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodgoc !: GOC production 100 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: consgoc !: GOC consumption 101 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: consfe3 !: GOC consumption 104 102 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: blim !: bacterial production factor 105 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizen !: size of diatoms106 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizep !: size of diatoms103 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizen !: size of nanophyto 104 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizep !: size of picophyto 107 105 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sized !: size of diatoms 108 106 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizena !: size of nanophytoplankton, after 107 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizepa !: size of picophyto, after 108 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizeda !: size of diatomss, after 109 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xfecolagg !: Refractory diagnostic concentration of ligands 110 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xcoagfe !: Coagulation rate of colloidal Fe/ligands 109 111 110 112 !!* Variable for chemistry of the CO2 cycle 111 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak13 !: ???112 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak23 !: ???113 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aksp !: ???114 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hi !: ???115 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: excess !: ???113 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak13 !: Carbonate chemistry constant 114 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak23 !: Carbonate chemistry constant 115 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aksp !: Solubility product of CaCO3 116 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hi !: Proton concentration 117 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: excess !: CO3 saturation 116 118 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aphscale !: 117 119 … … 135 137 !!---------------------------------------------------------------------- 136 138 USE lib_mpp , ONLY: ctl_stop 137 INTEGER :: ierr(1 0) ! Local variables139 INTEGER :: ierr(11) ! Local variables 138 140 !!---------------------------------------------------------------------- 139 141 ierr(:) = 0 140 142 !* Biological fluxes for light : shared variables for pisces & lobster 141 ALLOCATE( etot(jpi,jpj,jpk), neln(jpi,jpj), heup(jpi,jpj), & 142 & heup_01(jpi,jpj) , xksi(jpi,jpj) , STAT=ierr(1) ) 143 ! 144 143 ALLOCATE( xksi(jpi,jpj), strn(jpi,jpj), STAT=ierr(1) ) 144 145 145 IF( ln_p4z .OR. ln_p5z ) THEN 146 !* Biological fluxes for light147 ALLOCATE( enano(jpi,jpj,jpk) , ediat(jpi,jpj,jpk) , &148 & enanom(jpi,jpj,jpk) , ediatm(jpi,jpj,jpk), &149 & etot_ndcy(jpi,jpj,jpk), emoy(jpi,jpj,jpk) , STAT=ierr(2) )150 146 151 !* Biological fluxes for primary production 147 !* Optics 148 ALLOCATE( enano(jpi,jpj,jpk) , ediat(jpi,jpj,jpk) , & 149 & enanom(jpi,jpj,jpk), ediatm(jpi,jpj,jpk), & 150 & emoy(jpi,jpj,jpk) , etotm(jpi,jpj,jpk), STAT=ierr(2) ) 151 152 !* Biological SMS 152 153 ALLOCATE( xksimax(jpi,jpj) , biron(jpi,jpj,jpk) , STAT=ierr(3) ) 153 !154 !* SMS for the organic matter155 ALLOCATE( xfracal (jpi,jpj,jpk), orem(jpi,jpj,jpk) , &156 & nitrfac(jpi,jpj,jpk), nitrfac2(jpi,jpj,jpk) , &157 & prodcal(jpi,jpj,jpk) , xdiss (jpi,jpj,jpk), &158 & prodpoc(jpi,jpj,jpk) , conspoc(jpi,jpj,jpk) , &159 & prodgoc(jpi,jpj,jpk) , consgoc(jpi,jpj,jpk) , &160 & blim (jpi,jpj,jpk) , STAT=ierr(4) )161 154 162 !* Variable for chemistry of the CO2 cycle 163 ALLOCATE( ak13 (jpi,jpj,jpk) , & 164 & ak23(jpi,jpj,jpk) , aksp (jpi,jpj,jpk) , & 165 & hi (jpi,jpj,jpk) , excess(jpi,jpj,jpk) , & 155 ! Biological SMS 156 ALLOCATE( xfracal (jpi,jpj,jpk), orem (jpi,jpj,jpk), & 157 & nitrfac (jpi,jpj,jpk), nitrfac2(jpi,jpj,jpk), & 158 & prodcal (jpi,jpj,jpk), xdiss (jpi,jpj,jpk), & 159 & prodpoc (jpi,jpj,jpk), conspoc (jpi,jpj,jpk), & 160 & prodgoc (jpi,jpj,jpk), consgoc (jpi,jpj,jpk), & 161 & blim (jpi,jpj,jpk), consfe3 (jpi,jpj,jpk), & 162 & xfecolagg(jpi,jpj,jpk), xcoagfe (jpi,jpj,jpk), STAT=ierr(4) ) 163 164 !* Carbonate chemistry 165 ALLOCATE( ak13 (jpi,jpj,jpk) , & 166 & ak23(jpi,jpj,jpk) , aksp (jpi,jpj,jpk) , & 167 & hi (jpi,jpj,jpk) , excess(jpi,jpj,jpk) , & 166 168 & aphscale(jpi,jpj,jpk), STAT=ierr(5) ) 167 169 ! 168 !* Temperature depend ancy of SMS terms169 ALLOCATE( tgfunc (jpi,jpj,jpk), tgfunc2(jpi,jpj,jpk), STAT=ierr(6) )170 !* Temperature dependency of SMS terms 171 ALLOCATE( tgfunc (jpi,jpj,jpk) , tgfunc2(jpi,jpj,jpk), STAT=ierr(6) ) 170 172 ! 171 !* Sinkong speed 172 ALLOCATE( wsbio3 (jpi,jpj,jpk) , wsbio4 (jpi,jpj,jpk), & 173 & STAT=ierr(7) ) 173 !* Sinking speed 174 ALLOCATE( wsbio3 (jpi,jpj,jpk) , wsbio4 (jpi,jpj,jpk), STAT=ierr(7) ) 175 176 !* Size of phytoplankton cells 177 ALLOCATE( sizen (jpi,jpj,jpk), sized (jpi,jpj,jpk), & 178 & sizena(jpi,jpj,jpk), sizeda(jpi,jpj,jpk), STAT=ierr(8) ) 174 179 ! 175 IF( ln_ligand ) THEN 176 ALLOCATE( plig(jpi,jpj,jpk) , STAT=ierr(8) ) 177 ENDIF 180 ALLOCATE( plig(jpi,jpj,jpk) , STAT=ierr(9) ) 178 181 ENDIF 179 182 ! 180 183 IF( ln_p5z ) THEN 181 ! 182 ALLOCATE( epico(jpi,jpj,jpk) , epicom(jpi,jpj,jpk) , STAT=ierr( 9) )184 ! PISCES-QUOTA specific part 185 ALLOCATE( epico(jpi,jpj,jpk) , epicom(jpi,jpj,jpk) , STAT=ierr(10) ) 183 186 184 187 !* Size of phytoplankton cells 185 ALLOCATE( sizen(jpi,jpj,jpk), sizep(jpi,jpj,jpk), & 186 & sized(jpi,jpj,jpk), STAT=ierr(10) ) 188 ALLOCATE( sizep(jpi,jpj,jpk), sizepa(jpi,jpj,jpk), STAT=ierr(11) ) 187 189 ENDIF 188 190 !
Note: See TracChangeset
for help on using the changeset viewer.