GEOS-ESM / GEOS-ESM/GEOSgcm_GridComp
Integrate OpenACC ports of Moist routines
Open
@pchakraborty is already working on this.
Since Jun 13, 2023.
0 diff structural
- Dominant language
- Fortran
- Stars
- 10
- Forks
- 13
- Avg merge
- 17h 35m
- Merged PRs (30d)
- 14
Description
It may be best to use the RRTMGP model when integrating the OpenACC ports of moist routines. For example, in Moist GridComp, there are OpenACC versions of the buoyancy and fillq2zero routines. So, one idea would be to extract these routines from Process_Library.F90 and place them in a kernels directory. And add their OpenACC counterparts in a kernels-openacc directory.
So, the Moist GridComp directory would look like
├── aer_actv_single_moment.F90
├── aer_cloud.F90
├── cldmacro.F90
├── cldwat2m_micro.F90
├── cloudnew.F90
├── CMakeLists.txt
├── ConvPar_GF2020.F90
├── ConvPar_GF_GEOS5.F90
├── ConvPar_GF_Shared.F90
├── ddf.F90
├── GEOS_BACM_1M_InterfaceMod.F90
├── GEOS_GFDL_1M_InterfaceMod.F90
├── GEOS_GF_InterfaceMod.F90
├── GEOS_MGB2_2M_InterfaceMod.F90
├── GEOS_MoistGridComp.F90
├── GEOS_RAS_InterfaceMod.F90
├── GEOS_UW_InterfaceMod.F90
├── gfdl_cloud_microphys.F90
├── isccp_call.code
├── isccp_decls.code
├── kernels
│ ├── buoyancy.F90
│ └── fillq2zero.F90
├── kernels-openacc
│ ├── buoyancy.F90
│ └── fillq2zero.F90
├── micro_mg3_0.F90
├── micro_mg_utils.F90
├── module_gate.F90
├── Process_Library.F90
├── qsat.h
├── rascnvv2_v.F90
├── ras.F90
├── RASPARAMS.F90
├── uwshcu.F90
├── WSUB_ExtData.rc
├── WSUB_ExtData.yaml
├── wv_sat_methods.F90
└── wv_saturation.F90
along with appropriate changes in Process_Library.F90 and CMakeLists.txt.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.