Creates a directory using system commands.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | dirname |
Directory name |
impure subroutine sysutils_obj_CreateDirectory(dirname) !> Creates a directory using system commands. use iso_fortran_env, only : stderr => error_unit implicit none character(len=*), intent(in) :: dirname !! Directory name ! Work variables integer :: fid integer :: ierr ! Attempt to create a dummy file open(newunit=fid,file=trim(adjustl(dirname))//'/test',action='write',status='replace',iostat=ierr) if (ierr.eq. 0) then ! Folder exists and is writable ! Delete test file close(fid, status='delete') else ! Create folder call execute_command_line('mkdir -p '//trim(adjustl(dirname)), exitstat=ierr) if (ierr.ne.0) then write(stderr,*) 'Error creating directory: '//trim(adjustl(dirname)) error stop end if ! Test folder is writable open(newunit=fid,file=trim(adjustl(dirname))//'/test',action='write',status='replace',iostat=ierr) if (ierr.eq. 0) then ! Delete test file close(fid, status='delete') else write(stderr,*) 'Unable to create/write in directory: '//trim(adjustl(dirname)) error stop end if end if return end subroutine sysutils_obj_CreateDirectory