diff --git a/schemes/musica/musica_ccpp.F90 b/schemes/musica/musica_ccpp.F90
index 9a5871a1..1fb99c24 100644
--- a/schemes/musica/musica_ccpp.F90
+++ b/schemes/musica/musica_ccpp.F90
@@ -14,18 +14,22 @@ module musica_ccpp
!> \section arg_table_musica_ccpp_register Argument Table
!! \htmlinclude musica_ccpp_register.html
- subroutine musica_ccpp_register(micm_solver_type, number_of_grid_cells, &
- constituent_props, errmsg, errcode)
+ subroutine musica_ccpp_register(horizontal_loop_extent, &
+ vertical_layer_dimension, constituent_props, errmsg, &
+ errcode)
use ccpp_constituent_prop_mod, only: ccpp_constituent_properties_t
+ use musica_ccpp_namelist, only: micm_solver_type
- integer, intent(in) :: micm_solver_type
- integer, intent(in) :: number_of_grid_cells
+ integer, intent(in) :: horizontal_loop_extent
+ integer, intent(in) :: vertical_layer_dimension
type(ccpp_constituent_properties_t), allocatable, intent(out) :: constituent_props(:)
character(len=512), intent(out) :: errmsg
integer, intent(out) :: errcode
type(ccpp_constituent_properties_t), allocatable :: constituent_props_subset(:)
+ integer :: number_of_grid_cells
+ number_of_grid_cells = horizontal_loop_extent * vertical_layer_dimension
call micm_register(micm_solver_type, number_of_grid_cells, constituent_props_subset, &
errmsg, errcode)
if (errcode /= 0) return
diff --git a/schemes/musica/musica_ccpp.meta b/schemes/musica/musica_ccpp.meta
index 94c9d1b0..807ac20d 100644
--- a/schemes/musica/musica_ccpp.meta
+++ b/schemes/musica/musica_ccpp.meta
@@ -6,14 +6,14 @@
[ccpp-arg-table]
name = musica_ccpp_register
type = scheme
-[ micm_solver_type ]
- standard_name = micm_solver_type
- units = none
+[ horizontal_loop_extent ]
+ standard_name = horizontal_loop_extent
+ units = count
type = integer
dimensions = ()
intent = in
-[ number_of_grid_cells ]
- standard_name = number_of_grid_cells
+[ vertical_layer_dimension ]
+ standard_name = vertical_layer_dimension
units = count
type = integer
dimensions = ()
diff --git a/schemes/musica/musica_ccpp_namelist.xml b/schemes/musica/musica_ccpp_namelist.xml
index 31999ef2..c36d1b81 100644
--- a/schemes/musica/musica_ccpp_namelist.xml
+++ b/schemes/musica/musica_ccpp_namelist.xml
@@ -75,16 +75,20 @@
units
This is the CCPP unit specification of the variable (e.g., m s-1).
-->
-
-
- integer
-
-
- integer
-
-
-
+
+ integer
+ musica_ccpp
+ musica_ccpp
+ micm_solver_type
+ none
+
+ The type of MICM solver to use.
+
+
+ 1
+
+
char*512
musica_ccpp
diff --git a/test/musica/musica_ccpp_namelist.F90 b/test/musica/musica_ccpp_namelist.F90
index d27cc754..0dcf3170 100644
--- a/test/musica/musica_ccpp_namelist.F90
+++ b/test/musica/musica_ccpp_namelist.F90
@@ -4,7 +4,8 @@ module musica_ccpp_namelist
implicit none
private
-
+
+ integer, public :: micm_solver_type = 1
character(len=250), public :: filename_of_micm_configuration = 'musica_configurations/chapman/micm/config.json'
character(len=250), public :: filename_of_tuvx_configuration = 'musica_configurations/chapman/tuvx/config.json'
character(len=250), public :: filename_of_tuvx_micm_mapping_configuration = 'musica_configurations/chapman/tuvx_micm_mapping.json'
diff --git a/test/musica/test_musica_api.F90 b/test/musica/test_musica_api.F90
index 2393a303..99b95892 100644
--- a/test/musica/test_musica_api.F90
+++ b/test/musica/test_musica_api.F90
@@ -136,7 +136,6 @@ end subroutine get_wavelength_edges
!> Tests the Chapman chemistry scheme
subroutine test_chapman()
- use musica_micm, only: Rosenbrock, RosenbrockStandardOrder
use ccpp_constituent_prop_mod, only: ccpp_constituent_prop_ptr_t
use ccpp_constituent_prop_mod, only: ccpp_constituent_properties_t
use musica_ccpp_micm, only: micm
@@ -155,7 +154,6 @@ subroutine test_chapman()
integer, parameter :: NUM_LAYERS = 2
integer, parameter :: NUM_WAVELENGTH_BINS = 102
integer :: NUM_GRID_CELLS = NUM_COLUMNS * NUM_LAYERS
- integer :: solver_type = Rosenbrock
integer :: errcode
character(len=512) :: errmsg
real(kind_phys) :: time_step = 60._kind_phys ! s
@@ -192,7 +190,6 @@ subroutine test_chapman()
real(kind_phys) :: total_O, total_O_init
call get_wavelength_edges(photolysis_wavelength_grid_interfaces)
- solver_type = Rosenbrock
time_step = 60._kind_phys
geopotential_height_wrt_surface_at_midpoint(1,:) = (/ 2000.0_kind_phys, 500.0_kind_phys /)
geopotential_height_wrt_surface_at_midpoint(2,:) = (/ 2000.0_kind_phys, -500.0_kind_phys /)
@@ -225,7 +222,7 @@ subroutine test_chapman()
filename_of_tuvx_configuration = 'musica_configurations/chapman/tuvx/config.json'
filename_of_tuvx_micm_mapping_configuration = 'musica_configurations/chapman/tuvx_micm_mapping.json'
- call musica_ccpp_register(solver_type, NUM_GRID_CELLS, constituent_props, errmsg, errcode)
+ call musica_ccpp_register(NUM_COLUMNS, NUM_LAYERS, constituent_props, errmsg, errcode)
if (errcode /= 0) then
write(*,*) trim(errmsg)
stop 3
@@ -374,7 +371,6 @@ end subroutine test_chapman
!> Tests the simple Terminator chemistry scheme
subroutine test_terminator()
- use musica_micm, only: Rosenbrock, RosenbrockStandardOrder
use ccpp_constituent_prop_mod, only: ccpp_constituent_prop_ptr_t
use ccpp_constituent_prop_mod, only: ccpp_constituent_properties_t
use musica_ccpp_micm, only: micm
@@ -393,7 +389,6 @@ subroutine test_terminator()
integer, parameter :: NUM_LAYERS = 2
integer, parameter :: NUM_WAVELENGTH_BINS = 102
integer :: NUM_GRID_CELLS = NUM_COLUMNS * NUM_LAYERS
- integer :: solver_type = Rosenbrock
integer :: errcode
character(len=512) :: errmsg
real(kind_phys) :: time_step = 60._kind_phys ! s
@@ -430,7 +425,6 @@ subroutine test_terminator()
real(kind_phys) :: total_Cl, total_Cl_init
call get_wavelength_edges(photolysis_wavelength_grid_interfaces)
- solver_type = Rosenbrock
time_step = 60._kind_phys
geopotential_height_wrt_surface_at_midpoint(1,:) = (/ 2000.0_kind_phys, 500.0_kind_phys /)
geopotential_height_wrt_surface_at_midpoint(2,:) = (/ 2000.0_kind_phys, -500.0_kind_phys /)
@@ -463,7 +457,7 @@ subroutine test_terminator()
filename_of_tuvx_configuration = 'musica_configurations/terminator/tuvx/config.json'
filename_of_tuvx_micm_mapping_configuration = 'musica_configurations/terminator/tuvx_micm_mapping.json'
- call musica_ccpp_register(solver_type, NUM_GRID_CELLS, constituent_props, errmsg, errcode)
+ call musica_ccpp_register(NUM_COLUMNS, NUM_LAYERS, constituent_props, errmsg, errcode)
if (errcode /= 0) then
write(*,*) trim(errmsg)
stop 3