Changeset 11222
- Timestamp:
- 2019-07-05T16:52:07+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC
- Files:
-
- 1 added
- 1 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/cfgs/ORCA2_OFF_PISCES/EXPREF/namelist_pisces_cfg
r10227 r11222 83 83 &nampissbc ! parameters for inputs deposition 84 84 !----------------------------------------------------------------------- 85 sn_dust = 'dust.orca.new' , -1 , 'dust' , .true. , .true. , 'yearly' , '' , '' , '' 86 ln_ironsed = .true. ! boolean for Fe input from sediments 87 ln_ironice = .true. ! boolean for Fe input from sea ice 88 ln_hydrofe = .true. ! boolean for from hydrothermal vents 89 / 90 !----------------------------------------------------------------------- 91 &nampissed ! parameters for sediments mobilization 92 !----------------------------------------------------------------------- 85 93 / 86 94 !----------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/cfgs/ORCA2_OFF_PISCES/EXPREF/namelist_top_cfg
r10375 r11222 20 20 ! 21 21 ln_trcdta = .true. ! Initialisation from data input file (T) or not (F) 22 ! ! ! ! !!23 ! ! name ! title of the field ! units ! initial data from file or not!24 sn_tracer(1) = 'DIC ' , 'Dissolved inorganic Concentration ', 'mol-C/L' , .true.25 sn_tracer(2) = 'Alkalini' , 'Total Alkalinity Concentration ', 'eq/L ' , .true.26 sn_tracer(3) = 'O2 ' , 'Dissolved Oxygen Concentration ', 'mol-C/L' , .true.27 sn_tracer(4) = 'CaCO3 ' , 'Calcite Concentration ', 'mol-C/L' , .false.28 sn_tracer(5) = 'PO4 ' , 'Phosphate Concentration ', 'mol-C/L' , .true.29 sn_tracer(6) = 'POC ' , 'Small organic carbon Concentration ', 'mol-C/L' , .false.30 sn_tracer(7) = 'Si ' , 'Silicate Concentration ', 'mol-C/L' , .true.31 sn_tracer(8) = 'PHY ' , 'Nanophytoplankton Concentration ', 'mol-C/L' , .false.32 sn_tracer(9) = 'ZOO ' , 'Microzooplankton Concentration ', 'mol-C/L' , .false.33 sn_tracer(10) = 'DOC ' , 'Dissolved organic Concentration ', 'mol-C/L' , .true.34 sn_tracer(11) = 'PHY2 ' , 'Diatoms Concentration ', 'mol-C/L' , .false.35 sn_tracer(12) = 'ZOO2 ' , 'Mesozooplankton Concentration ', 'mol-C/L' , .false.36 sn_tracer(13) = 'DSi ' , 'Diatoms Silicate Concentration ', 'mol-C/L' , .false.37 sn_tracer(14) = 'Fer ' , 'Dissolved Iron Concentration ', 'mol-C/L' , .true.38 sn_tracer(15) = 'BFe ' , 'Big iron particles Concentration ', 'mol-C/L' , .false.39 sn_tracer(16) = 'GOC ' , 'Big organic carbon Concentration ', 'mol-C/L' , .false.40 sn_tracer(17) = 'SFe ' , 'Small iron particles Concentration ', 'mol-C/L' , .false.41 sn_tracer(18) = 'DFe ' , 'Diatoms iron Concentration ', 'mol-C/L' , .false.42 sn_tracer(19) = 'GSi ' , 'Sinking biogenic Silicate Concentration', 'mol-C/L' , .false.43 sn_tracer(20) = 'NFe ' , 'Nano iron Concentration ', 'mol-C/L' , .false.44 sn_tracer(21) = 'NCHL ' , 'Nano chlorophyl Concentration ', 'mol-C/L' , .false.45 sn_tracer(22) = 'DCHL ' , 'Diatoms chlorophyl Concentration ', 'mol-C/L' , .false.46 sn_tracer(23) = 'NO3 ' , 'Nitrates Concentration ', 'mol-C/L' , .true.47 sn_tracer(24) = 'NH4 ' , 'Ammonium Concentration ', 'mol-C/L' , .false.48 / 22 ! ! ! ! ! ! 23 ! ! name ! title of the field ! units ! init ! sbc ! cbc ! obc ! 24 sn_tracer(1) = 'DIC ' , 'Dissolved inorganic Concentration ', 'mol-C/L' , .true. , .false., .true., .false. 25 sn_tracer(2) = 'Alkalini' , 'Total Alkalinity Concentration ', 'eq/L ' , .true. , .false. , .true., .false. 26 sn_tracer(3) = 'O2 ' , 'Dissolved Oxygen Concentration ', 'mol-C/L' , .true. , .false., .false., .false 27 sn_tracer(4) = 'CaCO3 ' , 'Calcite Concentration ', 'mol-C/L' , .false. , .false., .false., .false 28 sn_tracer(5) = 'PO4 ' , 'Phosphate Concentration ', 'mol-C/L' , .true. , .true., .true., .false 29 sn_tracer(6) = 'POC ' , 'Small organic carbon Concentration ', 'mol-C/L' , .false. , .false., .false., .false 30 sn_tracer(7) = 'Si ' , 'Silicate Concentration ', 'mol-C/L' , .true. , .true., .true., .false 31 sn_tracer(8) = 'PHY ' , 'Nanophytoplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false 32 sn_tracer(9) = 'ZOO ' , 'Microzooplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false 33 sn_tracer(10) = 'DOC ' , 'Dissolved organic Concentration ', 'mol-C/L' , .true. , .false., .true., .false 34 sn_tracer(11) = 'PHY2 ' , 'Diatoms Concentration ', 'mol-C/L' , .false. , .false., .false., .false 35 sn_tracer(12) = 'ZOO2 ' , 'Mesozooplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false 36 sn_tracer(13) = 'DSi ' , 'Diatoms Silicate Concentration ', 'mol-C/L' , .false. , .false., .false., .false 37 sn_tracer(14) = 'Fer ' , 'Dissolved Iron Concentration ', 'mol-C/L' , .true. , .true., .true., .false 38 sn_tracer(15) = 'BFe ' , 'Big iron particles Concentration ', 'mol-C/L' , .false. , .false., .false., .false 39 sn_tracer(16) = 'GOC ' , 'Big organic carbon Concentration ', 'mol-C/L' , .false. , .false., .false., .false 40 sn_tracer(17) = 'SFe ' , 'Small iron particles Concentration ', 'mol-C/L' , .false. , .false., .false., .false 41 sn_tracer(18) = 'DFe ' , 'Diatoms iron Concentration ', 'mol-C/L' , .false. , .false., .false., .false 42 sn_tracer(19) = 'GSi ' , 'Sinking biogenic Silicate Concentration', 'mol-C/L' , .false. , .false., .false., .false 43 sn_tracer(20) = 'NFe ' , 'Nano iron Concentration ', 'mol-C/L' , .false. , .false., .false., .false 44 sn_tracer(21) = 'NCHL ' , 'Nano chlorophyl Concentration ', 'mol-C/L' , .false. , .false., .false., .false 45 sn_tracer(22) = 'DCHL ' , 'Diatoms chlorophyl Concentration ', 'mol-C/L' , .false. , .false., .false., .false 46 sn_tracer(23) = 'NO3 ' , 'Nitrates Concentration ', 'mol-C/L' , .true. , .true., .true., .false 47 sn_tracer(24) = 'NH4 ' , 'Ammonium Concentration ', 'mol-C/L' , .false. , .false., .false., .false 48 49 49 !----------------------------------------------------------------------- 50 50 &namage ! AGE … … 107 107 &namtrc_bc ! data for boundary conditions 108 108 !----------------------------------------------------------------------- 109 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 110 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 111 sn_trcsbc(5) = 'dust.orca.new' , -1 , 'dustpo4' , .true. , .true. , 'yearly' , '' , '' , '' 112 sn_trcsbc(7) = 'dust.orca.new' , -1 , 'dustsi' , .true. , .true. , 'yearly' , '' , '' , '' 113 sn_trcsbc(14) = 'dust.orca.new' , -1 , 'dustfer' , .true. , .true. , 'yearly' , '' , '' , '' 114 sn_trcsbc(23) = 'ndeposition.orca', -12 , 'ndep' , .false. , .true. , 'yearly' , '' , '' , '' 115 rn_trsfac(5) = 8.264e-02 ! ( 0.021 / 31. * 122 ) 116 rn_trsfac(7) = 3.313e-01 ! ( 8.8 / 28.1 ) 117 rn_trsfac(14) = 6.266e-04 ! ( 0.035 / 55.85 ) 118 rn_trsfac(23) = 5.4464e-01 ! ( From kgN m-2 s-1 to molC l-1 ====> zfact = 7.625/14 ) 119 rn_sbc_time = 1. ! Time scaling factor for SBC and CBC data (seconds in a day) 120 ! 121 sn_trccbc(1) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 122 sn_trccbc(2) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 123 sn_trccbc(5) = 'river.orca' , 120 , 'riverdip' , .true. , .true. , 'yearly' , '' , '' , '' 124 sn_trccbc(7) = 'river.orca' , 120 , 'riverdsi' , .true. , .true. , 'yearly' , '' , '' , '' 125 sn_trccbc(10) = 'river.orca' , 120 , 'riverdoc' , .true. , .true. , 'yearly' , '' , '' , '' 126 sn_trccbc(14) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 127 sn_trccbc(23) = 'river.orca' , 120 , 'riverdin' , .true. , .true. , 'yearly' , '' , '' , '' 128 rn_trcfac(1) = 8.333e+01 ! ( data in Mg/m2/yr : 1e3/12/ryyss) 129 rn_trcfac(2) = 8.333e+01 ! ( 1e3 /12 ) 130 rn_trcfac(5) = 3.935e+04 ! ( 1e3 / 31. * 122 ) 131 rn_trcfac(7) = 3.588e+01 ! ( 1e3 / 28.1 ) 132 rn_trcfac(10) = 8.333e+01 ! ( 1e3 / 12 133 rn_trcfac(14) = 4.166e-03 ! ( 1e3 / 12 * 5e-5 ) 134 rn_trcfac(23) = 5.446e+02 ! ( 1e3 / 14 * 7.625 ) 135 rn_cbc_time = 3.1536e+7 ! Time scaling factor for CBC data (seconds in a year) 109 136 / 110 137 !---------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/cfgs/SHARED/namelist_pisces_ref
r10721 r11222 343 343 / 344 344 !----------------------------------------------------------------------- 345 &nampis sbc ! parameters for inputs deposition345 &nampisbc ! parameters for inputs deposition 346 346 !----------------------------------------------------------------------- 347 347 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 348 348 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 349 349 sn_dust = 'dust.orca' , -1 , 'dust' , .true. , .true. , 'yearly' , '' , '' , '' 350 sn_solub = 'solubility.orca' , -12 , 'solubility1' , .false. , .true. , 'yearly' , '' , '' , ''351 sn_riverdic = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , ''352 sn_riverdoc = 'river.orca' , 120 , 'riverdoc' , .true. , .true. , 'yearly' , '' , '' , ''353 sn_riverdin = 'river.orca' , 120 , 'riverdin' , .true. , .true. , 'yearly' , '' , '' , ''354 sn_riverdon = 'river.orca' , 120 , 'riverdon' , .true. , .true. , 'yearly' , '' , '' , ''355 sn_riverdip = 'river.orca' , 120 , 'riverdip' , .true. , .true. , 'yearly' , '' , '' , ''356 sn_riverdop = 'river.orca' , 120 , 'riverdop' , .true. , .true. , 'yearly' , '' , '' , ''357 sn_riverdsi = 'river.orca' , 120 , 'riverdsi' , .true. , .true. , 'yearly' , '' , '' , ''358 sn_ndepo = 'ndeposition.orca', -12 , 'ndep' , .false. , .true. , 'yearly' , '' , '' , ''359 350 sn_ironsed = 'bathy.orca' , -12 , 'bathy' , .false. , .true. , 'yearly' , '' , '' , '' 360 351 sn_hydrofe = 'hydrofe.orca' , -12 , 'epsdb' , .false. , .true. , 'yearly' , '' , '' , '' 361 352 ! 362 353 cn_dir = './' ! root directory for the location of the dynamical files 363 ln_dust = .true. ! boolean for dust input from the atmosphere364 ln_solub = .true. ! boolean for variable solubility of atm. Iron365 ln_river = .true. ! boolean for river input of nutrients366 ln_ndepo = .true. ! boolean for atmospheric deposition of N367 354 ln_ironsed = .true. ! boolean for Fe input from sediments 368 355 ln_ironice = .true. ! boolean for Fe input from sea ice … … 370 357 sedfeinput = 2.e-9 ! Coastal release of Iron 371 358 distcoast = 5.e3 ! Distance off the coast for Iron from sediments 372 dustsolub = 0.02 ! Solubility of the dusta373 359 mfrac = 0.035 ! Fe mineral fraction of dust 374 360 wdust = 2.0 ! Dust sinking speed 375 361 icefeinput = 15.e-9 ! Iron concentration in sea ice 362 hratio = 1.e+7 ! Fe to 3He ratio assumed for vent iron supply 363 ! ! ln_ligand 364 lgw_rath = 0.5 ! Weak ligand ratio from sed hydro sources 365 / 366 !----------------------------------------------------------------------- 367 &nampissed ! parameters for sediments mobilization 368 !----------------------------------------------------------------------- 376 369 nitrfix = 1.e-7 ! Nitrogen fixation rate 377 370 diazolight = 50. ! Diazotrophs sensitivity to light (W/m2) 378 371 concfediaz = 1.e-10 ! Diazotrophs half-saturation Cste for Iron 379 hratio = 1.e+7 ! Fe to 3He ratio assumed for vent iron supply380 ! ! ln_ligand381 lgw_rath = 0.5 ! Weak ligand ratio from sed hydro sources382 372 / 383 373 !----------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/cfgs/SHARED/namelist_top_ref
r10375 r11222 135 135 cn_dir_obc = './' ! root directory for the location of OPEN data files 136 136 ln_rnf_ctl = .false. ! Remove runoff dilution on tracers with absent river load 137 rn_bc_time = 86400. ! Time scaling factor for SBC and CBC data (seconds in a day) 137 rn_sbc_time = 86400. ! Time scaling factor for SBC data (seconds in a day) 138 rn_cbc_time = 86400. ! Time scaling factor for CBC data (seconds in a day) 138 139 / 139 140 !---------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/MY_TRC/trcsms_my_trc.F90
r10425 r11222 15 15 USE trd_oce 16 16 USE trdtrc 17 USE trcbc, only : trc_bc18 17 19 18 IMPLICIT NONE … … 54 53 IF( l_trdtrc ) ALLOCATE( ztrmyt(jpi,jpj,jpk) ) 55 54 56 CALL trc_bc ( kt ) ! tracers: surface and lateral Boundary Conditions57 58 55 ! add here the call to BGC model 59 56 -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/PISCES/P4Z/p4zfechem.F90
r10416 r11222 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 16 USE p4zche ! chemical model 17 USE p4z sbc! Boundary conditions from sediments17 USE p4zbc ! Boundary conditions from sediments 18 18 USE prtctl_trc ! print control for debugging 19 19 USE iom ! I/O manager … … 133 133 ! 134 134 ztrc = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6 135 IF( l n_dust ) zdust = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) &135 IF( ll_dust ) zdust = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) & 136 136 & * EXP( -gdept_n(ji,jj,jk) / 540. ) 137 137 IF (ln_ligand) THEN -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/PISCES/P4Z/p4zsed.F90
r10788 r11222 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 16 USE p4zlim ! Co-limitations of differents nutrients 17 USE p4zsbc ! External source of nutrients18 17 USE p4zint ! interpolation and computation of various fields 19 18 USE sed ! Sediment module … … 25 24 26 25 PUBLIC p4z_sed 26 PUBLIC p4z_sed_init 27 27 PUBLIC p4z_sed_alloc 28 28 29 REAL(wp), PUBLIC :: nitrfix !: Nitrogen fixation rate 30 REAL(wp), PUBLIC :: diazolight !: Nitrogen fixation sensitivty to light 31 REAL(wp), PUBLIC :: concfediaz !: Fe half-saturation Cste for diazotrophs 32 29 33 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrpot !: Nitrogen fixation 30 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,: ) :: sdenit !: Nitrate reduction in the sediments 31 REAL(wp) :: r1_rday !: inverse of rday 32 LOGICAL, SAVE :: lk_sed 35 ! 36 REAL(wp), SAVE :: r1_rday 37 REAL(wp), SAVE :: sedsilfrac, sedcalfrac 33 38 34 39 !!---------------------------------------------------------------------- … … 53 58 INTEGER :: ji, jj, jk, ikt 54 59 REAL(wp) :: zrivalk, zrivsil, zrivno3 55 REAL(wp) :: z wflux, zlim, zfact, zfactcal60 REAL(wp) :: zlim, zfact, zfactcal 56 61 REAL(wp) :: zo2, zno3, zflx, zpdenit, z1pdenit, zolimit 57 62 REAL(wp) :: zsiloss, zcaloss, zws3, zws4, zwsc, zdep … … 66 71 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsoufer, zlight 67 72 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zpdep 68 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zsidep, zironice69 73 !!--------------------------------------------------------------------- 70 74 ! 71 75 IF( ln_timing ) CALL timing_start('p4z_sed') 72 76 ! 73 IF( kt == nittrc000 .AND. knt == 1 ) THEN 74 r1_rday = 1. / rday 75 IF (ln_sediment .AND. ln_sed_2way) THEN 76 lk_sed = .TRUE. 77 ELSE 78 lk_sed = .FALSE. 79 ENDIF 80 ENDIF 81 ! 82 IF( kt == nittrc000 .AND. knt == 1 ) r1_rday = 1. / rday 83 ! 77 84 78 ! Allocate temporary workspace 85 79 ALLOCATE( ztrpo4(jpi,jpj,jpk) ) … … 93 87 zsedc (:,:) = 0.e0 94 88 95 ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. 96 ! ---------------------------------------------------- 97 IF( ln_ironice ) THEN 98 ! 99 ALLOCATE( zironice(jpi,jpj) ) 100 ! 89 IF( .NOT.lk_sed ) THEN 90 ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 91 ! -------------------------------------------------------------------- 101 92 DO jj = 1, jpj 102 93 DO ji = 1, jpi 103 zdep = rfact2 / e3t_n(ji,jj,1) 104 zwflux = fmmflx(ji,jj) / 1000._wp 105 zironice(ji,jj) = MAX( -0.99 * trb(ji,jj,1,jpfer), -zwflux * icefeinput * zdep ) 106 END DO 107 END DO 108 ! 109 tra(:,:,1,jpfer) = tra(:,:,1,jpfer) + zironice(:,:) 110 ! 111 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironice" ) ) & 112 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1) ) ! iron flux from ice 113 ! 114 DEALLOCATE( zironice ) 115 ! 116 ENDIF 117 118 ! Add the external input of nutrients from dust deposition 119 ! ---------------------------------------------------------- 120 IF( ln_dust ) THEN 121 ! 122 ALLOCATE( zsidep(jpi,jpj), zpdep(jpi,jpj,jpk), zirondep(jpi,jpj,jpk) ) 123 ! ! Iron and Si deposition at the surface 124 IF( ln_solub ) THEN 125 zirondep(:,:,1) = solub(:,:) * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 55.85 + 3.e-10 * r1_ryyss 126 ELSE 127 zirondep(:,:,1) = dustsolub * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 55.85 + 3.e-10 * r1_ryyss 128 ENDIF 129 zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 28.1 130 zpdep (:,:,1) = 0.1 * 0.021 * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 31. / po4r 131 ! ! Iron solubilization of particles in the water column 132 ! ! dust in kg/m2/s ---> 1/55.85 to put in mol/Fe ; wdust in m/j 133 zwdust = 0.03 * rday / ( wdust * 55.85 ) / ( 270. * rday ) 134 DO jk = 2, jpkm1 135 zirondep(:,:,jk) = dust(:,:) * mfrac * zwdust * rfact2 * EXP( -gdept_n(:,:,jk) / 540. ) 136 zpdep (:,:,jk) = zirondep(:,:,jk) * 0.023 137 END DO 138 ! ! Iron solubilization of particles in the water column 139 tra(:,:,1,jpsil) = tra(:,:,1,jpsil) + zsidep (:,:) 140 DO jk = 1, jpkm1 141 tra(:,:,jk,jppo4) = tra(:,:,jk,jppo4) + zpdep (:,:,jk) 142 tra(:,:,jk,jpfer) = tra(:,:,jk,jpfer) + zirondep(:,:,jk) 143 ENDDO 144 ! 145 IF( lk_iomput ) THEN 146 IF( knt == nrdttrc ) THEN 147 IF( iom_use( "Irondep" ) ) & 148 & CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron 149 IF( iom_use( "pdust" ) ) & 150 & CALL iom_put( "pdust" , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface 151 ENDIF 152 ENDIF 153 DEALLOCATE( zsidep, zpdep, zirondep ) 154 ! 155 ENDIF 156 157 ! Add the external input of nutrients from river 158 ! ---------------------------------------------------------- 159 IF( ln_river ) THEN 160 DO jj = 1, jpj 161 DO ji = 1, jpi 162 DO jk = 1, nk_rnf(ji,jj) 163 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + rivdip(ji,jj) * rfact2 164 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + rivdin(ji,jj) * rfact2 165 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + rivdic(ji,jj) * 5.e-5 * rfact2 166 tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) + rivdsi(ji,jj) * rfact2 167 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + rivdic(ji,jj) * rfact2 168 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + ( rivalk(ji,jj) - rno3 * rivdin(ji,jj) ) * rfact2 169 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + rivdoc(ji,jj) * rfact2 170 ENDDO 171 ENDDO 172 ENDDO 173 IF (ln_ligand) THEN 174 DO jj = 1, jpj 175 DO ji = 1, jpi 176 DO jk = 1, nk_rnf(ji,jj) 177 tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + rivdic(ji,jj) * 5.e-5 * rfact2 178 ENDDO 179 ENDDO 180 ENDDO 181 ENDIF 182 IF( ln_p5z ) THEN 183 DO jj = 1, jpj 184 DO ji = 1, jpi 185 DO jk = 1, nk_rnf(ji,jj) 186 tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + rivdop(ji,jj) * rfact2 187 tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + rivdon(ji,jj) * rfact2 188 ENDDO 189 ENDDO 190 ENDDO 191 ENDIF 192 ENDIF 193 194 ! Add the external input of nutrients from nitrogen deposition 195 ! ---------------------------------------------------------- 196 IF( ln_ndepo ) THEN 197 tra(:,:,1,jpno3) = tra(:,:,1,jpno3) + nitdep(:,:) * rfact2 198 tra(:,:,1,jptal) = tra(:,:,1,jptal) - rno3 * nitdep(:,:) * rfact2 199 ENDIF 200 201 ! Add the external input of iron from hydrothermal vents 202 ! ------------------------------------------------------ 203 IF( ln_hydrofe ) THEN 204 tra(:,:,:,jpfer) = tra(:,:,:,jpfer) + hydrofe(:,:,:) * rfact2 205 IF( ln_ligand ) THEN 206 tra(:,:,:,jplgw) = tra(:,:,:,jplgw) + ( hydrofe(:,:,:) * lgw_rath ) * rfact2 207 ENDIF 208 ! 209 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "HYDR" ) ) & 210 & CALL iom_put( "HYDR", hydrofe(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! hydrothermal iron input 211 ENDIF 212 213 ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 214 ! -------------------------------------------------------------------- 215 DO jj = 1, jpj 216 DO ji = 1, jpi 217 ikt = mbkt(ji,jj) 218 zdep = e3t_n(ji,jj,ikt) / xstep 219 zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 220 zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) 221 END DO 222 END DO 223 ! 224 IF( .NOT.lk_sed ) THEN 225 ! 226 ! Add the external input of iron from sediment mobilization 227 ! ------------------------------------------------------ 228 IF( ln_ironsed ) THEN 229 tra(:,:,:,jpfer) = tra(:,:,:,jpfer) + ironsed(:,:,:) * rfact2 230 ! 231 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironsed" ) ) & 232 & CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! iron inputs from sediments 233 ENDIF 94 ikt = mbkt(ji,jj) 95 zdep = e3t_n(ji,jj,ikt) / xstep 96 zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 97 zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) 98 END DO 99 END DO 234 100 235 101 ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used … … 494 360 END SUBROUTINE p4z_sed 495 361 362 SUBROUTINE p4z_sed_init 363 !!---------------------------------------------------------------------- 364 !! *** routine p4z_sed_init *** 365 !! 366 !! ** purpose : initialization of some parameters 367 !! 368 !!---------------------------------------------------------------------- 369 !!---------------------------------------------------------------------- 370 INTEGER :: ji, jj, jk, jm 371 INTEGER :: ios ! Local integer output status for namelist read 372 ! 373 !! 374 NAMELIST/nampissed/ nitrfix, diazolight, concfediaz 375 !!---------------------------------------------------------------------- 376 ! 377 IF(lwp) THEN 378 WRITE(numout,*) 379 WRITE(numout,*) 'p4z_sed_init : initialization of sediment mobilisation ' 380 WRITE(numout,*) '~~~~~~~~~~~~ ' 381 ENDIF 382 ! !* set file information 383 REWIND( numnatp_ref ) ! Namelist nampissed in reference namelist : PISCES sediment 384 READ ( numnatp_ref, nampissed, IOSTAT = ios, ERR = 901) 385 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissed in reference namelist', lwp ) 386 REWIND( numnatp_cfg ) ! Namelist nampissbc in configuration namelist : PISCES sediment 387 READ ( numnatp_cfg, nampissed, IOSTAT = ios, ERR = 902 ) 388 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampissed in configuration namelist', lwp ) 389 IF(lwm) WRITE ( numonp, nampissed ) 390 391 IF(lwp) THEN 392 WRITE(numout,*) ' Namelist : nampissed ' 393 WRITE(numout,*) ' nitrogen fixation rate nitrfix = ', nitrfix 394 WRITE(numout,*) ' nitrogen fixation sensitivty to light diazolight = ', diazolight 395 WRITE(numout,*) ' Fe half-saturation cste for diazotrophs concfediaz = ', concfediaz 396 ENDIF 397 ! 398 r1_rday = 1. / rday 399 ! 400 sedsilfrac = 0.03 ! percentage of silica loss in the sediments 401 sedcalfrac = 0.6 ! percentage of calcite loss in the sediments 402 ! 403 lk_sed = ln_sediment .AND. ln_sed_2way 404 ! 405 END SUBROUTINE p4z_sed_init 496 406 497 407 INTEGER FUNCTION p4z_sed_alloc() -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/PISCES/P4Z/p4zsms.F90
r10425 r11222 17 17 USE p4zlys ! Calcite saturation 18 18 USE p4zflx ! Gas exchange 19 USE p4z sbc! External source of nutrients19 USE p4zbc ! External source of nutrients 20 20 USE p4zsed ! Sedimentation 21 21 USE p4zint ! time interpolation … … 102 102 ENDIF 103 103 ! 104 IF( ll_ sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients104 IF( ll_bc ) CALL p4z_bc( kt ) ! external sources of nutrients 105 105 ! 106 106 #if ! defined key_sed_off -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/PISCES/par_pisces.F90
r10416 r11222 6 6 !! History : 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture 7 7 !!---------------------------------------------------------------------- 8 USE par_kind 8 9 9 10 IMPLICIT NONE … … 60 61 !! Default No CFC geochemical model 61 62 ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 62 INTEGER, PUBLIC :: jp_pcs0 !: First index of PISCES tracers 63 INTEGER, PUBLIC :: jp_pcs1 !: Last index of PISCES tracers 63 INTEGER, PUBLIC :: jp_pcs0 !: First index of PISCES tracers 64 INTEGER, PUBLIC :: jp_pcs1 !: Last index of PISCES tracers 65 66 REAL(wp), PUBLIC :: mMass_C = 12.00 ! Molar mass of carbon 67 REAL(wp), PUBLIC :: mMass_N = 14.00 ! Molar mass of nitrogen 68 REAL(wp), PUBLIC :: mMass_P = 31.00 ! Molar mass of phosphorus 69 REAL(wp), PUBLIC :: mMass_Fe = 55.85 ! Molar mass of iron 70 REAL(wp), PUBLIC :: mMass_Si = 28.00 ! Molar mass of silver 64 71 65 72 !!---------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/PISCES/sms_pisces.F90
r10788 r11222 121 121 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tgfunc2 !: Temp. dependancy of mesozooplankton rates 122 122 123 LOGICAL, SAVE :: lk_sed 124 123 125 !!---------------------------------------------------------------------- 124 126 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/PISCES/trcini_pisces.F90
r10817 r11222 58 58 USE p4zsink ! vertical flux of particulate matter due to sinking 59 59 USE p4zopt ! optical model 60 USE p4z sbc ! Boundary conditions60 USE p4zbc ! Boundary conditions 61 61 USE p4zfechem ! Iron chemistry 62 62 USE p4zrem ! Remineralisation of organic matter … … 254 254 CALL p5z_prod_init ! phytoplankton growth rate over the global ocean. 255 255 ENDIF 256 CALL p4z_ sbc_init! boundary conditions256 CALL p4z_bc_init ! boundary conditions 257 257 CALL p4z_fechem_init ! Iron chemistry 258 258 CALL p4z_rem_init ! remineralisation … … 275 275 276 276 ! Initialization of the sediment model 277 IF( ln_sediment) CALL sed_init 277 IF( ln_sediment) & 278 & CALL sed_init ! Initialization of the sediment model 279 280 CALL p4z_sed_init ! loss of organic matter in the sediments 278 281 279 282 IF(lwp) WRITE(numout,*) -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/TRP/trctrp.F90
r10068 r11222 23 23 USE trcrad ! positivity (trc_rad routine) 24 24 USE trcsbc ! surface boundary condition (trc_sbc routine) 25 USE trcbc ! Tracers boundary condtions ( trc_bc routine) 25 26 USE zpshde ! partial step: hor. derivative (zps_hde routine) 26 27 USE bdy_oce , ONLY: ln_bdy … … 61 62 ! 62 63 CALL trc_sbc ( kt ) ! surface boundary condition 64 IF( lltrcbc .AND. kt /= nit000 ) & 65 CALL trc_bc ( kt ) ! tracers: surface and lateral Boundary Conditions 63 66 IF( ln_trabbl ) CALL trc_bbl ( kt ) ! advective (and/or diffusive) bottom boundary layer scheme 64 67 IF( ln_trcdmp ) CALL trc_dmp ( kt ) ! internal damping trends -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/trc.F90
r10425 r11222 117 117 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_cbc !: Use coastal boundary condition data 118 118 LOGICAL , PUBLIC :: ln_rnf_ctl !: remove runoff dilution on tracers 119 REAL(wp), PUBLIC :: rn_bc_time !: Time scaling factor for SBC and CBC data (seconds in a day) 119 REAL(wp), PUBLIC :: rn_sbc_time !: Time scaling factor for SBC data (seconds in a day) 120 REAL(wp), PUBLIC :: rn_cbc_time !: Time scaling factor for CBC data (seconds in a day) 121 LOGICAL , PUBLIC :: lltrcbc !: Applying one of the boundary conditions 120 122 ! 121 123 CHARACTER(len=20), PUBLIC, DIMENSION(jp_bdy) :: cn_trc_dflt ! Default OBC condition for all tracers -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/trcbc.F90
r10068 r11222 82 82 !! 83 83 NAMELIST/namtrc_bc/ cn_dir_obc, sn_trcobc, rn_trofac, cn_dir_sbc, sn_trcsbc, rn_trsfac, & 84 & cn_dir_cbc, sn_trccbc, rn_trcfac, ln_rnf_ctl, rn_ bc_time84 & cn_dir_cbc, sn_trccbc, rn_trcfac, ln_rnf_ctl, rn_sbc_time, rn_cbc_time 85 85 NAMELIST/namtrc_bdy/ cn_trc_dflt, cn_trc, nn_trcdmp_bdy 86 86 !!---------------------------------------------------------------------- … … 423 423 IF( ln_trc_sbc(jn) ) THEN 424 424 jl = n_trc_indsbc(jn) 425 sf_trcsbc(jl)%fnow(:,:,1) = MAX( rtrn, sf_trcsbc(jl)%fnow(:,:,1) ) ! avoid nedgative value due to interpolation 425 426 DO jj = 2, jpj 426 427 DO ji = fs_2, fs_jpim1 ! vector opt. 427 zfact = 1. / ( e3t_n(ji,jj,1) * rn_ bc_time )428 zfact = 1. / ( e3t_n(ji,jj,1) * rn_sbc_time ) 428 429 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + rf_trsfac(jl) * sf_trcsbc(jl)%fnow(ji,jj,1) * zfact 429 430 END DO … … 432 433 ! 433 434 ! COASTAL boundary conditions 434 IF( ln_rnf .AND. ln_trc_cbc(jn) ) THEN 435 IF( ( ln_rnf .OR. l_offline ) .AND. ln_trc_cbc(jn) ) THEN 436 IF( l_offline ) rn_rfact = 1._wp 435 437 jl = n_trc_indcbc(jn) 436 438 DO jj = 2, jpj 437 439 DO ji = fs_2, fs_jpim1 ! vector opt. 438 440 DO jk = 1, nk_rnf(ji,jj) 439 zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_ bc_time )441 zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 440 442 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zfact 441 443 END DO -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/trcdta.F90
r10222 r11222 178 178 ! 179 179 IF( ln_timing ) CALL timing_start('trc_dta') 180 ! 181 IF( kt == nit000 .AND. lwp) THEN 182 WRITE(numout,*) 183 WRITE(numout,*) 'trc_dta : passive tracers data for IC' 184 WRITE(numout,*) '~~~~~~~ ' 185 ENDIF 180 186 ! 181 187 IF( nb_trcdta > 0 ) THEN -
NEMO/branches/2019/dev_r11219_TOP-01_cethe_PISCES_LBC/src/TOP/trcini.F90
r10817 r11222 25 25 USE lib_mpp ! distribued memory computing library 26 26 USE trcice ! tracers in sea ice 27 USE trcbc , only : trc_bc_ini! generalized Boundary Conditions27 USE trcbc ! generalized Boundary Conditions 28 28 29 29 IMPLICIT NONE … … 175 175 ln_trc_obc(jn) = sn_tracer(jn)%llobc 176 176 END DO 177 lltrcbc = ( COUNT(ln_trc_sbc) + COUNT(ln_trc_obc) + COUNT(ln_trc_cbc) ) > 0 177 178 ! 178 179 IF( ln_pisces ) CALL trc_ini_pisces ! PISCES model … … 191 192 END DO 192 193 ENDIF 194 IF( lwp .AND. lltrcbc ) THEN 195 WRITE(numout,*) 196 WRITE(numout,*) ' Applying tracer boundary conditions ' 197 ENDIF 198 193 199 9001 FORMAT(3x,i3,1x,a10,3x,l2,3x,l2,3x,l2,3x,l2) 194 200 ! … … 235 241 IF( ln_trcdta ) CALL trc_dta_ini( jptra ) ! set initial tracers values 236 242 ! 237 IF( ln_my_trc ) CALL trc_bc_ini ( jptra ) ! set tracers Boundary Conditions 243 IF( lltrcbc ) THEN 244 CALL trc_bc_ini ( jptra ) ! set tracers Boundary Conditions 245 CALL trc_bc ( nit000 ) ! tracers: surface and lateral Boundary Conditions 246 ENDIF 238 247 ! 239 248 !
Note: See TracChangeset
for help on using the changeset viewer.