@@ -808,32 +808,38 @@ subroutine log_error( self, message, module, procedure, stat, errmsg )
808
808
character (len=* ), intent (in ), optional :: errmsg
809
809
! ! The value of the `errmsg` specifier returned by a Fortran statement
810
810
811
- integer :: unit
812
811
integer :: iostat
812
+ character (28 ) :: dummy
813
+ character (256 ) :: iomsg
813
814
character (* ), parameter :: procedure_name = ' log_error'
814
- character (256 ) :: iomsg, suffix
815
+ character (:), allocatable :: suffix
815
816
816
817
if ( present (stat) ) then
817
- write ( suffix , ' (a, i0)' , err= 999 , iostat= iostat, iomsg= iomsg ) &
818
+ write ( dummy , ' (a, i0)' , err= 999 , iostat= iostat, iomsg= iomsg ) &
818
819
new_line(' a' ) // " With stat = " , stat
820
+ else
821
+ dummy = ' '
819
822
end if
820
823
821
824
if ( present (errmsg) ) then
822
825
if ( len_trim (errmsg) > 0 ) then
823
- suffix( len_trim (suffix) + 1 : ) = &
826
+ suffix = trim (dummy) // &
824
827
new_line(' a' ) // ' With errmsg = "' // trim (errmsg) // ' "'
828
+ else
829
+ suffix = dummy
825
830
end if
831
+ else
832
+ suffix = dummy
826
833
end if
827
834
828
- call self % log_message( trim (message) // trim ( suffix) , &
829
- module = module , &
830
- procedure = procedure , &
835
+ call self % log_message( trim (message) // suffix, &
836
+ module = module , &
837
+ procedure = procedure , &
831
838
prefix = ' ERROR' )
832
839
833
840
return
834
841
835
- unit = - 999
836
- 999 call handle_write_failure( unit, procedure_name, iostat, iomsg )
842
+ 999 call handle_write_failure( - 999 , procedure_name, iostat, iomsg )
837
843
838
844
end subroutine log_error
839
845
@@ -944,32 +950,38 @@ subroutine log_io_error( self, message, module, procedure, iostat, &
944
950
character (len=* ), intent (in ), optional :: iomsg
945
951
! ! The value of the IOMSG specifier returned by a Fortran I/O statement
946
952
947
- integer :: unit
953
+ character (28 ) :: dummy
954
+ character (256 ) :: iomsg2
948
955
integer :: iostat2
949
- character (* ), parameter :: procedure_name = ' log_error '
950
- character (256 ) :: iomsg2, suffix
956
+ character (* ), parameter :: procedure_name = ' log_io_error '
957
+ character (:), allocatable :: suffix
951
958
952
959
if ( present (iostat) ) then
953
- write ( suffix , ' (a, i0)' , err= 999 , iostat= iostat2, iomsg= iomsg2 ) &
960
+ write ( dummy , ' (a, i0)' , err= 999 , iostat= iostat2, iomsg= iomsg2 ) &
954
961
new_line(' a' ) // " With iostat = " , iostat
962
+ else
963
+ dummy = ' '
955
964
end if
956
965
957
966
if ( present (iomsg) ) then
958
967
if ( len_trim (iomsg) > 0 ) then
959
- suffix( len_trim (suffix) + 1 : ) = &
968
+ suffix = trim (dummy) // &
960
969
new_line(' a' ) // ' With iomsg = "' // trim (iomsg) // ' "'
970
+ else
971
+ suffix = trim (dummy)
961
972
end if
973
+ else
974
+ suffix = trim (dummy)
962
975
end if
963
976
964
- call self % log_message( trim (message) // trim ( suffix) , &
965
- module = module , &
966
- procedure = procedure , &
977
+ call self % log_message( trim (message) // suffix, &
978
+ module = module , &
979
+ procedure = procedure , &
967
980
prefix = ' I/O ERROR' )
968
981
969
982
return
970
983
971
- unit = - 999
972
- 999 call handle_write_failure( unit, procedure_name, iostat, iomsg )
984
+ 999 call handle_write_failure( - 999 , procedure_name, iostat2, iomsg2 )
973
985
974
986
end subroutine log_io_error
975
987
0 commit comments