Skip to content

Commit

Permalink
Use ocean framework time in isomip_plus
Browse files Browse the repository at this point in the history
This allows time steps that are fractions of a second.
  • Loading branch information
xylar committed Feb 16, 2024
1 parent 6a32832 commit 77f99e5
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 15 deletions.
9 changes: 3 additions & 6 deletions compass/ocean/tests/isomip_plus/forward.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import os
import shutil
import time

import numpy as np
import xarray

from compass.model import run_model
from compass.ocean.tests.isomip_plus.evap import update_evaporation_flux
from compass.ocean.tests.isomip_plus.viz.plot import MoviePlotter
from compass.ocean.time import get_time_interval_string
from compass.step import Step


Expand Down Expand Up @@ -148,11 +148,8 @@ def run(self):
dt_per_km = config.getfloat('isomip_plus', 'dt_per_km')
dt_btr_per_km = config.getfloat('isomip_plus', 'dt_btr_per_km')

# https://stackoverflow.com/a/1384565/7728169
# Note: this will drop any fractional seconds, which is usually okay
dt = time.strftime('%H:%M:%S', time.gmtime(dt_per_km * resolution))
btr_dt = time.strftime(
'%H:%M:%S', time.gmtime(dt_btr_per_km * resolution))
dt = get_time_interval_string(seconds=dt_per_km * resolution)
btr_dt = get_time_interval_string(seconds=dt_btr_per_km * resolution)

options = dict(config_dt=f"'{dt}'",
config_btr_dt=f"'{btr_dt}'")
Expand Down
14 changes: 5 additions & 9 deletions compass/ocean/tests/isomip_plus/ssh_adjustment.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import time

from compass.ocean.iceshelf import adjust_ssh
from compass.ocean.time import get_time_interval_string
from compass.step import Step


Expand Down Expand Up @@ -86,14 +85,11 @@ def run(self):
dt_per_km = config.getfloat('isomip_plus', 'dt_per_km')
dt_btr_per_km = config.getfloat('isomip_plus', 'dt_btr_per_km')

# https://stackoverflow.com/a/1384565/7728169
# Note: this will drop any fractional seconds, which is usually okay
dt = time.strftime('%H:%M:%S', time.gmtime(dt_per_km * resolution))
btr_dt = time.strftime(
'%H:%M:%S', time.gmtime(dt_btr_per_km * resolution))
dt = get_time_interval_string(seconds=dt_per_km * resolution)
btr_dt = get_time_interval_string(seconds=dt_btr_per_km * resolution)

options = dict(config_dt="'{}'".format(dt),
config_btr_dt="'{}'".format(btr_dt))
options = dict(config_dt=f"'{dt}'",
config_btr_dt=f"'{btr_dt}'")
self.update_namelist_at_runtime(options)

iteration_count = config.getint('ssh_adjustment', 'iterations')
Expand Down

0 comments on commit 77f99e5

Please sign in to comment.