Add a derived type (crm_output_type) to handle operations on CRM diagnostic outputs/statistics. This not only helps contain a large number of arrays that were previously being passed as subroutine arguments, but will also allow us to encapsulate operations on the outputs, like aggregating the statistics each timestep. Having all the initialization in one place also significantly cleans up crm_physics_tend().
Add a derived type (crm_output_type) to handle operations on CRM diagnostic outputs/statistics. This not only helps contain a large number of arrays that were previously being passed as subroutine arguments, but will also allow us to encapsulate operations on the outputs, like aggregating the statistics each timestep. Having all the initialization in one place also significantly cleans up crm_physics_tend().