Skip to content

Commit

Permalink
Merge pull request #157 from E3SM-Project/whannah/physics-interface-u…
Browse files Browse the repository at this point in the history
…pdates

update P3/SHCO interface for EAMxx updates
  • Loading branch information
whannah1 authored Oct 10, 2024
2 parents 3ea20ad + f77f622 commit c3b6522
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 2 deletions.
8 changes: 6 additions & 2 deletions physics/micro/p3/Microphysics.h
Original file line number Diff line number Diff line change
Expand Up @@ -305,12 +305,12 @@ class Microphysics {
real2d diag_eff_radius_qc( "diag_eff_radius_qc" , nz , ncol );
real2d diag_eff_radius_qi( "diag_eff_radius_qi" , nz , ncol );
real2d diag_eff_radius_qr( "diag_eff_radius_qr" , nz , ncol );
real2d precip_total_tend ( "precip_total_tend" , nz , ncol );
real2d nevapr ( "nevapr" , nz , ncol );
real2d bulk_qi ( "bulk_qi" , nz , ncol );
real2d mu_c ( "mu_c" , nz , ncol );
real2d lamc ( "lamc" , nz , ncol );
real2d qv2qi_depos_tend ( "qv2qi_depos_tend" , nz , ncol );
real2d precip_total_tend ( "precip_total_tend" , nz , ncol );
real2d nevapr ( "nevapr" , nz , ncol );
real2d qr_evap_tend ( "qr_evap_tend" , nz , ncol );
real2d precip_liq_flux ( "precip_liq_flux" , nz+1 , ncol );
real2d precip_ice_flux ( "precip_ice_flux" , nz+1 , ncol );
Expand Down Expand Up @@ -448,6 +448,8 @@ class Microphysics {
auto transposed_diag_eff_radius_qc = diag_eff_radius_qc.createDeviceCopy().reshape(diag_eff_radius_qc.extent(1),diag_eff_radius_qc.extent(0)); // out
auto transposed_diag_eff_radius_qi = diag_eff_radius_qi.createDeviceCopy().reshape(diag_eff_radius_qi.extent(1),diag_eff_radius_qi.extent(0)); // out
auto transposed_diag_eff_radius_qr = diag_eff_radius_qr.createDeviceCopy().reshape(diag_eff_radius_qr.extent(1),diag_eff_radius_qr.extent(0)); // out
auto transposed_precip_total_tend = precip_total_tend .createDeviceCopy().reshape(precip_total_tend .extent(1),precip_total_tend .extent(0)); // out
auto transposed_nevapr = nevapr .createDeviceCopy().reshape(nevapr .extent(1),nevapr .extent(0)); // out
auto transposed_bulk_qi = bulk_qi .createDeviceCopy().reshape(bulk_qi .extent(1),bulk_qi .extent(0)); // out
auto transposed_qv2qi_depos_tend = qv2qi_depos_tend .createDeviceCopy().reshape(qv2qi_depos_tend .extent(1),qv2qi_depos_tend .extent(0)); // out
auto transposed_precip_liq_flux = precip_liq_flux .createDeviceCopy().reshape(precip_liq_flux .extent(1),precip_liq_flux .extent(0)); // out
Expand Down Expand Up @@ -513,6 +515,8 @@ class Microphysics {
transposed_diag_eff_radius_qc.create_ArrayIR() , // out
transposed_diag_eff_radius_qi.create_ArrayIR() , // out
transposed_diag_eff_radius_qr.create_ArrayIR() , // out
transposed_precip_total_tend .create_ArrayIR() , // out
transposed_nevapr .create_ArrayIR() , // out
transposed_bulk_qi .create_ArrayIR() , // out
do_predict_nc , // in
do_prescribed_CCN , // in
Expand Down
8 changes: 8 additions & 0 deletions physics/scream_cxx_interfaces/scream_cxx_interface_p3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ namespace pam {
array_ir::ArrayIR<double,2> const & diag_eff_radius_qc, // out
array_ir::ArrayIR<double,2> const & diag_eff_radius_qi, // out
array_ir::ArrayIR<double,2> const & diag_eff_radius_qr, // out
array_ir::ArrayIR<double,2> const & precip_total_tend, // out
array_ir::ArrayIR<double,2> const & nevapr, // out
array_ir::ArrayIR<double,2> const & rho_qi, // out
bool const & do_predict_nc, // in
bool const & do_prescribed_CCN, // in
Expand Down Expand Up @@ -149,6 +151,8 @@ namespace pam {
auto diag_eff_radius_qc_d = ArrayIR_to_View_of_Packs(diag_eff_radius_qc);
auto diag_eff_radius_qi_d = ArrayIR_to_View_of_Packs(diag_eff_radius_qi);
auto diag_eff_radius_qr_d = ArrayIR_to_View_of_Packs(diag_eff_radius_qr);
auto precip_total_tend_d = ArrayIR_to_View_of_Packs(precip_total_tend);
auto nevapr_d = ArrayIR_to_View_of_Packs(nevapr);
auto rho_qi_d = ArrayIR_to_View_of_Packs(rho_qi );
auto precip_liq_flux_d = ArrayIR_to_View_of_Packs(precip_liq_flux );
auto precip_ice_flux_d = ArrayIR_to_View_of_Packs(precip_ice_flux );
Expand All @@ -161,6 +165,8 @@ namespace pam {
diag_eff_radius_qc_d(icol,ilev)[s] = 0.;
diag_eff_radius_qi_d(icol,ilev)[s] = 0.;
diag_eff_radius_qr_d(icol,ilev)[s] = 0.;
precip_total_tend_d (icol,ilev)[s] = 0.;
nevapr_d (icol,ilev)[s] = 0.;
rho_qi_d (icol,ilev)[s] = 0.;
precip_liq_flux_d (icol,ilev)[s] = 0.;
precip_ice_flux_d (icol,ilev)[s] = 0.;
Expand All @@ -174,6 +180,8 @@ namespace pam {
diag_outputs.diag_eff_radius_qc = diag_eff_radius_qc_d;
diag_outputs.diag_eff_radius_qi = diag_eff_radius_qi_d;
diag_outputs.diag_eff_radius_qr = diag_eff_radius_qr_d;
diag_outputs.precip_total_tend = precip_total_tend_d;
diag_outputs.nevapr = nevapr_d;
diag_outputs.precip_liq_surf = precip_liq_surf_d;
diag_outputs.precip_ice_surf = precip_ice_surf_d;
diag_outputs.qv2qi_depos_tend = qv2qi_depos_tend_d;
Expand Down
2 changes: 2 additions & 0 deletions physics/scream_cxx_interfaces/scream_cxx_interface_p3.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ namespace pam {
array_ir::ArrayIR<double,2> const & diag_eff_radius_qc, // out
array_ir::ArrayIR<double,2> const & diag_eff_radius_qi, // out
array_ir::ArrayIR<double,2> const & diag_eff_radius_qr, // out
array_ir::ArrayIR<double,2> const & precip_total_tend, // out
array_ir::ArrayIR<double,2> const & nevapr, // out
array_ir::ArrayIR<double,2> const & rho_qi, // out
bool const & do_predict_nc, // in
bool const & do_prescribed_CCN, // in
Expand Down
6 changes: 6 additions & 0 deletions physics/scream_cxx_interfaces/scream_cxx_interface_shoc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ namespace pam {
array_ir::ArrayIR<double,2> const & shoc_ql, // inout
array_ir::ArrayIR<double,2> const & shoc_cldfrac, // inout
array_ir::ArrayIR<double,1> const & pblh, // out
array_ir::ArrayIR<double,1> const & ustar, // out
array_ir::ArrayIR<double,1> const & obklen, // out
array_ir::ArrayIR<double,2> const & shoc_mix, // out
array_ir::ArrayIR<double,2> const & isotropy, // out
array_ir::ArrayIR<double,2> const & w_sec, // out
Expand Down Expand Up @@ -136,11 +138,15 @@ namespace pam {
// Output Variables

auto pblh_1d = ArrayIR_to_View (pblh );
auto ustar_1d = ArrayIR_to_View (ustar );
auto obklen_1d = ArrayIR_to_View (obklen );
auto shoc_ql2_2d = ArrayIR_to_View_of_Packs(shoc_ql2);
auto shoc_tkh_2d = ArrayIR_to_View_of_Packs(shoc_tkh);

SHOC::SHOCOutput shoc_output;
shoc_output.pblh = pblh_1d;
shoc_output.ustar = ustar_1d;
shoc_output.obklen = obklen_1d;
shoc_output.shoc_ql2 = shoc_ql2_2d;
shoc_output.tkh = shoc_tkh_2d;

Expand Down
2 changes: 2 additions & 0 deletions physics/scream_cxx_interfaces/scream_cxx_interface_shoc.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ namespace pam {
array_ir::ArrayIR<double,2> const & shoc_ql, // inout
array_ir::ArrayIR<double,2> const & shoc_cldfrac, // inout
array_ir::ArrayIR<double,1> const & pblh, // out
array_ir::ArrayIR<double,1> const & ustar, // out
array_ir::ArrayIR<double,1> const & obklen, // out
array_ir::ArrayIR<double,2> const & shoc_mix, // out
array_ir::ArrayIR<double,2> const & isotropy, // out
array_ir::ArrayIR<double,2> const & w_sec, // out
Expand Down
4 changes: 4 additions & 0 deletions physics/sgs/shoc/SGS.h
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,8 @@ class SGS {
real2d shoc_cldfrac ("shoc_cldfrac" , nz ,ncol); // Cloud fraction [-]
real2d shoc_ql ("shoc_ql" , nz ,ncol); // cloud liquid mixing ratio [kg/kg]
real1d shoc_pblh ("shoc_pblh" , ncol); // OUT: planetary boundary layer depth [m]
real1d shoc_ustar ("shoc_ustar" , ncol); // OUT:
real1d shoc_obklen ("shoc_obklen" , ncol); // OUT:
real2d shoc_ql2 ("shoc_ql2" , nz ,ncol); // OUT: cloud liquid mixing ratio variance [kg^2/kg^2]
real2d shoc_mix ("shoc_mix" , nz ,ncol); // OUT: Turbulent length scale [m]
real2d shoc_w_sec ("shoc_w_sec" , nz ,ncol); // OUT: vertical velocity variance [m2/s2]
Expand Down Expand Up @@ -515,6 +517,8 @@ class SGS {
transposed_shoc_ql .create_ArrayIR() , // inout
transposed_shoc_cldfrac .create_ArrayIR() , // inout
shoc_pblh .create_ArrayIR() , // out
shoc_ustar .create_ArrayIR() , // out
shoc_obklen .create_ArrayIR() , // out
transposed_shoc_mix .create_ArrayIR() , // out
transposed_shoc_isotropy .create_ArrayIR() , // out
transposed_shoc_w_sec .create_ArrayIR() , // out
Expand Down

0 comments on commit c3b6522

Please sign in to comment.