lists all FABM configured variables
subroutine fabm_list() !! lists all FABM configured variables integer :: n print*, 'FABM interior state variables:' do n = 1,size(model%interior_state_variables) print*, n, & trim(model%interior_state_variables(n)%name), ' ', & trim(model%interior_state_variables(n)%units),' ', & trim(model%interior_state_variables(n)%long_name) end do print*, 'FABM surface-bound state variables:' do n=1,size(model%surface_state_variables) print*, n, & trim(model%surface_state_variables(n)%name), ' ', & trim(model%surface_state_variables(n)%units),' ', & trim(model%surface_state_variables(n)%long_name) end do print*, 'FABM bottom-bound state variables:' do n=1,size(model%bottom_state_variables) print*, n, & trim(model%bottom_state_variables(n)%name), ' ', & trim(model%bottom_state_variables(n)%units),' ', & trim(model%bottom_state_variables(n)%long_name) end do #if 0 print*, 'FABM diagnostic variables defined on the full model domain:' do n=1,size(model%interior_diagnostic_variables) print*, n, & trim(model%interior_diagnostic_variables(n)%name), ' ', & trim(model%interior_diagnostic_variables(n)%units),' ', & trim(model%interior_diagnostic_variables(n)%long_name) end do print*, 'FABM diagnostic variables defined on a horizontal slice of the model domain:' do n=1,size(model%horizontal_diagnostic_variables) print*, n, & trim(model%horizontal_diagnostic_variables(n)%name), ' ', & trim(model%horizontal_diagnostic_variables(n)%units),' ', & trim(model%horizontal_diagnostic_variables(n)%long_name) end do #endif end subroutine fabm_list