HEMCO PIO module
- 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.