GEOS-ESM/GEOSgcm_GridComp

Integrate OpenACC ports of Moist routines

Opened this issue · 0 comments

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.