Skip to content

HEMCO PIO module #4

Description

@jimmielin

Task description

Develop a PIO module for HEMCO.

Initialization

DOF needs to be pre-generated for PIO to work; need to look at restart file examples to see how this is approached.

Read routines

Need to implement a HEMCO-compatible IO routine which reads netCDF gridded data (lat-lon for now) and regrid to HEMCO internal grid structure (ESMF_Grid).

It will implement a routine with this signature:

SUBROUTINE HCOIO_Read( am_I_Root, HcoState, Lct, RC )

And basically write data on this CPU from this file path: Lct%Dct%Dta%ncFile (ListContainer -> DataContainer -> Data -> ncFile array) to this array structure (also needs to be allocated in this IO routine):

! 3D, Lct%Dct%Dta%SpaceDim == 3
Lct%Dct%Dta%V3(1)%Val => ...
! 2D, Lct%Dct%Dta%SpaceDim == 2
Lct%Dct%Dta%V2(1)%Val => ...

A good starting point to look at this is the ESMF module: https://github.com/geoschem/HEMCO/blob/master/src/Core/hcoio_read_esmf_mod.F90

For detailed description of the data structure the standard module provides more insight:
https://github.com/geoschem/HEMCO/blob/master/src/Core/hcoio_read_std_mod.F90

The call interfaces / module names of these modules will be unified in HEMCO 3.0, where they implement the same interface and one is chosen at compile time.

Code

This will be implemented inside HEMCO in order not to introduce circular dependencies - it will likely go into HEMCO/src/IO/hcoio_read_cesm_mod.F90 or something like that, replacing the GEOS-Chem serial IO HEMCO/src/IO/hcoio_read_std_mod.F90.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions