diff --git a/schemes/sima_diagnostics/sima_state_diagnostics.F90 b/schemes/sima_diagnostics/sima_state_diagnostics.F90 index 35d4b84c..1d1b5500 100644 --- a/schemes/sima_diagnostics/sima_state_diagnostics.F90 +++ b/schemes/sima_diagnostics/sima_state_diagnostics.F90 @@ -83,6 +83,9 @@ subroutine sima_state_diagnostics_init(const_props, errmsg, errflg) const_found = .false. do const_idx = 1, size(const_props) call const_props(const_idx)%standard_name(standard_name, errflg, errmsg) + if (errflg /= 0) then + return + end if do name_idx = 1, size(const_std_names) if (trim(standard_name) == trim(const_std_names(name_idx))) then call history_add_field(trim(const_diag_names(name_idx)), trim(const_std_names(name_idx)), 'lev', 'avg', 'kg kg-1', mixing_ratio='wet') @@ -99,6 +102,9 @@ subroutine sima_state_diagnostics_init(const_props, errmsg, errflg) do const_idx = 1, size(const_props) if (.not. const_found(const_idx)) then call const_props(const_idx)%standard_name(standard_name, errflg, errmsg) + if (errflg /= 0) then + return + end if ! truncate the standard name if necessary diagnostic_name = standard_name call const_props(const_idx)%units(units, errflg, errmsg) @@ -205,6 +211,9 @@ subroutine sima_state_diagnostics_run(ps, psdry, phis, T, u, v, dse, omega, & const_found = .false. do const_idx = 1, size(const_props) call const_props(const_idx)%standard_name(standard_name, errflg, errmsg) + if (errflg /= 0) then + return + end if do name_idx = 1, size(const_std_names) if (trim(standard_name) == trim(const_std_names(name_idx))) then call history_out_field(trim(const_diag_names(name_idx)), const_array(:,:,const_idx)) @@ -223,6 +232,9 @@ subroutine sima_state_diagnostics_run(ps, psdry, phis, T, u, v, dse, omega, & do const_idx = 1, size(const_props) if (.not. const_found(const_idx)) then call const_props(const_idx)%standard_name(standard_name, errflg, errmsg) + if (errflg /= 0) then + return + end if diagnostic_name = standard_name call history_out_field(trim(diagnostic_name), const_array(:,:,const_idx)) end if