diff --git a/.gitmodules b/.gitmodules index 8758980ec..4b2600465 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "physics/rte-rrtmgp"] path = physics/rte-rrtmgp url = https://github.com/earth-system-radiation/rte-rrtmgp - branch = main + branch = develop diff --git a/CMakeLists.txt b/CMakeLists.txt index 97591a2ee..18ce9594e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,31 +79,31 @@ get_filename_component(LOCAL_CURRENT_SOURCE_DIR ${FULL_PATH_TO_CMAKELISTS} DIREC #------------------------------------------------------------------------------ # List of files that need to be compiled without OpenMP -set(SCHEMES_OPENMP_OFF ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp/mo_gas_optics.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_constants.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_util_string.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp/kernels/mo_gas_optics_kernels.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90 +set(SCHEMES_OPENMP_OFF ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/gas-optics/mo_gas_optics.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/gas-optics/mo_gas_optics_constants.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/gas-optics/mo_gas_concentrations.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/gas-optics/mo_gas_optics_util_string.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp-frontend/mo_gas_optics_rrtmgp.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp-frontend/mo_cloud_optics_rrtmgp.F90 ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/mo_rrtmgp_clr_all_sky.F90 ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/mo_fluxes_byband.F90 ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/solar_variability/mo_solar_variability.F90 ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/mo_heating_rates.F90 ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/mo_fluxes_bygpoint.F90 ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/mo_compute_bc.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_sampling.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_rte_config.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_source_functions.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_rte_sw.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_fluxes.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_rte_lw.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_rte_util_array.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/kernels/mo_rte_solver_kernels.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/kernels/mo_optical_props_kernels.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/kernels/mo_fluxes_broadband_kernels.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_rte_kind.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte/mo_optical_props.F90) + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/extensions/mo_cloud_sampling.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-frontend/mo_rte_config.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-frontend/mo_source_functions.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-frontend/mo_rte_sw.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-frontend/mo_fluxes.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-frontend/mo_rte_lw.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-kernels/mo_rte_util_array.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-kernels/mo_rte_solver_kernels.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-kernels/mo_optical_props_kernels.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-kernels/mo_fluxes_broadband_kernels.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-frontend/mo_rte_kind.F90 + ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rte-frontend/mo_optical_props.F90) # List of files that need to be compiled with different precision set(SCHEMES_DYNAMICS) diff --git a/physics/GFS_rrtmgp_post.meta b/physics/GFS_rrtmgp_post.meta index e4bc3e5dc..d8258fbdc 100644 --- a/physics/GFS_rrtmgp_post.meta +++ b/physics/GFS_rrtmgp_post.meta @@ -1,7 +1,8 @@ [ccpp-table-properties] name = GFS_rrtmgp_post type = scheme - dependencies = iounitdef.f,machine.F,radiation_aerosols.f,radlw_param.f,radiation_tools.F90,rte-rrtmgp/extensions/mo_heating_rates.F90 + dependencies = iounitdef.f,machine.F,radiation_aerosols.f,radlw_param.f,radiation_tools.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_rte_util_array_validation.F90 ######################################################################## [ccpp-arg-table] diff --git a/physics/GFS_rrtmgp_pre.F90 b/physics/GFS_rrtmgp_pre.F90 index 859d4b125..ac18887f9 100644 --- a/physics/GFS_rrtmgp_pre.F90 +++ b/physics/GFS_rrtmgp_pre.F90 @@ -9,7 +9,6 @@ module GFS_rrtmgp_pre use funcphys, only: fpvs use module_radiation_astronomy, only: coszmn use module_radiation_gases, only: NF_VGAS, getgases, getozn - use mo_gas_concentrations, only: ty_gas_concs use radiation_tools, only: check_error_msg,cmp_tlev use rrtmgp_lw_gas_optics, only: lw_gas_props diff --git a/physics/rrtmgp_lw_cloud_optics.F90 b/physics/rrtmgp_lw_cloud_optics.F90 index 9915c0040..aa2fd5ad1 100644 --- a/physics/rrtmgp_lw_cloud_optics.F90 +++ b/physics/rrtmgp_lw_cloud_optics.F90 @@ -11,7 +11,7 @@ module rrtmgp_lw_cloud_optics use machine, only: kind_phys use mo_rte_kind, only: wl - use mo_cloud_optics, only: ty_cloud_optics + use mo_cloud_optics_rrtmgp, only: ty_cloud_optics_rrtmgp use rrtmgp_lw_gas_optics, only: lw_gas_props use radiation_tools, only: check_error_msg use netcdf @@ -21,7 +21,7 @@ module rrtmgp_lw_cloud_optics implicit none - type(ty_cloud_optics) :: lw_cloud_props + type(ty_cloud_optics_rrtmgp) :: lw_cloud_props integer :: & nrghice_fromfileLW, nBandLW, nSize_liqLW, nSize_iceLW, nSizeRegLW, & nCoeff_extLW, nCoeff_ssa_gLW, nBoundLW, npairsLW @@ -360,9 +360,8 @@ subroutine rrtmgp_lw_cloud_optics_init(rrtmgp_root_dir, rrtmgp_lw_file_clouds, ! ####################################################################################### if (doGP_cldoptics_LUT) then call check_error_msg('lw_cloud_optics_init',lw_cloud_props%load(band_limsCLDLW, & - radliq_lwrLW, radliq_uprLW, radliq_facLW, radice_lwrLW, radice_uprLW, & - radice_facLW, lut_extliqLW, lut_ssaliqLW, lut_asyliqLW, lut_exticeLW, & - lut_ssaiceLW, lut_asyiceLW)) + radliq_lwrLW, radliq_uprLW, radice_lwrLW, radice_uprLW, lut_extliqLW, & + lut_ssaliqLW, lut_asyliqLW, lut_exticeLW, lut_ssaiceLW, lut_asyiceLW)) endif if (doGP_cldoptics_PADE) then diff --git a/physics/rrtmgp_lw_main.F90 b/physics/rrtmgp_lw_main.F90 index 6d1cef04d..bc2470648 100644 --- a/physics/rrtmgp_lw_main.F90 +++ b/physics/rrtmgp_lw_main.F90 @@ -9,9 +9,7 @@ module rrtmgp_lw_main use machine, only: kind_phys, kind_dbl_prec use mo_optical_props, only: ty_optical_props_1scl, ty_optical_props_2str - use mo_cloud_optics, only: ty_cloud_optics use mo_rte_lw, only: rte_lw - use mo_gas_optics_rrtmgp, only: ty_gas_optics_rrtmgp use mo_gas_concentrations, only: ty_gas_concs use mo_fluxes_byband, only: ty_fluxes_byband use mo_source_functions, only: ty_source_func_lw @@ -39,7 +37,7 @@ module rrtmgp_lw_main ! ######################################################################################### subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_file_clouds,& active_gases_array, doGP_cldoptics_PADE, doGP_cldoptics_LUT, nrghice, mpicomm, & - mpirank, mpiroot, nLay, errmsg, errflg) + mpirank, mpiroot, errmsg, errflg) ! Inputs character(len=128),intent(in) :: & diff --git a/physics/rrtmgp_lw_main.meta b/physics/rrtmgp_lw_main.meta index d5b96eff8..0d562422f 100644 --- a/physics/rrtmgp_lw_main.meta +++ b/physics/rrtmgp_lw_main.meta @@ -1,13 +1,17 @@ [ccpp-table-properties] name = rrtmgp_lw_main type = scheme - dependencies = machine.F,radiation_tools.F90 - dependencies = rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90 - dependencies = rte-rrtmgp/rte/mo_rte_kind.F90,rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90,rte-rrtmgp/rte/mo_optical_props.F90 - dependencies = rte-rrtmgp/rte/mo_source_functions.F90,rte-rrtmgp/rte/mo_rte_lw.F90,rte-rrtmgp/rte/mo_fluxes.F90 - dependencies = rte-rrtmgp/rte/kernels/mo_fluxes_broadband_kernels.F90, rte-rrtmgp/rte/kernels/mo_rte_solver_kernels.F90 - dependencies = mersenne_twister.f,rrtmgp_sampling.F90,rte-rrtmgp/extensions/mo_fluxes_byband.F90 - dependencies = rrtmgp_lw_gas_optics.F90, rrtmgp_lw_cloud_optics.F90 + dependencies = machine.F,radiation_tools.F90,mersenne_twister.f,rrtmgp_sampling.F90 + dependencies = rrtmgp_lw_gas_optics.F90,rrtmgp_lw_cloud_optics.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_rte_kind.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_optical_props.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_source_functions.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_rte_lw.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_fluxes.F90 + dependencies = rte-rrtmgp/gas-optics/mo_gas_concentrations.F90 + dependencies = rte-rrtmgp/rte-kernels/mo_fluxes_broadband_kernels.F90 + dependencies = rte-rrtmgp/rte-kernels/mo_rte_solver_kernels.F90 + dependencies = rte-rrtmgp/extensions/mo_fluxes_byband.F90 ######################################################################## [ccpp-arg-table] diff --git a/physics/rrtmgp_sw_cloud_optics.F90 b/physics/rrtmgp_sw_cloud_optics.F90 index 4293a7be6..f46ea4d5c 100644 --- a/physics/rrtmgp_sw_cloud_optics.F90 +++ b/physics/rrtmgp_sw_cloud_optics.F90 @@ -1,7 +1,7 @@ module rrtmgp_sw_cloud_optics use machine, only: kind_phys use mo_rte_kind, only: wl - use mo_cloud_optics, only: ty_cloud_optics + use mo_cloud_optics_rrtmgp, only: ty_cloud_optics_rrtmgp use rrtmgp_sw_gas_optics, only: sw_gas_props use radiation_tools, only: check_error_msg use netcdf @@ -11,7 +11,7 @@ module rrtmgp_sw_cloud_optics implicit none - type(ty_cloud_optics) :: sw_cloud_props + type(ty_cloud_optics_rrtmgp) :: sw_cloud_props integer :: & nrghice_fromfileSW, nBandSW, nSize_liqSW, nSize_iceSW, nSizeregSW, & nCoeff_extSW, nCoeff_ssa_gSW, nBoundSW, nPairsSW @@ -349,9 +349,8 @@ subroutine rrtmgp_sw_cloud_optics_init( rrtmgp_root_dir, rrtmgp_sw_file_clouds, ! ####################################################################################### if (doGP_cldoptics_LUT) then call check_error_msg('sw_cloud_optics_init',sw_cloud_props%load(band_limsCLDSW, & - radliq_lwrSW, radliq_uprSW, radliq_facSW, radice_lwrSW, radice_uprSW, & - radice_facSW, lut_extliqSW, lut_ssaliqSW, lut_asyliqSW, lut_exticeSW, & - lut_ssaiceSW, lut_asyiceSW)) + radliq_lwrSW, radliq_uprSW, radice_lwrSW, radice_uprSW, lut_extliqSW, & + lut_ssaliqSW, lut_asyliqSW, lut_exticeSW, lut_ssaiceSW, lut_asyiceSW)) endif if (doGP_cldoptics_PADE) then diff --git a/physics/rrtmgp_sw_main.F90 b/physics/rrtmgp_sw_main.F90 index 4e760f7a7..806c87344 100644 --- a/physics/rrtmgp_sw_main.F90 +++ b/physics/rrtmgp_sw_main.F90 @@ -3,10 +3,8 @@ module rrtmgp_sw_main use machine, only: kind_phys, kind_dbl_prec use mo_optical_props, only: ty_optical_props_2str - use mo_cloud_optics, only: ty_cloud_optics use module_radsw_parameters, only: cmpfsw_type use mo_rte_sw, only: rte_sw - use mo_gas_optics_rrtmgp, only: ty_gas_optics_rrtmgp use mo_gas_concentrations, only: ty_gas_concs use mo_fluxes_byband, only: ty_fluxes_byband use radiation_tools, only: check_error_msg diff --git a/physics/rrtmgp_sw_main.meta b/physics/rrtmgp_sw_main.meta index 1e503b5d4..c4094989f 100644 --- a/physics/rrtmgp_sw_main.meta +++ b/physics/rrtmgp_sw_main.meta @@ -1,13 +1,17 @@ [ccpp-table-properties] name = rrtmgp_sw_main type = scheme - dependencies = machine.F,radiation_tools.F90, - dependencies = rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90 - dependencies = rte-rrtmgp/rte/mo_rte_kind.F90,rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90,rte-rrtmgp/rte/mo_optical_props.F90 - dependencies = rte-rrtmgp/rte/mo_rte_sw.F90,rte-rrtmgp/rte/mo_fluxes.F90 - dependencies = rte-rrtmgp/rte/kernels/mo_fluxes_broadband_kernels.F90, rte-rrtmgp/rte/kernels/mo_rte_solver_kernels.F90 - dependencies = mersenne_twister.f,rrtmgp_sampling.F90,rte-rrtmgp/extensions/mo_fluxes_byband.F90 - dependencies = rrtmgp_sw_gas_optics.F90, rrtmgp_sw_cloud_optics.F90 + dependencies = machine.F,radiation_tools.F90,mersenne_twister.f,rrtmgp_sampling.F90 + dependencies = rrtmgp_sw_gas_optics.F90,rrtmgp_sw_cloud_optics.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_rte_kind.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_optical_props.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_source_functions.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_rte_sw.F90 + dependencies = rte-rrtmgp/rte-frontend/mo_fluxes.F90 + dependencies = rte-rrtmgp/gas-optics/mo_gas_concentrations.F90 + dependencies = rte-rrtmgp/rte-kernels/mo_fluxes_broadband_kernels.F90 + dependencies = rte-rrtmgp/rte-kernels/mo_rte_solver_kernels.F90 + dependencies = rte-rrtmgp/extensions/mo_fluxes_byband.F90 ######################################################################## [ccpp-arg-table] diff --git a/physics/rte-rrtmgp b/physics/rte-rrtmgp index 0dc54f5ec..c45e7bc1a 160000 --- a/physics/rte-rrtmgp +++ b/physics/rte-rrtmgp @@ -1 +1 @@ -Subproject commit 0dc54f5ecaeb1e1e342efd1e02d0bcd41737bde2 +Subproject commit c45e7bc1afe3900f2b3f317b125c8b3b857d5a9e