Source code for pycif.plugins.domains.chimere.create_domain
import os
from logging import info
import numpy as np
import shutil
from ....utils.path import init_dir
from .utils.make_hcoord import make_hcoord
from .utils.make_vcoord import make_vcoord
from .utils.make_landuse import make_landuse
from .utils.make_domainlist import make_domainlist
[docs]
def create_domain(domain, **kwargs):
"""Generate and write CHIMERE coordinate files from YAML configuration.
Creates the ``{workdir}/domain/`` directory tree and calls:
* :func:`make_hcoord` — generates horizontal coordinate files
(``COORD_{domid}`` and ``COORDcorner_{domid}``).
* :func:`make_vcoord` — generates the vertical sigma-level file
(``VCOORD_{nlev}_{p1}_{pmax}``).
* :func:`make_landuse` — copies or generates the land-use file.
* :func:`make_domainlist` — appends the new domain entry to
``domainlist.nml``.
Args:
domain: CHIMERE domain plugin instance with ``workdir``,
``type``, and all grid-geometry parameters set.
**kwargs: unused.
"""
# Initialize domain folder where new files will be dumped
init_dir(f"{domain.workdir}/domain")
init_dir(f"{domain.workdir}/domain/VCOORD/")
init_dir(f"{domain.workdir}/domain/LANDUSE/")
# Generate HCOORD
make_hcoord(domain)
# Generate VCOORD
make_vcoord(domain)
# Make LANDUSE
make_landuse(domain)
# Update domainlist
make_domainlist(domain)