Integrate OpenACC ports of Moist routines
Opened this issue · 0 comments
pchakraborty commented
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
.