Skip to content

NSST initialization changes#576

Merged
grantfirl merged 4 commits intoNCAR:mainfrom
grantfirl:nsst_init
Apr 2, 2025
Merged

NSST initialization changes#576
grantfirl merged 4 commits intoNCAR:mainfrom
grantfirl:nsst_init

Conversation

@grantfirl
Copy link
Copy Markdown
Collaborator

@grantfirl grantfirl commented Mar 27, 2025

Following discussion with @hertneky, this changes the following:

  • Change the initial value of the ocean mixed layer depth (xz) to 20.0 m to match UFS
  • Change ifd or the flag to turn on NSST to 1.0 if the surface is ocean; this only has an effect if prescribed surface fluxes are off and NSST is in the SDF and nstf_name(1) > 0.
    -- if ifd starts as zero, NSST code can eventually set it to 1 if the model time is after 6 AM local time and ifd starts as 0, but during some cases, it was noticed that ifd wouldn't change to 1 (and therefore activate NSST) until the first "sunrise" after the model initializes (e.g. if a case started at noon, ifd wouldn't set itself to 1 until the next morning, even though NSST should be active immediately)
  • Set the nstf_name(2) value to 1 (NSST spin-up) in every SCM physics namelist to be consistent; the only chance for the SCM to not need spin-up is for a UFS-based case that has all of the NSST variables ready to be read in; NOTE: for UFS cases needing to use NSST and when NSST variables are included in the case data file, the nstf_name(2) should be set to 0 (I don't think that this is documented anywhere. We can also probably make sure this happens programatically in the UFS_case_gen scripts. Added Set nstf_name(2) to 0 for UFS_case_gen cases #577 to address in the future).

New functionality needed for @bluefinweiwei:

  • Add do_sst_initialize_only namelist variable (default value of F) to the case configuration namelist; if set to T, scm_state%T_surf (which gets pointed to by the sea_surface_temperature variable) only gets initialized from the case data file SST value. The default/original behavior is that when the surface_forcing_temp variable in the DEPHY-formatted case data file is set to ts (or any of the other options too, for that matter), the scm_state%T_surf gets updated from the case forcing file every timestep and physics has very little "authority" over this variable -- it may get changed during the physics call, but it will get reset when forcing occurs. The new behavior allows physics (including NSST) to change sea_surface_temperature how it wants to.

…data and let physics control it the rest of the way; update nstf_name in physics namelists to make sure that spinup is on for the SCM
Copy link
Copy Markdown
Member

@scrasmussen scrasmussen left a comment

Choose a reason for hiding this comment

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

Changes look good to me! Probably want another reviewer with a better understanding of the physics but from a coding stand point it seems good to me.

Copy link
Copy Markdown
Collaborator

@hertneky hertneky left a comment

Choose a reason for hiding this comment

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

These changes look good to me.

@grantfirl grantfirl merged commit c8e4138 into NCAR:main Apr 2, 2025
16 of 17 checks passed
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.

3 participants