= Isotopic composition of dissolved O2 = [[BR]] == '''Settings''' == You need the carbon cycle to be activated, see more info there: [http://forge.ipsl.jussieu.fr/ludus/wiki/CarbonCyclePage]. You can activate the O2 isotopes (OOISO=1) in two cases in choixcomposantes.h: [[BR]] ***NOTE (as of Sep/25/2023) : the OOISO==1 flag is currently working only with the 16 tracer configuration. [[BR]] ***NOTE (as of Dec/23/2022) : To use restart, it is recommended to use the 16 tracer configuration. Currently there is a problem in restart of 23 tracer configuration. - **Case 1: 16 tracers in the ocean**: without the water isotopes and without PaTh but with the carbon cycle (can be used to work, but not very coherent as you don't have the water isotopes): #define ISOATM 0 #define WISOATM 0 #define WISOATM_RESTART 0 #define ISOLBM 0 #define WISOLND 0 #define WISOLND_RESTART 0 #define ISOOCN 0 #define WISOOCN 0 #define OOISO 1 #define CYCC 2 #define OCYCC 1 #define PATH 0 Command to run a simulation (for developpers): {{{ ./bin/run-iloveclim -l PI-CC-O2iso_16tr -n 1 -r 1 -v 1 -s 23001 -S /home/acclimate/nbouttes/iloveclim_isoO2/wkdir/PI-OO2-restart-write_16tr2_ecbilt_clio/run/restartdata/res023001 -k -z }}} == '''Documentation''' == When OOISO flag is on, the OO2 variable becomes 4-dimensional, the fourth element indicating 1 : total O2, 2 : 32O2, 3: 33O2, and 4: 34O2, respectively. The photosynthesis is described in mbiota_mod.f90, the gas exchange at the atmosphere-ocean surface in ocn_bio.f, and the respiration in both mbiota_mod.f90 and maphot.f. == 1. Photosynthesis == The photosynthetic production of total O2 (prod_O2) is calculated from phytoplankton growth rate (phyto_prod; in carbon unit) multiplied by redfield ratio (to convert C unit to O2 unit). {{{ prod_O2(im,j,nm,1) = max(0.0,2*phyto_prod(im,j,nm)*ABS(Oeta(j,2))/Oeta(j,5)) }}} where im, j, and nm are longitude, depth, and latitude, respectively, Oeta is the redfield ratio (index 2 : O2 / index 5 : OC), and ABS is the function of absolute value (to avoid negative value of Oeta of O2). Here the phyto_prod is assumed to be net primary productivity in carbon unit (NPP-C). To convert NPP-C to gross primary productivity in O2 unit (GPP-O2, or GOP), the phyto_prod is multiplied by a factor of 2. Together with the redfield ratio, it gives a ratio of GPP-O2 to NPP-C of ~2.6. This value is similar to the conventional conversion factor of 2.7 (Marra, 2002). You can test the different values by simply changing this factor. The photosynthetic production of 33O2 (34O2) is calculated by multiplying the isotopic ratios of water and associated alpha value to the total photosynthetic O2 production. {{{ prod_O2(im,j,nm,3) = (1.0)*r17smow*prod_O2(im,j,nm,1) prod_O2(im,j,nm,4) = (1.0)*r18smow*prod_O2(im,j,nm,1) }}} Without coupling to the water isotopes, the photosynthetic fractionation is based on the isotopic ratios (17R and 18R) of VSMOW, defined in iso_param_mod.f90. By default, the alpha values of photosynthesis are set to 1. This value can be modified in order to test different values of photosynthetic alpha. The photosynthetic production of 32O2 is then calculated as the rest of total production. {{{ prod_O2(im,j,nm,2) = prod_O2(im,j,nm,1)-prod_O2(im,j,nm,3)-prod_O2(im,j,nm,4) }}} == 1.1. Phytoplankton growth rate (phyto_prod) == This sub-section is a brief explanation on the phytoplankton growth rate in the model for incoming doctoral student(s). For detailled description, the interested reader is referred to ''Six and Maier-Reimer'' (1996). The phyto_prod is the product of the maximum phytoplankton growth rate (rate_m), current mass of phytoplankton (phyto_m), and the nutrient (avanut) limitation term following Michaelis–Menten kinetics (with prescribed n0_m value). The biological production is suppressed under sea-ice cover (FRICE). {{{ phyto_prod(im,j,nm) = rate_m*avanut/(avanut+n0_m)*phyto_m(im,j,nm)*(1.-FRICE(im,nm)) }}} The maximum growth rate (rate_m) consists of two limitations, one by water temperature (funt_m) and another by light availability (funl_m). The funt_m describes the maximum growth rate of phytoplankton in function of water temperature (watTemp in Celcius), so-called Eppley curve (Eppley, 1972). The a_m and b_m parameters are taken from Eppley (1972), and defined in initmbiopar.f. {{{ funt_m=a_m*b_m**watTemp }}} The funl_m function is calculated in a separate subroutine of initmbiopar, and accounts for the (approximate) fraction of photosynthetic available (= 400~700 nm range) radiation of 0.4, the exponential attenuation of photosynthetic available radiation (with an extinction coefficient of lef_m), and the P-I slope (PI_m) of 0.025. {{{ SWR_FRAC(j) = PI_M*PAR_m/zz(j)/lef_m*(exp(-lef_m*zx(j))-exp(-lef_m*zx(j+1))) }}} where zz(j) is the depth of j-th layer, and zx(j) is the thickness of j-th layer. == 1.2. Note for phyto_prod limitation == The phyto_prod requires further limitation for the marine biochemistry works properly. This is particularly necessary around the Southern Ocean, where the marine PP is limited by iron in real world (e.g., ''Schneider et al''., 2008), however, lack of iron limitation in the current version (svn 1721) of the model could result in anomalously high productivity in this region, and hence anoumalously high remineralization rate below. The strong O2 consumption rate and subsequent mixing cause an increase in convexity of the isotope mixing curve and induce negative D17O value of dissolved O2. Note that the negative D17O-O2 value has been observed in the subsurface water of Eastern Equatorial Pacific (''Hendricks et al''., 2005) where strong remineralization and upwelling (mixing) occurs, but never been observed in the subsurface Southern Ocean. Thus this phenomena should not be treated as a bug or something that doesn't make any sense. By default, the phyto_prod is limited to 1.0 micromolC per kg per 0.1day such that resulting nutrient (PO4) distribution fits well to the observation . Additional limitation is imposed to constrain the model to be 'Redfildian' (''work by N. Bouttes and D. Roche''). {{{ if (phyto_prod(im,j,nm).gt.1.) phyto_prod(im,j,nm)=1. if(phyto_prod(im,j,nm).ge.avanut*Oeta(j,5)) then phyto_prod(im,j,nm)=avanut*Oeta(j,5) endif }}} An experimental way to regulate the Southern Ocean problem is to impose an additional limitation of phyto_prod by water temperature, given that the Southern Ocean water temperature is mostly lower than 1 degree C. A simple modification below is able to resolve large part of the Southern Ocean probleme and associated deep-ocean D17O problem, but not completely (''correspondence between J.-W. Yang and D. Roche''). Note that the arbitrary tuning factor of lower than 0.001 doesn't work (model run fails). {{{ if (watTemp.le.1.0d0) then phyto_prod(im,j,nm) = 0.001*min(1.0, rate_m*avanut/(avanut+n0_m)*phyto_m(im,j,nm)*(1.-FRICE(im,nm))) else phyto_prod(im,j,nm) = min(1.0, rate_m*avanut/(avanut+n0_m)*phyto_m(im,j,nm)*(1.-FRICE(im,nm))) endif }}} == 2. Respiration == == 2.1. Euphotic zone == [draft] The biological O2 (cf. see O2,bio defined by ''Hendricks et al''., 2004) produced by photosynthesis is consumed by authotropic- and heterotrophic respiration. In the model, both respiration processes are not explicitely disntinguished. Instead, the vdic variable is calculated in the MBIODYN subroutine (i.e., mbiota_mod.f90) which can be interpreted as the net community production (NCP) in carbon unit. This can be easily converted to the O2 unit using the Oeta profile (i.e., Redfield ratio). Therefore, the O2 consumption by total respiration (resp_O2) is calculated by the difference between NCP-O2 and GPP-O2 as follows: {{{ equation }}} [draft] The respiration exhibits a stronger isotope fractionation (17O/16O and 18O/16O) than photosynthesis and gas exchange, and depends on the current isotopic composition of dissolved O2. Associated 18O-16O fractionation factor (aresp18p) and 17/18 theta value (athetap) are defined in mbiota_mod.f90. These values can be either prescribed as constant or calculated as function of water temperature (''Stolper et al''., 2018). The default values are 0.980 and 0.518, respectively, following ''Nicholson et al''. (2014). Therefore, the respiratory consumption rate of 33O2 and 34O2 are calculated as follows: {{{ equation equation }}} == 2.2. Deep ocean == - **Case 2: 23 tracers in the ocean**: with the water isotopes and PaTh and carbon cycle (what you will ultimately need, with everything): #define ISOATM 2 #define ISOLBM 1 #define ISOOCN 1 (previous) or 2 (Didier's suggest, Feb 1st 2021) #define OOISO 1 #define CYCC 2 #define OCYCC 1 #define PATH 1 #define KC14 1 In this case you also probably need isotopes in the atmosphere? : #define OXYISO 0 (unless you have CARAIB, in case can be 1) Command to run a simulation (for developpers): Under svn revision 1721, the recommended commande for an interactive simulation is (tested Oct. 6th 2023) : {{{ ./bin/run-iloveclim -l {simul_name} -n {duration} -r {period} -z -k -v 1 -s 33500 -S /home/climwork/jwyang/iloveclim-update/rdel-ctrl-long_ecbilt_clio/ic033500 -F scenario/pi-ooiso-16tr-commit/sources/ }}} *Note: If you want to run longer simulation in interactive mode, it is highly recommended to submit a job for allocation : {{{ qsub -I -q medium -N {your_job_name} }}} {{{ ./bin/run-iloveclim -l PI-CC-O2iso_23tr -n 1 -r 1 -k -z -v 1 -s 23001 -S /home/acclimate/nbouttes/iloveclim_isoO2/wkdir/PI-OO2-restart-write_16tr2_ecbilt_clio/run/restartdata/res023001 }}} {{{ ./bin/run-iloveclim -l PI-CC-O2iso_23tr -n 1 -r 1 -k -z -v 1 -s 6500 -S /home/clim01/roche/pr_Nathaelle/phyto_prod_v2-041_ecbilt_clio/run/restartdata/res006500 }}} Command to run a simulation as interactive mode (for developpers, as of July 2021): {{{ ./bin/run-iloveclim -l PI-CC-O2iso_23tr -n 1 -r 1 -k -z -v 1 -s 6502 -S /home/acclimate/jwyang/iloveclim-trunk/wkdir/compiltest2_ecbilt_clio/run/restartdata/res006502 }}} ***To submit a job via qsub: 1. You should put below module load command in the job txt file {{{ module load intel-fcomp/2020 }}} 2. You should delete the "-p" option (example below; a 500-year run) - prends environs 2,7 min pour calculer une année (non-paralisé) {{{ ./bin/run-iloveclim -l ${nom} -n 500 -r 500 -t -k -s 6502 -S /home/acclimate/jwyang/iloveclim-trunk/wkdir/compiltest2_ecbilt_clio/run/restartdata/res006502 -v 1 > ${nom}.twt 2>&1 & }}} ***You have to change the standard code OCN_BIO.F The O2 isotopes (i.e., OO2(:,:,:,2:4)) do not work when they are affected by "CALL CARBONATE" {{{ do km=1,1 (here instead of 1,4) CALL CC_surface_flux(FOO2(:,:,km), OO2(:,:,:,km), LT,JT,NOC_CBR) enddo }}} [[BR]] == '''2. Other info''' == '''2.1. TBA''' [[BR]]