Skip to content

Commit fcf2518

Browse files
committed
Fixes
1 parent 0cea725 commit fcf2518

File tree

1 file changed

+28
-25
lines changed

1 file changed

+28
-25
lines changed

components/eamxx/src/physics/rrtmgp/scream_rrtmgp_interface.hpp

+28-25
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ static void rrtmgp_initialize(
241241
load_cld_lutcoeff(cloud_optics_lw_k, cloud_optics_file_lw);
242242

243243
// initialize kokkos rrtmgp pool allocator
244-
const size_t base_ref = 80000;
244+
const size_t base_ref = 40000;
245245
const size_t ncol = gas_concs.ncol;
246246
const size_t nlay = gas_concs.nlay;
247247
const size_t nlev = SCREAM_NUM_VERTICAL_LEV;
@@ -681,10 +681,11 @@ static void rrtmgp_sw(
681681
const int size6 = nday*ngpt;
682682
const int size7 = nday*(nlay+1)*nbnd; // 3
683683
const int size8 = ncol*nlay*(k_dist.get_ngas()+1);
684-
const int size9 = ncol*nlay*ngas;
685-
const int size10 = ncol*nlay*ngpt; // 12
684+
const int size9 = nday*nlay*ngas;
685+
const int size10 = nday*nlay*nbnd; // 3
686+
const int size11 = nday*nlay*ngpt; // 9
686687

687-
const int total_size = size1 + size2*4 + size3*5 + size4 + size5*2 + size6 + size7*3 + size8 + size9 + size10*12;
688+
const int total_size = size1 + size2*4 + size3*5 + size4 + size5*2 + size6 + size7*3 + size8 + size9 + size10*3 + size11*9;
688689
auto data = pool_t::template alloc_and_init<RealT>(total_size); RealT* dcurr = data.data();
689690

690691
auto mu0_day = view_t<RealT*> (dcurr, nday); dcurr += size1;
@@ -713,34 +714,36 @@ static void rrtmgp_sw(
713714

714715
auto col_gas = view_t<RealT***>(dcurr, ncol, nlay, k_dist.get_ngas()+1); dcurr += size8;
715716

716-
auto concs_mem = view_t<RealT***>(dcurr, ncol, nlay, ngas); dcurr += size9;
717-
718-
auto sw_aero_tau_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
719-
auto sw_aero_ssa_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
720-
auto sw_aero_g_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
721-
auto sw_cloud_tau_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
722-
auto sw_cloud_ssa_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
723-
auto sw_cloud_g_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
724-
auto sw_optics_tau_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
725-
auto sw_optics_ssa_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
726-
auto sw_optics_g_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
727-
auto sw_noaero_tau_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
728-
auto sw_noaero_ssa_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
729-
auto sw_noaero_g_mem = view_t<RealT***>(dcurr, ncol, nlay, ngpt); dcurr += size10;
717+
auto concs_mem = view_t<RealT***>(dcurr, nday, nlay, ngas); dcurr += size9;
718+
719+
auto sw_aero_tau_mem = view_t<RealT***>(dcurr, nday, nlay, nbnd); dcurr += size10;
720+
auto sw_aero_ssa_mem = view_t<RealT***>(dcurr, nday, nlay, nbnd); dcurr += size10;
721+
auto sw_aero_g_mem = view_t<RealT***>(dcurr, nday, nlay, nbnd); dcurr += size10;
722+
723+
auto sw_cloud_tau_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
724+
auto sw_cloud_ssa_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
725+
auto sw_cloud_g_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
726+
auto sw_optics_tau_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
727+
auto sw_optics_ssa_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
728+
auto sw_optics_g_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
729+
auto sw_noaero_tau_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
730+
auto sw_noaero_ssa_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
731+
auto sw_noaero_g_mem = view_t<RealT***>(dcurr, nday, nlay, ngpt); dcurr += size11;
730732

731733
const int int_size1 = 2*nbnd;
732-
const int int_size2 = ngpt;
733-
const int total_int_size = 4 * (int_size1 + int_size2);
734+
const int int_size2 = nbnd;
735+
const int int_size3 = ngpt;
736+
const int total_int_size = 3 * (int_size1 + int_size3) + (int_size1 + int_size2);
734737
auto int_data = pool_t::template alloc_and_init<int>(total_int_size); int *dcurr_int = int_data.data();
735738

736739
auto sw_aero_band2gpt_mem = view_t<int**>(dcurr_int, 2, nbnd); dcurr_int += int_size1;
737-
auto sw_aero_gpt2band_mem = view_t<int*>(dcurr_int, ngpt); dcurr_int += int_size2;
740+
auto sw_aero_gpt2band_mem = view_t<int*>(dcurr_int, nbnd); dcurr_int += int_size2;
738741
auto sw_cloud_band2gpt_mem = view_t<int**>(dcurr_int, 2, nbnd); dcurr_int += int_size1;
739-
auto sw_cloud_gpt2band_mem = view_t<int*>(dcurr_int, ngpt); dcurr_int += int_size2;
742+
auto sw_cloud_gpt2band_mem = view_t<int*>(dcurr_int, ngpt); dcurr_int += int_size3;
740743
auto sw_optics_band2gpt_mem = view_t<int**>(dcurr_int, 2, nbnd); dcurr_int += int_size1;
741-
auto sw_optics_gpt2band_mem = view_t<int*>(dcurr_int, ngpt); dcurr_int += int_size2;
744+
auto sw_optics_gpt2band_mem = view_t<int*>(dcurr_int, ngpt); dcurr_int += int_size3;
742745
auto sw_noaero_band2gpt_mem = view_t<int**>(dcurr_int, 2, nbnd); dcurr_int += int_size1;
743-
auto sw_noaero_gpt2band_mem = view_t<int*>(dcurr_int, ngpt); dcurr_int += int_size2;
746+
auto sw_noaero_gpt2band_mem = view_t<int*>(dcurr_int, ngpt); dcurr_int += int_size3;
744747

745748
// Subset mu0
746749
TIMED_KERNEL(Kokkos::parallel_for(nday, KOKKOS_LAMBDA(int iday) {
@@ -936,7 +939,7 @@ static void rrtmgp_lw(
936939
const int size7 = ncol*nlay*ngpt; // 5
937940
const int size8 = ncol*ngpt;
938941

939-
const int total_size = size1 + size2 + size3*2 + size4 + size5 + size6 + size7*5 * size8;;
942+
const int total_size = size1 + size2 + size3*2 + size4 + size5 + size6 + size7*5 + size8;
940943
auto data = pool_t::template alloc_and_init<RealT>(total_size); RealT *dcurr = data.data();
941944

942945
view_t<RealT*> t_sfc (dcurr, ncol); dcurr += size1;

0 commit comments

Comments
 (0)