Source code for compass.ocean.tests.global_ocean.files_for_e3sm.scrip

import os

from mpas_tools.scrip.from_mpas import scrip_from_mpas

from compass.io import symlink
from compass.ocean.tests.global_ocean.files_for_e3sm.files_for_e3sm_step import (  # noqa: E501
    FilesForE3SMStep,
)


[docs] class Scrip(FilesForE3SMStep): """ A step for creating SCRIP files from the MPAS-Ocean mesh """
[docs] def __init__(self, test_case): """ Create a new step Parameters ---------- test_case : compass.ocean.tests.global_ocean.files_for_e3sm.FilesForE3SM The test case this step belongs to """ # noqa: E501 super().__init__(test_case, name='scrip')
def setup(self): """ setup input files based on config options """ super().setup() self.add_output_file(filename='ocean.scrip.nc') with_ice_shelf_cavities = self.with_ice_shelf_cavities if with_ice_shelf_cavities is not None and with_ice_shelf_cavities: self.add_output_file(filename='ocean.mask.scrip.nc')
[docs] def run(self): """ Run this step of the testcase """ super().run() with_ice_shelf_cavities = self.with_ice_shelf_cavities mesh_short_name = self.mesh_short_name creation_date = self.creation_date if with_ice_shelf_cavities: nomask_str = '.nomask' else: nomask_str = '' local_filename = 'ocean.scrip.nc' scrip_filename = \ f'ocean.{mesh_short_name}{nomask_str}.scrip.{creation_date}.nc' scrip_from_mpas('restart.nc', local_filename) diagnostic_grids_dir = \ '../assembled_files/diagnostics/grids' try: os.makedirs(diagnostic_grids_dir) except FileExistsError: pass symlink(os.path.abspath(local_filename), f'{self.ocean_inputdata_dir}/{scrip_filename}') symlink(os.path.abspath(local_filename), f'{diagnostic_grids_dir}/{scrip_filename}') if with_ice_shelf_cavities: local_filename = 'ocean.mask.scrip.nc' scrip_mask_filename = \ f'ocean.{mesh_short_name}.mask.scrip.{creation_date}.nc' scrip_from_mpas('restart.nc', local_filename, useLandIceMask=True) symlink(os.path.abspath(local_filename), f'{self.ocean_inputdata_dir}/{scrip_mask_filename}') symlink(os.path.abspath(local_filename), f'{diagnostic_grids_dir}/{scrip_mask_filename}')