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

Geos cycling tasks #184

Merged
merged 149 commits into from
Jun 20, 2023
Merged

Geos cycling tasks #184

merged 149 commits into from
Jun 20, 2023

Conversation

Dooruk
Copy link
Collaborator

@Dooruk Dooruk commented Jun 9, 2023

Description

Major refactoring of GEOSgcm gcm_run.j within Swell and the addition of relevant tasks and utilities. Includes recent updates regarding configurations and task questions.

New suite forecast_geos allows running coupled GEOSgcm with 5 deg ocean horizontal resolution and PE12x72-CF atm. resolution. 0.66 and 0.25 degree tests were also simulated but they will require a few more modifications to run.

New suite 3dvar_cycle is capable of running coupled GEOSgcm with 5 deg ocean horizontal resolution and PE12x72-CF atm. resolution with 24 hour DA window. 2/3- and 1/4-degrees runs are also possible. Appropriate IC files need to be provided and the rest is handled by 3dvar_cycle

These changes allow hot starting 3DVar cycling GEOS from a previous run using configuration files created with gcm_setup. Swell assumes $HOMDIR and $EXPDIR are collocated (if not, only the RC folder needs to be moved from $EXPDIR to the $HOMDIR).

User needs to point to the $HOMDIR of the previous run (for hotstarting) as well as the *_rst files, MOM.res.nc (can be multiple), and tile.bin created by a previous GEOS simulation. Rest is handled by Swell tasks internally.

Capabilities

  • Parsing AGCM.rc, CAP.rc, and gcm_run.j into dictionaries to obtain grid, BC, and physics information. This allows modifications of BCs according to cycle time step similar to what's done in gcm_run.j.
  • Using dictionary or string replacement for modifying NUM_SGMT and JOB_SGMT entries in CAP.rc and 'n' to 'r' change in input.nml .
  • Creating cap_restart automatically.
  • Renaming *_checkpoint to *_rst.
  • Can handle optional restart output option in AGCM.rc called RECORD_FREQUENCY which will be useful for DA outputs.
  • Obtaing next cycle dir information using forecast duration.
  • Works with Skylab v4.
  • Works with GEOSgcm Krok
  • Time information for GEOS is obtained from the *_rst files. This could pose an issue between yaml setup and restart files so probably requires some time difference check in Swell. GEOSgcm handles this internally and quits if mismatch is too high.
  • Updating MOM.res.nc with the ocn.analysis file from SOCA with PrepareAnalysis task. This task could easily be updated to handle ice, sfc, and bgc files using SOCA nomenclature.
  • GEOS model files are now confined in geosdir.

Some current issues

  • Only 6 x 1 processor layout is supported for now as that is hard coded in the AGCM.rc and MOM_override which is obtained by gcm_setup.
  • RunGeosExecutable does not allow repeating runs in the same folder if the model progressed some time steps during the first try and outputted history files. GEOS fails and exits if it sees those history files during next try.
  • MPI arguments from gcm_run.j were not included. mpirun automatically assumes MOM6 (LD_PRELOAD=$GEOSDIR/lib/libmom6.so was not necessary). These did not cause issues on my end but something to keep in mind.
  • RPLY works for 0.25 degree tests but only works for certain cycle start times, more relevant for cycling DA considerations.
  • -P1D in flow.cylc requires manual change for geos suites, -P1 does not work in UTC mode.
  • cycle_times need to be added to flow.cylc for 3dvar_cycle suite.
  • DA cycling works with restarts, gives NaN error with history files.
  • Storing restart and obs files outside of run directories.

@Dooruk Dooruk changed the title Feature/cycle 3dvar newconfig Geos cycling tasks Jun 9, 2023
Copy link
Contributor

@danholdaway danholdaway left a comment

Choose a reason for hiding this comment

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

A few comments after looking through the code. I haven't tried to run anything yet.

src/swell/tasks/base/task_base.py Show resolved Hide resolved
src/swell/tasks/get_restart.py Outdated Show resolved Hide resolved
src/swell/tasks/get_restart.py Outdated Show resolved Hide resolved
src/swell/tasks/get_restart.py Show resolved Hide resolved
src/swell/tasks/run_geos_executable.py Outdated Show resolved Hide resolved
src/swell/tasks/run_geos_executable.py Outdated Show resolved Hide resolved
src/swell/utilities/bin/generate_task_questions_dict.py Outdated Show resolved Hide resolved
src/swell/utilities/geos.py Show resolved Hide resolved
@danholdaway
Copy link
Contributor

Thanks for putting together this great and extensive piece of work. I haven't tested things yet but started adding a few minor comments.

Copy link
Contributor

@danholdaway danholdaway left a comment

Choose a reason for hiding this comment

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

Swell cycles!

@danholdaway danholdaway merged commit f7c28fc into develop Jun 20, 2023
@Dooruk Dooruk deleted the feature/cycle_3dvar_newconfig branch July 7, 2023 20:01
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