Skip to content

Sync with UFS WM version on 3/3#194

Merged
uturuncoglu merged 96 commits into
feature/coastal_appfrom
feature/sync
Apr 27, 2026
Merged

Sync with UFS WM version on 3/3#194
uturuncoglu merged 96 commits into
feature/coastal_appfrom
feature/sync

Conversation

@uturuncoglu
Copy link
Copy Markdown
Collaborator

This PR aims to sync UFS Coastal with the authorative repository. Testing and fixing issues are still ongoing.

DeniseWorthen and others added 30 commits July 29, 2025 10:36
…arts for 4 tests after update to ESMF 8.8 (was ufs-community#2796) (ufs-community#2733)

* UFSWM - Add DATM meshes which contain no land mask
* UFSWM - Reinstate comparison of mediator restart files in 4 tests
  * CMEPS -  Map DATM states bilinearly to OCN and ICE
* UFSWM - updated to GOCART v2.4.3
  * GOCART - updated to GOCART v2.4.3
…M6 to its main repo. 20250801 commit ufs-community#2849 (ufs-community#2719)

* UFSWM -  Adds a doubly-periodic "process model" capability to run physics in a simple environment
* UFSWM -  Ursa job card and test resource update
* UFSWM - Jenkins file update: ORT scratch3 and fix for platform log handling
  * FV3 - Adds a doubly-periodic "process model" capability to run physics in a simple environment
    * atmos_cubed_sphere - Adds a doubly-periodic "process model" capability to run physics in a simple environment
  * MOM6 - update MOM6 to its main repo. 20250801 commit

---------

Co-authored-by: Larissa Reames <larissa.reames@noaa.gov>
Co-authored-by: Jong Kim <jong.kim@noaa.gov>
Co-authored-by: Kris Booker <kristopher.booker@tomorrow.io>
Co-authored-by: jiandewang <jiande.wang@noaa.gov>
Co-authored-by: FernandoAndrade-NOAA <Fernando.Andrade-maldonado@noaa.gov>
…-community#2584)

* UFS-WM - ecflow update on gaeac6
  * CMEPS - CMEPS is updated to transfer ocean-current fields from MOM6 to WW3 and to transfer the Stokes drift components from WW3 to MOM6 for the HAFS applications.
  * MOM6 - MOM6 cap is updated to convert a missing value to zero for the imported Stokes drift components.
  * WW3 - WW3 cap is updated to convert a missing value to zero for the imported ocean-current fields for the ufs.hafs applications.

---------

Co-authored-by: Natalie Perlin <Natalie.Perlin@noaa.gov>
…e the detection of Hera/Ursa ufs-community#2858 (ufs-community#2753)

* UFSWM - Fix conus13km tests restart and decomposition reproducibility
* UFSWM - Update the detection of Hera/Ursa
  * AQM - hash update 5d19f59
  * FV3 - Fix conus13km tests restart reproducibility
    * ccpp-physics - Fix the setting of the land mask used in interpolating GLDAS soil data to the model grid

---------

Co-authored-by: DavidHuber-NOAA <david.huber@noaa.gov>
…oper if...else block and re-instatiatin… ufs-community#2859 (ufs-community#2836)

* UFSWM - repo_check.sh update
  * FV3 - Fixes Prate_avg, UPP call frequencies, and makes restart controls a single variable
…expected ranges. Sync of WW3 develop to dev/ufs-weather-model (ufs-community#2852)

* UFSWM - Update CICE and switch to _ai ice history variables. Sync of WW3 develop to dev/ufs-weather-model
  * CICE - Update CICE through 2025-07
  * WW3 - Sync of WW3 develop to dev/ufs-weather-model, includes removal of GOTOs and fixes for compiler

---------

Co-authored-by: Jessica Meixner <Jessica.Meixner@noaa.gov>
…l Parameter to Restart File (ufs-community#2851)

* UFSWM - Fix restart IAU and Ultra-Low reproducibility issues by adding control parameter to restart file
  * WW3 - Add optional control parameter to restart file to ensure consistent IAU and ultra-low reproducibility behavior.
…lation; Update CMEPS and CDEPS (ufs-community#2862) (ufs-community#2818)

* UFSWM - Add FV3 grid mask to regional output domains that indicates grid points outside the computational domain
  * FV3 - Add FV3 grid mask to regional output domains that indicates grid points outside the computational domain
  * CDEPS - update to ESCOMP/main (2025-08)
  * CMEPS - update to ESCOMP/main 

---------

Co-authored-by: Denise Worthen <denise.worthen@noaa.gov>
ufs-community#2780)

* UFSWM - Initial implementation of the MPAS dynamical core in the UWM atmosphere; shorten RAP tests to 12 hrs
  * CMEPS - Changes for the renaming of FV3 to UFSATM 
  * noahmp - Changes for the renaming of FV3 to UFSATM 
  * UFSATM - Initial implementation of the MPAS dynamical core in the atmospheric component of the UWM.

---------

Co-authored-by: Gillian Petro <gillian.petro@noaa.gov>
Co-authored-by: Kris Booker <kristopher.booker@tomorrow.io>

Co-authored-by: JONG KIM <jong.kim@noaa.gov>
Co-authored-by: epic-cicd-jenkins <ecc.platform@noaa.gov>
Co-authored-by: Fernando Andrade - NOAA <121964418+FernandoAndrade-NOAA@users.noreply.github.com>
Co-authored-by: Dusan Jovic <dusan.jovic@noaa.gov>
Co-authored-by: FernandoAndrade-NOAA <fernando.andrade-maldonado@noaa.gov>
* UFS-WM - add modulefile for container
* UFSWM - Fix cdmbgwd issue in default_vars
…unity#2806)

* UFSWM - Scale-aware 3DTKE EDMF GFS PBL related updates/modifications and enable it being used with TTE-EMDF and use_lpt option. (from @JongilHan66, @zhup01, @samuelkyfung)
  * FV3 - Scale-aware 3DTKE EDMF GFS PBL related updates/modifications and enable it being used with TTE-EMDF and use_lpt option. (from @JongilHan66, @zhup01, @samuelkyfung)
    * ccpp-physics - Update scale-aware 3DTKE EDMF (from @JongilHan66, @zhup01, @samuelkyfung) and introduce TTE-EDMF in GFS PBL scheme (from @JongilHan66).
    * atmos_cubed_sphere - Scale-aware 3DTKE EDMF GFS PBL related updates/modifications from @JongilHan66, @zhup01, @samuelkyfung.
…Sv13/SFSv1 (ufs-community#2872)

* UFSWM - point to updated FV
  * FV3 - point to updated ccpp-physics
    * ccpp-physics - physics changes in saSAS
  * MOM6 - update MOM6 to its main repo. 20250818 (default parameter changes) and cleanup MOM_input. 
  * Add ENABLE_BUGS_BY_DEFAULT = False for all resolution settings and removed all "bug" flags in current MOM_input.
  * DEFAULT_ANSWER_DATA is set to 20250818 but WAVE_INTERFACE_DATA is set to 20230101
  * Equation of state is WRIGHT_FULL now
…munity#2772)

* UFSWM - Update default_vars and tests so that LSM 1/2 sets LANDICE true/false appropriately.
…d build env to remove gnu from stack (was ufs-community#2842) (ufs-community#2867)

* UFSWM - update ufs_noaacloud.intel.lua module file
* UFSWM - replace icplocn2atm with use_oceanuv in scripts and tests
  * CMEPS - update CCPP metadata and type defs for use_oceanuv
  * FV3 - 
    * ccpp-physics - replace instances of icplocn2atm with use_oceanuv
    * atmos_cubed_sphere - replace instances of icplocn2atm with use_oceanuv
  * NOAHMP - replace icplocn2atm with use_oceanuv
* UFSWM - add cplocn2atm to global_control.nml; set true for global SFS test 
  * CMEPS - add export of ocean surface currents to ATM
…ow. Minor document updates to reflect new HSD container (was ufs-community#2885). PR template update (was ufs-community#2891) (ufs-community#2889)

* UFSWM - Update default_vars for stochastic physics for global-workflow
* UFSWM - Update WM PR template
* UFSWM - Updating HSD docs
* UFSWM - Automate addition of PRs to project board
* UFSWM - Fix add-to-project authentication for GH project board
…ty#2886)

Modify NoahMP glacier code and initialization to address forecast biases (ufs-community#2886)

* UFSWM - point to updated UFSATM
  * FV3 - point to updated ccpp-physics
    * ccpp-physics - update noahmp glacier physics and init code
… WW3. Bring in several bug fixes affecting netcdf field output. (ufs-community#2826) (ufs-community#2444)

* UFSWM - Add ZStd library and enable netcdf support for it.
* * WW3 -  This branch of WW3 fixes several bugs in parallel netcdf output from WW3. The tests in ufs-weather-model are modified to test the WW3 netcdf output fields rather than WW3 binary output.
… Project Board Label Updates ufs-community#2902 (ufs-community#2913)

* UFSWM - Fix Atmos%iau_offset bug, remove goto statements from noahmp, add spack ci, and add changes to PR proj board
  * UFSATM - Set Atmos%iau_offset to iau_offset in module_fcst_grid_comp
  * NOAHMP - Remove goto statements and remove leftover debug write statement

---------

Co-authored-by: gspetro-NOAA <gillian.petro@noaa.gov>
Co-authored-by: Alexander Richert <alexander.richert@noaa.gov>
* UFSWM - Fix computation of time-averaged radiation quantities 
  * FV3 - Fix computation of time-averaged radiation quantities
    * ccpp-physics - Fix computation of time-averaged radiation quantities
* UFSWM - Host-side changes for rte-rrtmgp update.
  * FV3 - Atmosphere component changes for rte-rrtmgp update.
    * ccpp-physics - Update rte-rrtmgp hash to v1.8. Add single-precision to rte-rrtmgp CCPP interface.
* UFSWM - Sync from NCAR/main + Thompson params
  * FV3 - Sync from NCAR/main + Thompson params
    * ccpp-physics - Sync from NCAR/main + Thompson params
…on/AQM.v7 and reverse the Rsnow value + allow hfreeze as a parameter for MOM_input ufs-community#2920  (ufs-community#2893)

* UFSWM - Add a variable to set the hfreeze value for MOM6 input.
  * AQM - Bring in additional changes from production/AQM.v7 and reversed the Rsnow value
…ty#2939 // Fix fpe in MOM6 ufs-community#2927 (ufs-community#2932)

* UFSWM - Update inline post, add route handle opt, fix MOM6 divide by zero
  * UFSATM - Update inline post read interface and upp hash.
     * upp - Change BRTMP into BRTEMP for GFS, GEFS, SFS
  * MOM6 - Fix divide by zero fpe in MOM_oda_incupd.F90

---------

Co-authored-by: Dusan Jovic <dusan.jovic@noaa.gov>
…ommunity#2940 // Turn off HYCOM tests ufs-community#2936 // Ursa CICD update ufs-community#2945 (ufs-community#2948)

* UFSWM - update cloud cover parameters in ccpp-physics, update WW3, disable HYCOM RTs, add Ursa CI/CD suport 
  * UFSATM -  updates physics 
    * ccpp-physics - change to use moorthi parameters in xu/randall for Thompson M
  * WW3 - Updates WW3 to current develop and addresses compiler warnings
Copy link
Copy Markdown
Collaborator

@mansurjisan mansurjisan left a comment

Choose a reason for hiding this comment

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

Everything looks good to me. Test passed both on WCOSS2 and Hercules.

@SmithJos13
Copy link
Copy Markdown

@uturuncoglu Okay I rechecked out the model, and it seems to be working now. I'll let you know when I have checked the output!

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@SmithJos13 Okay. Perfect!

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@mansurjisan Thanks for the update. If you are fine with the results, please go ahead and review the PR and approve. So, I could merge it once I got confirmation from @SmithJos13 too. Thanks all of your help.

@mansurjisan
Copy link
Copy Markdown
Collaborator

Thanks, @uturuncoglu . I already reveiwed and approved the PR this morning. Let me know if you need any help.

@SmithJos13
Copy link
Copy Markdown

SmithJos13 commented Apr 17, 2026

@uturuncoglu my first run doesn't quite look right I'm going to do some experimenting to see if I can find the issue
Left is the run with the sync branch right is my confirmed working run
Screenshot 2026-04-17 at 11 21 15 AM

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@SmithJos13 Okay. Let me know if you find something. I'll hold this PR until Monday and merge it. If you find something, we could fix it before the merge. Otherwise, we could still put fixes after the merge. Let me know what you think?

@SmithJos13
Copy link
Copy Markdown

SmithJos13 commented Apr 17, 2026

Okay the results are looking better, but I needed to comment out the preprocessor flags USE_CICE. I think there might be something wrong with the way the USE_CICE flag is being passed to the SCHISM and SCHISM-ESMF component. Left being sync branch with the preprocessor flags being commented out and the right being my working configuration.

Screenshot 2026-04-17 at 4 07 21 PM

@SmithJos13
Copy link
Copy Markdown

https://github.com/oceanmodeling/schism/blob/99627e7a6b32df979acf0a2f23ed58d0f628fbb9/src/Hydro/schism_init.F90#L1701

      allocate(aice(npa),tau_oi(2,npa),fresh_wa_flux(npa),salinity_flux(npa),net_heat_flux(npa), &
               srad_o(npa),srad_th_ice(npa),stat=istat)
      if(istat/=0) call parallel_abort('INIT: ice frac allocation failure')
      aice(:)          = real(0)
      tau_oi(:,:)      = real(0)
      fresh_wa_flux(:) = real(0)
      salinity_flux(:) = real(0)
      net_heat_flux(:) = real(0)
      srad_o(:)        = real(0)
      srad_th_ice(:)   = real(0)


       allocate(sflux_o(npa),stat=istat)
       sflux_o(:)     = real(0)

This is repeated code that apears within the macros just needs to be removed.

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@SmithJos13 Okay. I also updated CDEPS DATM ERA5 mode for shortwave bands. So, we have SCHISM CPP option and CDEPS fix in the sync branch. Let me know if you ghee any issue. In the build you need to set USE_CICE=ON to activate -DUSE_ICE CPP option. By default, it is OFF. Anyway, just test the new version and let me know if you see anything wrong.

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@SmithJos13 do you also want me to remove

       allocate(sflux_o(npa),stat=istat)
       sflux_o(:)     = real(0)

part?

@josephzhang8
Copy link
Copy Markdown
Collaborator

https://github.com/oceanmodeling/schism/blob/99627e7a6b32df979acf0a2f23ed58d0f628fbb9/src/Hydro/schism_init.F90#L1701

      allocate(aice(npa),tau_oi(2,npa),fresh_wa_flux(npa),salinity_flux(npa),net_heat_flux(npa), &
               srad_o(npa),srad_th_ice(npa),stat=istat)
      if(istat/=0) call parallel_abort('INIT: ice frac allocation failure')
      aice(:)          = real(0)
      tau_oi(:,:)      = real(0)
      fresh_wa_flux(:) = real(0)
      salinity_flux(:) = real(0)
      net_heat_flux(:) = real(0)
      srad_o(:)        = real(0)
      srad_th_ice(:)   = real(0)


       allocate(sflux_o(npa),stat=istat)
       sflux_o(:)     = real(0)

This is repeated code that apears within the macros just needs to be removed.

I need to do on SCHISM repo but prefer Ufuk to submit a PR once all is done. Thx!

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@josephzhang8 let us push to our fork first and then I'll open an PR in the automative repository to bring all remaining changes.

@SmithJos13
Copy link
Copy Markdown

@uturuncoglu Yes you can remove that part

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@SmithJos13 Okay. That is also in the sync branch. So, you have everything that you need in the sync branch. Please update your code and build with USE_CICE=ON. I hope you will get the correct results now. Thanks again all of your hard work to bring this capability.

@SmithJos13
Copy link
Copy Markdown

SmithJos13 commented Apr 17, 2026

Of course!

looks like there might be some issues with new CDEPS functionality during the build. Probably just need to declare a variable.

/work2/noaa/vdatum/jsmith/Coastal_sync_check/ufs-weather-model/CDEPS-interface/CDEPS/datm/datm_datamode_era5_mod.F90(386): error #6404: This name does not have a type, and
 must have an explicit type.   [STRM_FAXA_SWDN]
    if (associated(strm_Faxa_swdn)) then

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@SmithJos13 Okay. Fixed. Now it compiles. If you could check the mediator history file and make sure about fields produced by the CDEPS, that would be great.

@SmithJos13
Copy link
Copy Markdown

Will do! I'll report back!

@SmithJos13
Copy link
Copy Markdown

SmithJos13 commented Apr 20, 2026

Good news!!! It worked! The results look consistent!
Screenshot 2026-04-20 at 12 33 09 PM

also looks like all the fields are in the mediator history files:

 double atmImp_Faxa_swdn(time, atmImp_ny, atmImp_nx) ;
                atmImp_Faxa_swdn:_FillValue = 1.e+30 ;
                atmImp_Faxa_swdn:units = "W m-2" ;
                atmImp_Faxa_swdn:standard_name = "atmImp_Faxa_swdn" ;
        double atmImp_Faxa_swndf(time, atmImp_ny, atmImp_nx) ;
                atmImp_Faxa_swndf:_FillValue = 1.e+30 ;
                atmImp_Faxa_swndf:units = "W m-2" ;
                atmImp_Faxa_swndf:standard_name = "atmImp_Faxa_swndf" ;
        double atmImp_Faxa_swndr(time, atmImp_ny, atmImp_nx) ;
                atmImp_Faxa_swndr:_FillValue = 1.e+30 ;
                atmImp_Faxa_swndr:units = "W m-2" ;
                atmImp_Faxa_swndr:standard_name = "atmImp_Faxa_swndr" ;
        double atmImp_Faxa_swnet(time, atmImp_ny, atmImp_nx) ;
                atmImp_Faxa_swnet:_FillValue = 1.e+30 ;
                atmImp_Faxa_swnet:units = "W m-2" ;
                atmImp_Faxa_swnet:standard_name = "atmImp_Faxa_swnet" ;
        double atmImp_Faxa_swvdf(time, atmImp_ny, atmImp_nx) ;
                atmImp_Faxa_swvdf:_FillValue = 1.e+30 ;
                atmImp_Faxa_swvdf:units = "W m-2" ;
                atmImp_Faxa_swvdf:standard_name = "atmImp_Faxa_swvdf" ;
        double atmImp_Faxa_swvdr(time, atmImp_ny, atmImp_nx) ;
                atmImp_Faxa_swvdr:_FillValue = 1.e+30 ;
                atmImp_Faxa_swvdr:units = "W m-2" ;
                atmImp_Faxa_swvdr:standard_name = "atmImp_Faxa_swvdr" ;

Update checked the values of the shortwave bands against the downwelling component from the mediator history files in MATLAB and looks like the agreement it is good!!

max(swvdf+swvdr+swndr+swndf-swnet,[],'all')

ans =

     1.136868377216160e-13

I think we are ready to merge! if there is anything else you want me to check first let me know.

@uturuncoglu
Copy link
Copy Markdown
Collaborator Author

@SmithJos13 That is great news. I'll create baselines with this version and then merge it. Thanks for all of your help. Please also share the latest version of your run directories that I could use for RTs.

@SmithJos13
Copy link
Copy Markdown

Here is the run directory for CICE-SCHISM /work2/noaa/vdatum/jsmith/Demos/Run_Dir_DATM_SCH_CICE and for standalone run /work2/noaa/vdatum/jsmith/Coastal_PR/Run_Dir/CICE_Standalone Let me know if you have any issues.

@uturuncoglu uturuncoglu merged commit 3fa7711 into feature/coastal_app Apr 27, 2026
6 of 13 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.