save_file_ini Subroutine

private subroutine save_file_ini(self, retain_comments, iostat, iomsg, filename)

Save data.

Arguments

TypeIntentOptionalAttributesName
class(file_ini), intent(inout) :: self

File data.

logical, intent(in), optional :: retain_comments

Flag for retaining eventual comments.

integer(kind=I4P), intent(out), optional :: iostat

IO error.

character, intent(out), optional :: iomsg

IO error message.

character, intent(in), optional :: filename

File name.


Contents

Source Code


Source Code

  subroutine save_file_ini(self, retain_comments, iostat, iomsg, filename)
  !< Save data.
  class(file_ini),        intent(inout) :: self            !< File data.
  logical,      optional, intent(in)    :: retain_comments !< Flag for retaining eventual comments.
  integer(I4P), optional, intent(out)   :: iostat          !< IO error.
  character(*), optional, intent(out)   :: iomsg           !< IO error message.
  character(*), optional, intent(in)    :: filename        !< File name.
  logical                               :: rt_comm         !< Flag for retaining eventual comments.
  integer(I4P)                          :: unit            !< Logic unit.
  integer(I4P)                          :: iostatd         !< IO error.
  character(500)                        :: iomsgd          !< Temporary variable for IO error message.
  integer(I4P)                          :: s               !< Counter.

  rt_comm = .false. ; if (present(retain_comments)) rt_comm = retain_comments
  if (present(filename)) self%filename = filename
  if (allocated(self%filename).and.allocated(self%sections)) then
    open(newunit=unit, file=self%filename, action='WRITE', iostat=iostatd, iomsg=iomsgd)
    do s=1, size(self%sections, dim=1)
      call self%sections(s)%save(iostat=iostatd, iomsg=iomsgd, unit=unit, retain_comments=rt_comm)
    enddo
    close(unit=unit, iostat=iostatd, iomsg=iomsgd)
  endif
  if (present(iostat)) iostat = iostatd
  if (present(iomsg))  iomsg  = iomsgd
  endsubroutine save_file_ini