@@ -327,31 +327,34 @@ subroutine open_csv_file(me,filename,n_cols,status_ok,append)
327
327
328
328
implicit none
329
329
330
- class(csv_file),intent (inout ) :: me
331
- character (len=* ),intent (in ) :: filename ! ! the CSV file to open
332
- integer ,intent (in ) :: n_cols ! ! number of columns in the file
333
- logical ,intent (out ) :: status_ok ! ! status flag
334
- logical ,intent (in ),optional :: append ! ! Append if file exists
330
+ class(csv_file),intent (inout ) :: me
331
+ character (len=* ),intent (in ) :: filename ! ! the CSV file to open
332
+ integer ,intent (in ) :: n_cols ! ! number of columns in the file
333
+ logical ,intent (out ) :: status_ok ! ! status flag
334
+ logical ,intent (in ),optional :: append ! ! append if file exists
335
335
336
- integer :: istat ! ! open `iostat` flag
337
- logical :: append_flag = .false.
338
- logical :: file_exists
336
+ integer :: istat ! ! open `iostat` flag
337
+ logical :: append_flag ! ! local copy of `append` argument
338
+ logical :: file_exists ! ! if the file exists
339
339
340
340
call me% destroy()
341
341
342
342
me% n_cols = n_cols
343
343
344
- if (present (append)) append_flag = append
345
- if (append_flag) then
346
- inquire (file= filename, exist= file_exists)
347
- if (file_exists) then
348
- open (newunit= me% iunit,file= filename,status= ' OLD' ,position= ' APPEND' ,iostat= istat)
349
- else
350
- open (newunit= me% iunit,file= filename,status= ' REPLACE' ,iostat= istat)
351
- end if
344
+ ! optional append argument:
345
+ append_flag = .false.
346
+ file_exists = .false.
347
+ if (present (append)) then
348
+ append_flag = append
349
+ if (append) inquire (file= filename, exist= file_exists)
350
+ end if
351
+
352
+ if (append_flag .and. file_exists) then
353
+ open (newunit= me% iunit,file= filename,status= ' OLD' ,position= ' APPEND' ,iostat= istat)
352
354
else
353
- open (newunit= me% iunit,file= filename,status= ' REPLACE' ,iostat= istat)
355
+ open (newunit= me% iunit,file= filename,status= ' REPLACE' ,iostat= istat)
354
356
end if
357
+
355
358
if (istat== 0 ) then
356
359
status_ok = .true.
357
360
else
0 commit comments