Skip to content
Merged
Show file tree
Hide file tree
Changes from 92 commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
ecc0b52
Minimal set of additions for drydep interface
singhbalwinder Feb 20, 2024
0f58dca
Adds a simple minimal test and it works
singhbalwinder Feb 20, 2024
7eeb63c
Adds required variables and the initial condition file
singhbalwinder Feb 21, 2024
2dd3d73
Adds variables to the init and run functions
singhbalwinder Feb 21, 2024
9c7e8f5
Implement the MAMDryDep::run_impl() function.
overfelt Mar 5, 2024
a6b550c
Forgot to add updated test file.
overfelt Mar 6, 2024
9f59dcb
Fixes for Cuda build.
overfelt Mar 6, 2024
959c9b7
Fixes for Cuda build.
overfelt Mar 6, 2024
05fe0fb
Remove old comment as per code review.
overfelt Mar 11, 2024
76ca087
Add p_int (pressure at interface) to DryAtmosphere structure.
overfelt Mar 25, 2024
c2ad201
Merge pull request #2 from eagles-project/singhbalwinder/jroverf/dry-dep
overfelt Mar 25, 2024
1301356
Merge branch 'master' into singhbalwinder/dry-dep
overfelt Jul 3, 2024
fc4acc1
Merge branch 'master' into singhbalwinder/dry-dep
overfelt Jul 3, 2024
778b6ac
Remove add_field() calls that are not needed by the Dry Deposition pr…
overfelt Jul 5, 2024
dd2b0c9
Fix some input/output arrays as suggested by Balwinder.
overfelt Jul 9, 2024
2450b4d
Merge branch 'master' into singhbalwinder/dry-dep
overfelt Jul 9, 2024
7197f50
More code cleanup.
overfelt Jul 10, 2024
724217f
Merge branch 'master' into singhbalwinder/dry-dep
overfelt Jul 10, 2024
476a38c
Moves around code to match previous mam4xx processes
singhbalwinder Jul 11, 2024
d0c6d2c
Moves variables to match I/O
singhbalwinder Jul 11, 2024
880ce7d
Moves Updated vars above computed
singhbalwinder Jul 11, 2024
1e76a7d
Some more i/o variable movements in initialize impl
singhbalwinder Jul 11, 2024
2443c69
Adds a new file and remove that code the the cpp file
singhbalwinder Jul 11, 2024
518ab80
Removes the commented out code that is moved to a new file
singhbalwinder Jul 11, 2024
86954a8
Removes qtracer from the output and allocate it locally
singhbalwinder Jul 11, 2024
bd91719
Removes d_qtracers_dt_ as output and allocate it as a local var
singhbalwinder Jul 11, 2024
e69425b
Commented out code with some new variables-code compiles fine
singhbalwinder Jul 12, 2024
c1bbdf5
Adds new vars and allocate
singhbalwinder Jul 13, 2024
0532e27
added as args
singhbalwinder Jul 13, 2024
33202be
Submodule change, commented out code but compiles
singhbalwinder Jul 13, 2024
309f2d2
subm changes, All func args are in, compiles fine
singhbalwinder Jul 13, 2024
8dca5fa
Subm change; a working aero_model_drydep call
singhbalwinder Jul 13, 2024
17c09a0
Remove compute tends to drydep.hpp from drydep interface
singhbalwinder Jul 13, 2024
0dd177a
Cleanup, subm changed, Use ColumnView for some views
singhbalwinder Jul 13, 2024
e9f52c0
Cleanup-makes dgn wet size a input and other cleanup
singhbalwinder Jul 13, 2024
67200f9
Teases out i/o for func
singhbalwinder Jul 13, 2024
90eaa58
A lot of cleanup-Removes vars from hpp, cleans i/o for functions
singhbalwinder Jul 13, 2024
f12a600
Reduces vlc_trb to real from view_1d and other cleanup
singhbalwinder Jul 14, 2024
8fc5d8f
All the printouts for thevalidation
singhbalwinder Jul 15, 2024
d3a1ebc
More prints for validation
singhbalwinder Jul 16, 2024
123ec08
Cleaned some prints and adds new comments
singhbalwinder Jul 16, 2024
8b9b3f0
Adds a CIME test and fixed FIXME comments and removed prinouts
singhbalwinder Jul 17, 2024
074493f
Merge branch 'master' into singhbalwinder/dry-dep
singhbalwinder Jul 17, 2024
a4a5798
Fixes single process test and some merge master fixes
singhbalwinder Jul 17, 2024
f508702
Removes commented-out scorpio error message code
singhbalwinder Jul 17, 2024
9e4978b
Fix GPU tests: Do not use host pointers on device.
overfelt Jul 18, 2024
4a0e4d9
Fixes np1 vs npX tests and clang format
singhbalwinder Jul 19, 2024
b86b4df
Adds 2d fields from land model and updates mam4xx sub to point to main
singhbalwinder Jul 19, 2024
ed2e0ea
Adds shoc+drydep unit test
singhbalwinder Jul 19, 2024
9b937f9
Add ustar and obklen to FM
tcclevenger Jul 18, 2024
3baa1b1
Uses shoc output variables for obklen and ustar in drydep
singhbalwinder Jul 19, 2024
cc0c4ce
Adds missing links for obklen and ustar in shoc
singhbalwinder Jul 22, 2024
f25ec79
Fixes a typo
singhbalwinder Jul 22, 2024
45af3b5
Adds a multi-process test with dynamics
singhbalwinder Jul 22, 2024
f130c27
Adds variables for drydep only CIME simulation
singhbalwinder Jul 22, 2024
076bf91
Fixes dimensions of dry dep flux variables and fixes input.yaml for a…
singhbalwinder Jul 25, 2024
eabd0fe
Changes due to code review feedback.
overfelt Jul 29, 2024
ffe22ad
read in IOP lev data before surface pressure adjustment is applied
Jul 11, 2024
3a6fcc9
add minimum threshold when checking lat and lon relative error for IO…
Jul 11, 2024
613beff
change ekat::impl::max instances to std::max and remove unneeded m_he…
Jul 16, 2024
bbad185
cast minimum lat/lon threshold as a real
Jul 17, 2024
861565c
fix capture this warning in mam micro
mahf708 Jul 19, 2024
44be059
Add ums and ums002 to load libunwind 1.6.2
dqwu Jul 19, 2024
08fb2d1
Add <cstdint> to scream_scorpio_types.hpp to use std::int64_t
dqwu Jul 19, 2024
ac7280c
Explicitly add gcc/12.2.0 lib path to CMAKE_EXE_LINKER_FLAGS
dqwu Jul 19, 2024
bcf0a02
add output variable for rain effective diameter
hassanbeydoun Jul 19, 2024
e55a121
Add ustar and obklen to FM
tcclevenger Jul 18, 2024
4d4fc74
Remove obklen postcondition check
tcclevenger Jul 22, 2024
237c7f5
Fix how IOP reads time
tcclevenger Jul 22, 2024
e00561f
filter aodvis by day indices
mahf708 Jul 19, 2024
7d8d166
remove sunlit sync to host
mahf708 Jul 26, 2024
5230b60
rename pyeamxx to pyscream
mahf708 Jul 12, 2024
a6f14a9
more renaming
mahf708 Jul 12, 2024
8c81c69
skip cosp when building python
mahf708 Jul 13, 2024
ae7dfed
Add geo_data_source
mahf708 Jul 13, 2024
a38380b
dump fields and reorg things
mahf708 Jul 14, 2024
2c8d6a7
fix minor typo in def dumpfields
mahf708 Jul 14, 2024
fc7b9e6
add geo data source
mahf708 Jul 14, 2024
c1344ad
Port scream_rrtmgp_interface to new pattern
jgfouca Jun 5, 2024
8677a1f
Builds and runs
jgfouca Jun 6, 2024
5c83491
Everything working
jgfouca Jun 20, 2024
b7e006d
cleanup
jgfouca Jun 20, 2024
f1e2d98
subview_2dk bug fix
jgfouca Jun 20, 2024
23f89ce
More fixes
jgfouca Jun 20, 2024
8cae9b1
Set to correct rrtmgp branch
jgfouca Jun 21, 2024
0eddf30
Add buffer views should be unmanaged
jgfouca Jun 21, 2024
5efd49e
Build fixes for yakl mode
jgfouca Jun 21, 2024
dd83e12
Remove overuse of templates
jgfouca Jul 26, 2024
39b29da
Merge branch 'master' into singhbalwinder/dry-dep
overfelt Jul 30, 2024
8240735
Merge branch 'master' into singhbalwinder/dry-dep
overfelt Jul 31, 2024
408e876
Fix a couple of FIXME comments from code review.
overfelt Jul 31, 2024
fc26235
Adds a CIME drydep test
singhbalwinder Aug 2, 2024
c35785d
Fixes an array index in scream coupler F90 file
singhbalwinder Aug 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cime_config/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,7 @@
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.scream-mam4xx-optics",
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.scream-mam4xx-aci",
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.scream-mam4xx-wetscav",
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.scream-mam4xx-drydep",
)
},

Expand Down
8 changes: 7 additions & 1 deletion components/eamxx/cime_config/namelist_defaults_scream.xml
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,10 @@ be lost if SCREAM_HACK_XML is not enabled.
<top_level_mam4xx type="integer" doc="level corresponding to the top of troposphere clouds" nlev="128" >0</top_level_mam4xx>
</mam4_aci>

<!-- MAM4xx-Dry Deposition -->
<mam4_drydep inherit="atm_proc_base">
</mam4_drydep>

<!-- CLD fraction -->
<cldFraction inherit="atm_proc_base"/>

Expand Down Expand Up @@ -493,7 +497,9 @@ be lost if SCREAM_HACK_XML is not enabled.
<surf_lw_flux_up >0.0</surf_lw_flux_up>
<surf_mom_flux type="array(real)">0.0,0.0</surf_mom_flux>
<!-- Note: MAM4xx-ACI needs dry aerosol diameter (dgnum), currently set to aitken model nominal diameter, remove it once all of MAM4xx is integrated -->
<dgnum type="real" doc="Dry aerosol particles diameter in meters">2.6e-08</dgnum>
<dgnum type="real" doc="Dry aerosol particles diameter [m]">2.6e-08</dgnum>
<dgnumwet type="real" doc="Wet aerosol particles diameter [m]">0.41417721820867320E-007</dgnumwet>
<wetdens type="real" doc="Wet density of interstitial aerosol [kg/m3]">0.15100083211582764E+004</wetdens>
<bc_c1 type="real">0.0</bc_c1>
<bc_c3 type="real">0.0</bc_c3>
<bc_c4 type="real">0.0</bc_c4>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

#!/bin/sh
#------------------------------------------------------
# MAM4xx adds additionaltracers to the simulation
# Increase number of tracers for MAM4xx simulations
#------------------------------------------------------

$CIMEROOT/../components/eamxx/cime_config/testdefs/testmods_dirs/scream/mam4xx/update_eamxx_num_tracers.sh -b

#------------------------------------------------------
#Update IC file and add drydep process
#------------------------------------------------------
$CIMEROOT/../components/eamxx/scripts/atmchange initial_conditions::Filename='$DIN_LOC_ROOT/atm/scream/init/screami_mam4xx_ne4np4L72_c20240208.nc' -b
$CIMEROOT/../components/eamxx/scripts/atmchange physics::atm_procs_list="mac_aero_mic,rrtmgp,mam4_drydep" -b



Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ void SurfaceCouplingImporter::set_grids(const std::shared_ptr<const GridsManager
add_field<Computed>("snow_depth_land", scalar2d_layout, m, grid_name);
add_field<Computed>("ocnfrac", scalar2d_layout, nondim, grid_name);
add_field<Computed>("landfrac", scalar2d_layout, nondim, grid_name);
add_field<Computed>("icefrac", scalar2d_layout, nondim, grid_name);
// Friction velocity [m/s]
add_field<Computed>("fv", scalar2d_layout, m/s, grid_name);
// Aerodynamical resistance
add_field<Computed>("ram1", scalar2d_layout, s/m, grid_name);
}
// =========================================================================================
void SurfaceCouplingImporter::setup_surface_coupling_data(const SCDataManager &sc_data_manager)
Expand Down
10 changes: 8 additions & 2 deletions components/eamxx/src/mct_coupling/scream_cpl_indices.F90
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module scream_cpl_indices
private

! Focus only on the ones that scream imports/exports (subsets of x2a and a2x)
integer, parameter, public :: num_scream_imports = 16
integer, parameter, public :: num_scream_imports = 19
integer, parameter, public :: num_scream_exports = 17
integer, public :: num_cpl_imports, num_cpl_exports, import_field_size, export_field_size

Expand Down Expand Up @@ -89,6 +89,9 @@ subroutine scream_set_cpl_indices (x2a, a2x)
import_field_names(14) = 'surf_evap'
import_field_names(15) = 'ocnfrac'
import_field_names(16) = 'landfrac'
import_field_names(17) = 'icefrac'
import_field_names(18) = 'fv'
import_field_names(19) = 'ram1'

! CPL indices
import_cpl_indices(1) = mct_avect_indexra(x2a,'Sx_avsdr')
Expand All @@ -106,7 +109,10 @@ subroutine scream_set_cpl_indices (x2a, a2x)
import_cpl_indices(13) = mct_avect_indexra(x2a,'Faxx_sen')
import_cpl_indices(14) = mct_avect_indexra(x2a,'Faxx_evap')
import_cpl_indices(15) = mct_avect_indexra(x2a,'Sf_ofrac')
import_cpl_indices(16) = mct_avect_indexra(x2a,'Sf_lfrac')
import_cpl_indices(16) = mct_avect_indexra(x2a,'Sf_lfrac')
import_cpl_indices(17) = mct_avect_indexra(x2a,'Sf_ifrac')
import_cpl_indices(19) = mct_avect_indexra(x2a,'Sl_fv')
import_cpl_indices(18) = mct_avect_indexra(x2a,'Sl_ram1')

! Vector components
import_vector_components(11) = 0
Expand Down
1 change: 1 addition & 0 deletions components/eamxx/src/physics/mam/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ add_subdirectory(${EXTERNALS_SOURCE_DIR}/mam4xx ${CMAKE_BINARY_DIR}/externals/ma
add_library(mam
eamxx_mam_microphysics_process_interface.cpp
eamxx_mam_optics_process_interface.cpp
eamxx_mam_dry_deposition_process_interface.cpp
eamxx_mam_aci_process_interface.cpp
eamxx_mam_wetscav_process_interface.cpp)
target_compile_definitions(mam PUBLIC EAMXX_HAS_MAM)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
#ifndef EAMXX_MAM_DRY_DEPOSITION_FUNCTIONS_HPP
#define EAMXX_MAM_DRY_DEPOSITION_FUNCTIONS_HPP

#include <ekat/kokkos/ekat_subview_utils.hpp>
#include <mam4xx/aero_config.hpp>
#include <mam4xx/convproc.hpp>
#include <mam4xx/mam4.hpp>

namespace scream {

namespace {
void compute_tendencies(
// inputs
const int ncol, const int nlev, const double dt,
const MAMDryDep::const_view_1d obklen,
const MAMDryDep::const_view_1d surfric,
const MAMDryDep::const_view_1d landfrac,
const MAMDryDep::const_view_1d icefrac,
const MAMDryDep::const_view_1d ocnfrac,
const MAMDryDep::const_view_1d friction_velocity,
const MAMDryDep::const_view_1d aerodynamical_resistance,
MAMDryDep::view_3d qtracers, MAMDryDep::view_2d fraction_landuse_,
const MAMDryDep::const_view_3d dgncur_awet_,
const MAMDryDep::const_view_3d wet_dens_,
const mam_coupling::DryAtmosphere dry_atm,
const mam_coupling::AerosolState dry_aero,

// input-outputs
MAMDryDep::view_3d qqcw_,

// outputs
MAMDryDep::view_3d ptend_q, MAMDryDep::view_2d aerdepdrycw,
MAMDryDep::view_2d aerdepdryis,

// work arrays
MAMDryDep::view_2d rho_, MAMDryDep::view_4d vlc_dry_,
MAMDryDep::view_3d vlc_trb_, MAMDryDep::view_4d vlc_grv_,
MAMDryDep::view_3d dqdt_tmp_) {
static constexpr int num_aero_modes = mam_coupling::num_aero_modes();
const auto policy =
ekat::ExeSpaceUtils<MAMDryDep::KT::ExeSpace>::get_default_team_policy(
ncol, nlev);

// Parallel loop over all the columns
Kokkos::parallel_for(
policy, KOKKOS_LAMBDA(const MAMDryDep::KT::MemberType &team) {
static constexpr int num_aero_species =
mam_coupling::num_aero_species();

const int icol = team.league_rank();
// Parallel loop over all the levels to populate qtracers array using
// dry_aero
Kokkos::parallel_for(
Kokkos::TeamVectorRange(team, nlev), [&](const int lev) {
for(int mode = 0; mode < num_aero_modes; ++mode) {
int icnst = mam4::ConvProc::numptrcw_amode(mode);
qtracers(icol, lev, icnst) =
dry_aero.int_aero_nmr[mode](icol, lev);
for(int species = 0; species < num_aero_species; ++species) {
icnst = mam4::ConvProc::lmassptrcw_amode(species, mode);
if(-1 < icnst) {
qtracers(icol, lev, icnst) =
dry_aero.int_aero_mmr[mode][species](icol, lev);
}
}
}
}); // parallel_for for nlevs
team.team_barrier();

// Create atm and progs objects
mam4::Atmosphere atm = atmosphere_for_column(dry_atm, icol);
mam4::Prognostics progs = aerosols_for_column(dry_aero, icol);

// Extract column data (or 1d view) from 2d views of data
mam4::ConstColumnView dgncur_awet[num_aero_modes];
mam4::ConstColumnView wet_dens[num_aero_modes];

for(int i = 0; i < num_aero_modes; ++i) {
dgncur_awet[i] = ekat::subview(dgncur_awet_, icol, i);
wet_dens[i] = ekat::subview(wet_dens_, icol, i);
}

mam4::ColumnView rho;
rho = ekat::subview(rho_, icol);

static constexpr int n_land_type = MAMDryDep::n_land_type;
Real fraction_landuse[n_land_type];
for(int i = 0; i < n_land_type; ++i) {
fraction_landuse[i] = fraction_landuse_(i, icol);
}

static constexpr int nmodes = mam4::AeroConfig::num_modes();
mam4::ColumnView vlc_dry[nmodes][MAMDryDep::aerosol_categories_];
mam4::ColumnView vlc_grv[nmodes][MAMDryDep::aerosol_categories_];
Real vlc_trb[nmodes][MAMDryDep::aerosol_categories_];

for(int i = 0; i < nmodes; ++i) {
for(int j = 0; j < MAMDryDep::aerosol_categories_; ++j) {
vlc_dry[i][j] = ekat::subview(vlc_dry_, i, j, icol);
vlc_trb[i][j] = vlc_trb_(i, j, icol);
vlc_grv[i][j] = ekat::subview(vlc_grv_, i, j, icol);
}
}
static constexpr int pcnst = mam4::aero_model::pcnst;
mam4::ColumnView qqcw[pcnst];
mam4::ColumnView dqdt_tmp[pcnst];
for(int i = 0; i < pcnst; ++i) {
qqcw[i] = ekat::subview(qqcw_, i, icol);
dqdt_tmp[i] = ekat::subview(dqdt_tmp_, i, icol);
}
// Extract qqcw from Prognostics
Kokkos::parallel_for(Kokkos::TeamVectorRange(team, nlev), [&](int kk) {
for(int m = 0; m < nmodes; ++m) {
qqcw[mam4::ConvProc::numptrcw_amode(m)][kk] = progs.n_mode_c[m][kk];
for(int a = 0; a < mam4::AeroConfig::num_aerosol_ids(); ++a)
if(-1 < mam4::ConvProc::lmassptrcw_amode(a, m))
qqcw[mam4::ConvProc::lmassptrcw_amode(a, m)][kk] =
progs.q_aero_c[m][a][kk];
}
}); // parallel_for nlevs
team.team_barrier();
bool ptend_lq[pcnst]; // currently unused
mam4::aero_model_drydep(
// inputs
team, fraction_landuse, atm.temperature, atm.pressure,
atm.interface_pressure, atm.hydrostatic_dp,
ekat::subview(qtracers, icol), dgncur_awet, wet_dens, obklen[icol],
surfric[icol], landfrac[icol], icefrac[icol], ocnfrac[icol],
friction_velocity[icol], aerodynamical_resistance[icol], dt,
// input-outputs
qqcw,
// outputs
ekat::subview(ptend_q, icol), ptend_lq,
ekat::subview(aerdepdrycw, icol), ekat::subview(aerdepdryis, icol),
// work arrays
rho, vlc_dry, vlc_trb, vlc_grv, dqdt_tmp);
}); // parallel_for for ncols
} // Compute_tendencies ends

// Update interstitial aerosols using ptend_q tendencies
void update_interstitial_mmrs(const MAMDryDep::view_3d ptend_q, const double dt,
const int ncol, const int nlev,
// output
const mam_coupling::AerosolState dry_aero) {
const auto policy =
ekat::ExeSpaceUtils<MAMDryDep::KT::ExeSpace>::get_default_team_policy(
ncol, nlev);
static constexpr int nmodes = mam4::AeroConfig::num_modes();
Kokkos::parallel_for(
policy, KOKKOS_LAMBDA(const MAMDryDep::KT::MemberType &team) {
const int icol = team.league_rank();
Kokkos::parallel_for(Kokkos::TeamVectorRange(team, nlev), [&](int kk) {
for(int m = 0; m < nmodes; ++m) {
dry_aero.int_aero_nmr[m](icol, kk) +=
ptend_q(icol, kk, mam4::ConvProc::numptrcw_amode(m)) * dt;
for(int a = 0; a < mam4::AeroConfig::num_aerosol_ids(); ++a)
if(-1 < mam4::ConvProc::lmassptrcw_amode(a, m))
dry_aero.int_aero_mmr[m][a](icol, kk) +=
ptend_q(icol, kk, mam4::ConvProc::lmassptrcw_amode(a, m)) *
dt;
}
}); // parallel_for nlevs
}); // parallel_for icol
} // Update interstitial aerosols ends

// Update cloud borne aerosols using qqcw
void update_cloudborne_mmrs(const MAMDryDep::view_3d qqcw, const double dt,
const int nlev_,
// output
const mam_coupling::AerosolState dry_aero) {
for(int m = 0; m < mam_coupling::num_aero_modes(); ++m) {
Kokkos::deep_copy(dry_aero.cld_aero_nmr[m],
ekat::subview(qqcw, mam4::ConvProc::numptrcw_amode(m)));
for(int a = 0; a < mam_coupling::num_aero_species(); ++a) {
if(dry_aero.cld_aero_mmr[m][a].data()) {
Kokkos::deep_copy(
dry_aero.cld_aero_mmr[m][a],
ekat::subview(qqcw, mam4::ConvProc::lmassptrcw_amode(a, m)));
}
}
}
} // Update cloud borne aerosols ends

// FIXME: remove the following function after implementing file read for landuse
void populated_fraction_landuse(MAMDryDep::view_2d flu, const int ncol) {
Kokkos::parallel_for(
"populated_fraction_landuse", 1, KOKKOS_LAMBDA(int) {
static constexpr int n_land_type = MAMDryDep::n_land_type;
const Real temp[n_land_type] = {
0.28044346587077795E-003, 0.26634987180780171E-001,
0.16803558403621365E-001, 0.18076055155371872E-001,
0.00000000000000000E+000, 0.00000000000000000E+000,
0.91803784897907303E+000, 0.17186036997038400E-002,
0.00000000000000000E+000, 0.00000000000000000E+000,
0.18448503115578840E-001};
for(int i = 0; i < n_land_type; ++i)
for(int j = 0; j < ncol; ++j) flu(i, j) = temp[i];
});
Kokkos::fence();
}

} // namespace
} // namespace scream

#endif
Loading