ESCOMP / ESCOMP/HEMCO_CESM

HEMCO PIO module

Open
#4 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Fortran
Stars
1
Forks
9
PR merge metrics
No merged PRs in 30d

Description

## 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:
```fortran
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):
```fortran
! 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`.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.