Skip to content

expose ice_ref_salinity to the namelist#36

Merged
anton-seaice merged 3 commits intoaccess-esm1.6from
32-ice_ref_salinity
Jun 4, 2025
Merged

expose ice_ref_salinity to the namelist#36
anton-seaice merged 3 commits intoaccess-esm1.6from
32-ice_ref_salinity

Conversation

@anton-seaice
Copy link
Copy Markdown
Collaborator

This makes the assumed salinity of sea ice configurable, so we can set it the same as the MOM value

(configured in MOM here)

We use 4ppt in MOM for historical reasons, and did that in CICE4 too.

@anton-seaice anton-seaice self-assigned this Jun 3, 2025
@anton-seaice anton-seaice requested a review from dougiesquire June 3, 2025 06:53
@anton-seaice
Copy link
Copy Markdown
Collaborator Author

Contributes to #32

Lfresh = Lsub-Lvap ,&! latent heat of melting of fresh ice (J/kg)
Timelt = 0.0_dbl_kind ,&! melting temperature, ice top surface (C)
Tsmelt = 0.0_dbl_kind ,&! melting temperature, snow top surface (C)
ice_ref_salinity = 5._dbl_kind, &!8._dbl_kind ,&! (ppt)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I think this still needs to be defined inside an #ifndef AusCOM?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

ok done

Comment thread drivers/access/ice_constants.F90 Outdated
Tocnfrz ! freezing temp of seawater (C),
Tocnfrz , &! freezing temp of seawater (C),
! used as Tsfcn for open water
ice_ref_salinity ! (ppt)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Is it worth adding a comment with a description of the variable?

E.g.

Suggested change
ice_ref_salinity ! (ppt)
ice_ref_salinity ! reference salinity for ice–ocean exchanges (ppt)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

ok done

@anton-seaice
Copy link
Copy Markdown
Collaborator Author

I made some refinements @dougiesquire - let me know

!ars599: 26032014: change to public
!ars599: 24042015: remove dragio!!
#endif
#ifndef AusCOM
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Given you're now rearranging things, can this and the prior ifndef blocks be consolidated from:

#ifndef AusCOM
         ! multilayers with the UM coupling
         aicenmin_ml = 0.00001_dbl_kind, &! AEW: min aice we want to allow when using
         snowpatch = 0.02_dbl_kind, & ! parameter for fractional snow area (m)
#else
         aicenmin_ml = 0.00001_dbl_kind! AEW: min aice we want to allow when using
#endif
#ifndef AusCOM
         !!! dragio    = 0.00536_dbl_kind ,&! ice-ocn drag coefficient
         dragio    = 0.01_dbl_kind ,&!!! 20170922 test new value as per spo 
         Tocnfrz   = -1.8_dbl_kind    ,&! freezing temp of seawater (C),
                                        ! used as Tsfcn for open water
         ice_ref_salinity = 5._dbl_kind ! reference salinity for ice–ocean exchanges (ppt)
                                        ! n.b. CICE6 uses 4 ppt
#else
      ! get these in ice_init from namelist
      real (kind=dbl_kind), public :: &
         dragio   ,  & ! ice-ocn drag coefficient
         Tocnfrz ,   & ! freezing temp of seawater (C),
                       ! used as Tsfcn for open water
         ice_ref_salinity ! reference salinity for ice–ocean exchanges (ppt)
#endif

to:

         ! multilayers with the UM coupling
         aicenmin_ml = 0.00001_dbl_kind ! AEW: min aice we want to allow when using
#ifndef AusCOM
      real (kind=dbl_kind), parameter, public :: &
         snowpatch = 0.02_dbl_kind, & ! parameter for fractional snow area (m)
         !!! dragio    = 0.00536_dbl_kind ,&! ice-ocn drag coefficient
         dragio    = 0.01_dbl_kind ,&!!! 20170922 test new value as per spo 
         Tocnfrz   = -1.8_dbl_kind    ,&! freezing temp of seawater (C),
                                        ! used as Tsfcn for open water
         ice_ref_salinity = 5._dbl_kind ! reference salinity for ice–ocean exchanges (ppt)
                                        ! n.b. CICE6 uses 4 ppt
#else
      ! get these in ice_init from namelist
      real (kind=dbl_kind), public :: &
         dragio   ,  & ! ice-ocn drag coefficient
         Tocnfrz ,   & ! freezing temp of seawater (C),
                       ! used as Tsfcn for open water
         ice_ref_salinity ! reference salinity for ice–ocean exchanges (ppt)
#endif

Copy link
Copy Markdown
Collaborator Author

@anton-seaice anton-seaice Jun 4, 2025

Choose a reason for hiding this comment

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

I liked having the dragio / TocnFx / ice_ref_salinity in adjacent lines ?

Copy link
Copy Markdown

@dougiesquire dougiesquire Jun 4, 2025

Choose a reason for hiding this comment

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

I mostly have an issue (issue is an overstatement) with aicenmin_ml = 0.00001_dbl_kind being in both clauses. What about:

         ! multilayers with the UM coupling
         aicenmin_ml = 0.00001_dbl_kind ! AEW: min aice we want to allow when using
#ifndef AusCOM
      real (kind=dbl_kind), parameter, public :: &
         snowpatch = 0.02_dbl_kind ! parameter for fractional snow area (m)
#endif

#ifndef AusCOM
      real (kind=dbl_kind), parameter, public :: &
         !!! dragio    = 0.00536_dbl_kind ,&! ice-ocn drag coefficient
         dragio    = 0.01_dbl_kind ,&!!! 20170922 test new value as per spo 
         Tocnfrz   = -1.8_dbl_kind    ,&! freezing temp of seawater (C),
                                        ! used as Tsfcn for open water
         ice_ref_salinity = 5._dbl_kind ! reference salinity for ice–ocean exchanges (ppt)
                                        ! n.b. CICE6 uses 4 ppt
#else
      ! get these in ice_init from namelist
      real (kind=dbl_kind), public :: &
         dragio   ,  & ! ice-ocn drag coefficient
         Tocnfrz ,   & ! freezing temp of seawater (C),
                       ! used as Tsfcn for open water
         ice_ref_salinity ! reference salinity for ice–ocean exchanges (ppt)
#endif

This isn't particularly nice either. If you resist this in any way I will yield and approve 🙂

@anton-seaice
Copy link
Copy Markdown
Collaborator Author

anton-seaice commented Jun 4, 2025

back to you @dougiesquire

Copy link
Copy Markdown

@dougiesquire dougiesquire left a comment

Choose a reason for hiding this comment

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

Thanks @anton-seaice

@anton-seaice anton-seaice merged commit 8f074fa into access-esm1.6 Jun 4, 2025
4 checks passed
@anton-seaice anton-seaice deleted the 32-ice_ref_salinity branch June 4, 2025 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants