Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lon-lat variable sediment porosity #189

Merged
merged 22 commits into from
Sep 15, 2022
Merged

Conversation

jmaerz
Copy link
Collaborator

@jmaerz jmaerz commented Sep 2, 2022

This feature branch enables to read a sediment porosity file as input for the sediment compartment of iHAMOCC. iHAMOCC then considers the spatially variable porosity through the scaling of the sediment pore water diffusion coefficients and in sediment processes. This feature can thus far only be switched on via the namelist switch l_sed_por for expert users (current default is .false.).

The reading of a sediment porosity file is thus far untested (and will produce results different from CMIP6), while the current default version with l_sed_por=.false. produces bit identical results compared to the former master branch. I am working on the input file for this feature, but wanted to give you already the possibility to review the code changes.

@jmaerz
Copy link
Collaborator Author

jmaerz commented Sep 2, 2022

Ok, I just realize that the commit comes with all changes done in master over the past days (as compared to this development branch). Maybe it would be good to first merge the master into the development branch?

@TomasTorsvik
Copy link
Contributor

TomasTorsvik commented Sep 2, 2022

Ok, I just realize that the commit comes with all changes done in master over the past days (as compared to this development branch). Maybe it would be good to first merge the master into the development branch?

Yes, probably that is a good idea, although this will create an additional merge commit on the development branch. Don't know if there is any better alternative though.

UPDATE: I created a PR for merging master to feature-hamocc_beyond-CMIP6 #190

@JorgSchwinger
Copy link
Contributor

I'll wait with my review until #190 has been merged...

@jmaerz
Copy link
Collaborator Author

jmaerz commented Sep 5, 2022

Hi @JorgSchwinger and @TomasTorsvik , I briefly discussed with @TomasTorsvik about the history issue and tested out, whether an initial merge with the feature-hamocc_beyond-CMIP6 branch would solve the history issue (it does). Given our common agreement on still merging features into master that do not break backward compatibility, I am now moving the pull request to the master branch. I will check again with regards to the loop order (thanks @JorgSchwinger).

@jmaerz jmaerz changed the base branch from feature-hamocc_beyond-CMIP6 to master September 5, 2022 08:40
Copy link
Contributor

@TomasTorsvik TomasTorsvik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks fine to me. I wonder if we should use the opportunity to clean up some of the comments that seem outdated.

Comment on lines 73 to 75
!REAL, save :: porsol(ks) = 0.0
!REAL, save :: porwah(ks) = 0.0
!REAL, save :: porwat(ks) = 0.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe these lines should be deleted instead of commented out? With the modified code theses lines can not be re-enabled by un-commenting.

Copy link
Collaborator Author

@jmaerz jmaerz Sep 5, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. I missed to clean that. I'll do this.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Comment on lines 122 to 127
! Dissolution rate constant of opal (disso) [1/(kmol Si(OH)4/m3)*1/sec]
! THIS NEEDS TO BE CHANGED TO disso=3.e-8! THIS IS ONLY KEPT FOR THE MOMENT
! FOR BACKWARDS COMPATIBILITY
!disso=3.e-8 ! (2011-01-04) EMR
!disso=1.e-6 ! test vom 03.03.04 half live sil ca. 20.000 yr
disso_sil = 1.e-6*dtbgc
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
! Dissolution rate constant of opal (disso) [1/(kmol Si(OH)4/m3)*1/sec]
! THIS NEEDS TO BE CHANGED TO disso=3.e-8! THIS IS ONLY KEPT FOR THE MOMENT
! FOR BACKWARDS COMPATIBILITY
!disso=3.e-8 ! (2011-01-04) EMR
!disso=1.e-6 ! test vom 03.03.04 half live sil ca. 20.000 yr
disso_sil = 1.e-6*dtbgc
! Dissolution rate constant of opal (disso) [1/(kmol Si(OH)4/m3)*1/sec]
! THIS NEEDS TO BE CHANGED TO disso=3.e-8! THIS IS ONLY KEPT FOR THE MOMENT
! FOR BACKWARDS COMPATIBILITY
!disso_sil = 3.e-8*dtbgc ! (2011-01-04) EMR
!disso_sil = 1.e-6*dtbgc ! test vom 03.03.04 half live sil ca. 20.000 yr
disso_sil = 1.e-6*dtbgc

Maybe a bit pedantic, but I think it is best if the commented lines also reflect the code change.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, I can do this.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

enddo

sedict = 1.e-9 * dtbgc ! Moecular diffusion coefficient
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sedict = 1.e-9 * dtbgc ! Moecular diffusion coefficient
sedict = 1.e-9 * dtbgc ! Molecular diffusion coefficient

typo

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

silsat = 0.001

! Degradation rate constant of POP (disso) [1/(kmol O2/m3)*1/sec]
disso_poc = 0.01 / 86400. * dtbgc ! disso=3.e-5 was quite high
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
disso_poc = 0.01 / 86400. * dtbgc ! disso=3.e-5 was quite high
disso_poc = 0.01 / 86400. * dtbgc

Is this comment relevant, do we need to keep it around?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't tell - maybe @JorgSchwinger made some experiences that allow for better judgement?


sedict = 1.e-9 * dtbgc
! Denitrification rate constant of POP (disso) [1/sec]
sed_denit = 0.01/86400. * dtbgc !ik denit = 1.e-6*dtbgc
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sed_denit = 0.01/86400. * dtbgc !ik denit = 1.e-6*dtbgc
sed_denit = 0.01/86400. * dtbgc

Same as above

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JorgSchwinger - any reason to keep the comment?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I don't think so, too.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

@@ -219,7 +219,7 @@ SUBROUTINE SEDSHI(kpie,kpje,omask)

! fill the last active layer
refill=seddef/(buried+1.e-10)
frac = porsol(ks)*seddw(ks) !changed k to ks, ik
frac = porsol(i,j,ks)*seddw(ks) !changed k to ks, ik
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
frac = porsol(i,j,ks)*seddw(ks) !changed k to ks, ik
frac = porsol(i,j,ks)*seddw(ks)

another comment that doesn't seem to add much info

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can delete it, sure.

@jmaerz jmaerz added enhancement New feature or request iHAMOCC Issue mainly concerns the iHAMOCC code base labels Sep 6, 2022
@jmaerz jmaerz self-assigned this Sep 6, 2022
@@ -237,6 +237,9 @@ set OALKSCEN = "''"
set OALKFILE = "''"
set WITH_DMSPH = .false.
set PI_PH_FILE = "''"
set L_SED_POR = .false.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a more suggestive name would be preferable? For example L_SEDPOR_2D to indicate that this activates a 2d-spatially variable sediment porosity?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. Thanks for the suggestion! Maybe l_3Dvarsedpor (variable sediment porosity)?!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -1470,6 +1479,8 @@ cat >>! $RUNDIR/ocn_in$inststr << EOF
INID14C = $INID14C
WITH_DMSPH = $WITH_DMSPH
PI_PH_FILE = $PI_PH_FILE
L_SED_POR = $L_SED_POR
SEDPORFILE = $SEDPORFILE
/

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GitHub won't let me add a comment in an untouched part of the code, but further below at line 1840 there is a file blom.input_data_list created. If L_SED_POR is activated and SEDPORFILE specified, the filename should be added to this file (used by the CESM scripting system to check at submission whether all files are available)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Thanks for the explanation! I'll add that.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

! this initialization can be done later via reading a porosity map
if (l_sed_por)then
! lon-lat variable sediment porosity from input file
call apply_sedpor(kpie,kpje,ks,omask,sed_por)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find it a bit overkill to define an extra module for ~10 lines of code (essentially porwat=sedpor) that could be just placed directly here.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:-) - agree - I was debating with myself - I'll change it.


contains

subroutine ini_read_sedpor(kpie,kpje,ks,omask)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, there is no need to allocate the array sed_por permanently: The array is only needed to transfer the data from this routine to bodensed (both called from hamocc_ini). So one could define sed_por as a local (automatic) array in hamocc_ini, pass it first to read_sedpor and then to bodensed. On return from hamocc_ini, sed_por will be automatically deallocated. I would then also rename this routine to read_sedpor because then there is nothing that is really initialised (this would be more consistent with the fact that this is a one time read operation, not something that is used later on).

On a side note, one could integrate bodensed into mo_sedmnt and rename it to ini_sedmnt, which would make more sense than having it as a stand-alone subroutine. Maybe something for later.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @JorgSchwinger , I am doing the first paragraph. With respect to the second part: I like the idea, was shortly about to do it already before. I would like to do this as another pull request, though, to minimize conflicts with my own developments. I'll move the subroutine soon.

rename switch, application directly in bodensed, read porosity file to non-permanent sed_por
@jmaerz
Copy link
Collaborator Author

jmaerz commented Sep 15, 2022

Hi @JorgSchwinger and @TomasTorsvik , I adjusted the code wrt to Jörgs comments and merged with current master to resolve upcoming conflicts (due to previous changes to the powtra -> ocetra mapping). The only thing I haven't changed thus far is the comment from Tomas: #189 (comment) which just concerns a comment in the code. Do you want to re-review the pull request or shall I merge into master?

@TomasTorsvik
Copy link
Contributor

The only thing I haven't changed thus far is the comment from Tomas: #189 (comment) which just concerns a comment in the code.

The comment is not essential. From my point of view you can merge it as it is into master.

@JorgSchwinger
Copy link
Contributor

Yes, I agree, please go ahead

@jmaerz jmaerz merged commit 88d6208 into NorESMhub:master Sep 15, 2022
@jmaerz jmaerz mentioned this pull request Nov 8, 2022
TomasTorsvik pushed a commit to TomasTorsvik/BLOM-TTfork that referenced this pull request Dec 5, 2022
Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.
TomasTorsvik pushed a commit to TomasTorsvik/BLOM-TTfork that referenced this pull request Dec 5, 2022
Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.
jmaerz added a commit that referenced this pull request Jan 25, 2023
* Dynamic mapping of pore water tracers to ocean tracers (#192)

* Initial restructuring of sediment-related tracer declaration and initialization

* Introducing mapping function

* Remove unncessary comments

* Fixed diagnostics bug and updated index naming

* Added initial support for NUOPC driver.

* Lon-lat variable sediment porosity (#189)

Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.

* Added wave forcing fields.

* Renamed folder for MCT driver.

* Moved MCT specific file from drivers/cpl_share/ to drivers/mct/.

* Rename drivers/mct/mod_swtfrz.F to drivers/mct/mod_swtfrz.F90.

* Rewrite to drivers/mct/mod_swtfrz.F90 to free format Fortran.

* Remove redundant definition of kOBL.

* Redefine kOBL, cast as integer

* Fixing variable sediment porosity - field initialization in case of `sedbypass=true` (#198)

* Removing bodensed -  Initialization of sediment parameters and fields now in mo_sedmnt

* Hamocc hybrid coord2 (#179)

Make the surface mixed layer depth fractional index `hOBL` available for use in iHAMOCC, and adjust the internal iHAMOCC index `kmle` according to `hOBL`. Default value `kmle = 2` is retained for consistency with isopycnic coordinates.

* Fix porosity read (#201)

* Fixing the reading of variable porosity input field in preparation for the NorESM 2.0.6 release

Cherry-picked from private Ncycleprivate branch 0d56930e2fdd62caba964d375b57304942568926

* Provide number of layers (3rd dim) via ks and not hard-coded

* minor clean-up

* Correct unit of diagnostic variable dp_trc.

* Made conservation and checksum diagnostics selectable by namelist options (default off).

* pCO2, Piston velocity and solubility output (#202)

* add pCO2m (moist), CO2 piston velocity and solubility output - caution: kwco2 piston velocity now really holds only piston velocity (and not times solubility)

* Bugfix pnetcdf (#208)

* Add variables used by PNETCDF to explicit use staements.

* Move implicit none statments

* update explicit use statement for pnetcdf

* fixed units and renamed calcium burial to CaCO3 burial (#212)

Fixed sediment clay units.

* Add option for surface pH output (#221)

* Remove unused parameters in wrt* subroutine calls in ncout_hamocc.F90

* Import get_bgc_namelist only in subroutine where it is needed. (#225)

Co-authored-by: Mats Bentsen <mben@norceresearch.no>
Co-authored-by: Tomas Torsvik <tomas.torsvik.work@gmail.com>
Co-authored-by: Tomas Torsvik <43031053+TomasTorsvik@users.noreply.github.com>
Co-authored-by: Jörg Schwinger <jorg.schwinger@norceresearch.no>
jmaerz added a commit that referenced this pull request Feb 9, 2023
* Dynamic mapping of pore water tracers to ocean tracers (#192)

* Initial restructuring of sediment-related tracer declaration and initialization

* Introducing mapping function

* Remove unncessary comments

* Fixed diagnostics bug and updated index naming

* Added initial support for NUOPC driver.

* Lon-lat variable sediment porosity (#189)

Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.

* Added wave forcing fields.

* Renamed folder for MCT driver.

* Moved MCT specific file from drivers/cpl_share/ to drivers/mct/.

* Rename drivers/mct/mod_swtfrz.F to drivers/mct/mod_swtfrz.F90.

* Rewrite to drivers/mct/mod_swtfrz.F90 to free format Fortran.

* Remove redundant definition of kOBL.

* Redefine kOBL, cast as integer

* Fixing variable sediment porosity - field initialization in case of `sedbypass=true` (#198)

* Removing bodensed -  Initialization of sediment parameters and fields now in mo_sedmnt

* This is the first commit of MKS units. All variables in the subroutines have been converted to MKS [meter, kg, seconds] instead of CGS [cm, gram, seconds] with necessary coefficients. The default option which is CGS reproduce old results. The new option MKS cannot reproduce because of machine precision.

* Hamocc hybrid coord2 (#179)

Make the surface mixed layer depth fractional index `hOBL` available for use in iHAMOCC, and adjust the internal iHAMOCC index `kmle` according to `hOBL`. Default value `kmle = 2` is retained for consistency with isopycnic coordinates.

* BLOM CIME cpp updates to run in NorESM

* bug fixes for the CGS MKS conversion

* cesm thermal forcing bug fixes for reproducibility

* BLOM MKS update to export winds into the CESM using proper units.

* input values in ocn_in case is updated for mks setup

* default cgsmks value changed

* Initialize some variables in the k-epsilon model.

* Fix porosity read (#201)

* Fixing the reading of variable porosity input field in preparation for the NorESM 2.0.6 release

Cherry-picked from private Ncycleprivate branch 0d56930e2fdd62caba964d375b57304942568926

* Provide number of layers (3rd dim) via ks and not hard-coded

* minor clean-up

* Correct unit of diagnostic variable dp_trc.

* Made conservation and checksum diagnostics selectable by namelist options (default off).

* pCO2, Piston velocity and solubility output (#202)

* add pCO2m (moist), CO2 piston velocity and solubility output - caution: kwco2 piston velocity now really holds only piston velocity (and not times solubility)

* Bugfix pnetcdf (#208)

* Add variables used by PNETCDF to explicit use staements.

* Move implicit none statments

* update explicit use statement for pnetcdf

* fixed units and renamed calcium burial to CaCO3 burial (#212)

Fixed sediment clay units.

* - Made the "fuk95" configuration work with MKS units.
- Removed "CGS" CPP flag.
- Changed some unit conversion factors from variables to parameters.
- Introduced rho0 (= 1/alpha0) parameter.
- Updated copyright statements.

* Correct unit conversion of mixed layer depth to pressure.

* Updated NorESM coupling scripts for the use of MKS units.

* Fixed check of unit system when building as NorESM component.

* Add option for surface pH output (#221)

* Remove unused parameters in wrt* subroutine calls in ncout_hamocc.F90

* Import get_bgc_namelist only in subroutine where it is needed. (#225)

* fix missing ' (#228)

Fixing a missing ' that only showed up when using `cisonew`

---------

Co-authored-by: Mats Bentsen <mben@norceresearch.no>
Co-authored-by: Tomas Torsvik <tomas.torsvik.work@gmail.com>
Co-authored-by: Mehmet Ilicak <milicak@itu.edu.tr>
Co-authored-by: Tomas Torsvik <43031053+TomasTorsvik@users.noreply.github.com>
Co-authored-by: Jörg Schwinger <jorg.schwinger@norceresearch.no>
jmaerz added a commit to jmaerz/BLOM that referenced this pull request Aug 9, 2023
Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.
jmaerz added a commit to jmaerz/BLOM that referenced this pull request Aug 9, 2023
Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.
jmaerz added a commit to jmaerz/BLOM that referenced this pull request Aug 9, 2023
* Dynamic mapping of pore water tracers to ocean tracers (NorESMhub#192)

* Initial restructuring of sediment-related tracer declaration and initialization

* Introducing mapping function

* Remove unncessary comments

* Fixed diagnostics bug and updated index naming

* Added initial support for NUOPC driver.

* Lon-lat variable sediment porosity (NorESMhub#189)

Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.

* Added wave forcing fields.

* Renamed folder for MCT driver.

* Moved MCT specific file from drivers/cpl_share/ to drivers/mct/.

* Rename drivers/mct/mod_swtfrz.F to drivers/mct/mod_swtfrz.F90.

* Rewrite to drivers/mct/mod_swtfrz.F90 to free format Fortran.

* Remove redundant definition of kOBL.

* Redefine kOBL, cast as integer

* Fixing variable sediment porosity - field initialization in case of `sedbypass=true` (NorESMhub#198)

* Removing bodensed -  Initialization of sediment parameters and fields now in mo_sedmnt

* Hamocc hybrid coord2 (NorESMhub#179)

Make the surface mixed layer depth fractional index `hOBL` available for use in iHAMOCC, and adjust the internal iHAMOCC index `kmle` according to `hOBL`. Default value `kmle = 2` is retained for consistency with isopycnic coordinates.

* Fix porosity read (NorESMhub#201)

* Fixing the reading of variable porosity input field in preparation for the NorESM 2.0.6 release

Cherry-picked from private Ncycleprivate branch 0d56930e2fdd62caba964d375b57304942568926

* Provide number of layers (3rd dim) via ks and not hard-coded

* minor clean-up

* Correct unit of diagnostic variable dp_trc.

* Made conservation and checksum diagnostics selectable by namelist options (default off).

* pCO2, Piston velocity and solubility output (NorESMhub#202)

* add pCO2m (moist), CO2 piston velocity and solubility output - caution: kwco2 piston velocity now really holds only piston velocity (and not times solubility)

* Bugfix pnetcdf (NorESMhub#208)

* Add variables used by PNETCDF to explicit use staements.

* Move implicit none statments

* update explicit use statement for pnetcdf

* fixed units and renamed calcium burial to CaCO3 burial (NorESMhub#212)

Fixed sediment clay units.

* Add option for surface pH output (NorESMhub#221)

* Remove unused parameters in wrt* subroutine calls in ncout_hamocc.F90

* Import get_bgc_namelist only in subroutine where it is needed. (NorESMhub#225)

Co-authored-by: Mats Bentsen <mben@norceresearch.no>
Co-authored-by: Tomas Torsvik <tomas.torsvik.work@gmail.com>
Co-authored-by: Tomas Torsvik <43031053+TomasTorsvik@users.noreply.github.com>
Co-authored-by: Jörg Schwinger <jorg.schwinger@norceresearch.no>
jmaerz added a commit to jmaerz/BLOM that referenced this pull request Aug 9, 2023
…b#232)

* Dynamic mapping of pore water tracers to ocean tracers (NorESMhub#192)

* Initial restructuring of sediment-related tracer declaration and initialization

* Introducing mapping function

* Remove unncessary comments

* Fixed diagnostics bug and updated index naming

* Added initial support for NUOPC driver.

* Lon-lat variable sediment porosity (NorESMhub#189)

Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.

* Added wave forcing fields.

* Renamed folder for MCT driver.

* Moved MCT specific file from drivers/cpl_share/ to drivers/mct/.

* Rename drivers/mct/mod_swtfrz.F to drivers/mct/mod_swtfrz.F90.

* Rewrite to drivers/mct/mod_swtfrz.F90 to free format Fortran.

* Remove redundant definition of kOBL.

* Redefine kOBL, cast as integer

* Fixing variable sediment porosity - field initialization in case of `sedbypass=true` (NorESMhub#198)

* Removing bodensed -  Initialization of sediment parameters and fields now in mo_sedmnt

* This is the first commit of MKS units. All variables in the subroutines have been converted to MKS [meter, kg, seconds] instead of CGS [cm, gram, seconds] with necessary coefficients. The default option which is CGS reproduce old results. The new option MKS cannot reproduce because of machine precision.

* Hamocc hybrid coord2 (NorESMhub#179)

Make the surface mixed layer depth fractional index `hOBL` available for use in iHAMOCC, and adjust the internal iHAMOCC index `kmle` according to `hOBL`. Default value `kmle = 2` is retained for consistency with isopycnic coordinates.

* BLOM CIME cpp updates to run in NorESM

* bug fixes for the CGS MKS conversion

* cesm thermal forcing bug fixes for reproducibility

* BLOM MKS update to export winds into the CESM using proper units.

* input values in ocn_in case is updated for mks setup

* default cgsmks value changed

* Initialize some variables in the k-epsilon model.

* Fix porosity read (NorESMhub#201)

* Fixing the reading of variable porosity input field in preparation for the NorESM 2.0.6 release

Cherry-picked from private Ncycleprivate branch 0d56930e2fdd62caba964d375b57304942568926

* Provide number of layers (3rd dim) via ks and not hard-coded

* minor clean-up

* Correct unit of diagnostic variable dp_trc.

* Made conservation and checksum diagnostics selectable by namelist options (default off).

* pCO2, Piston velocity and solubility output (NorESMhub#202)

* add pCO2m (moist), CO2 piston velocity and solubility output - caution: kwco2 piston velocity now really holds only piston velocity (and not times solubility)

* Bugfix pnetcdf (NorESMhub#208)

* Add variables used by PNETCDF to explicit use staements.

* Move implicit none statments

* update explicit use statement for pnetcdf

* fixed units and renamed calcium burial to CaCO3 burial (NorESMhub#212)

Fixed sediment clay units.

* - Made the "fuk95" configuration work with MKS units.
- Removed "CGS" CPP flag.
- Changed some unit conversion factors from variables to parameters.
- Introduced rho0 (= 1/alpha0) parameter.
- Updated copyright statements.

* Correct unit conversion of mixed layer depth to pressure.

* Updated NorESM coupling scripts for the use of MKS units.

* Fixed check of unit system when building as NorESM component.

* Add option for surface pH output (NorESMhub#221)

* Remove unused parameters in wrt* subroutine calls in ncout_hamocc.F90

* Import get_bgc_namelist only in subroutine where it is needed. (NorESMhub#225)

* fix missing ' (NorESMhub#228)

Fixing a missing ' that only showed up when using `cisonew`

---------

Co-authored-by: Mats Bentsen <mben@norceresearch.no>
Co-authored-by: Tomas Torsvik <tomas.torsvik.work@gmail.com>
Co-authored-by: Mehmet Ilicak <milicak@itu.edu.tr>
Co-authored-by: Tomas Torsvik <43031053+TomasTorsvik@users.noreply.github.com>
Co-authored-by: Jörg Schwinger <jorg.schwinger@norceresearch.no>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request iHAMOCC Issue mainly concerns the iHAMOCC code base
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants