changed fileopen routines in IO.f90 to use solver dependant functions defined in the interface routines
DID NOT test ABAQUS versions yet, not shure whether (V)GETOUTDIR returns path with or without terminating slash
This commit is contained in:
parent
0416c9a616
commit
e810e5cfa1
31
code/IO.f90
31
code/IO.f90
|
@ -47,16 +47,14 @@ endsubroutine
|
|||
logical function IO_open_file(unit,relPath)
|
||||
|
||||
use prec, only: pInt
|
||||
use cpfem_interface
|
||||
implicit none
|
||||
|
||||
character(len=*), parameter :: pathSep = achar(47)//achar(92) ! /, \
|
||||
character(len=*) relPath
|
||||
integer(pInt) unit
|
||||
character(1024) path
|
||||
|
||||
path=''
|
||||
inquire(6, name=path) ! determine outputfile
|
||||
open(unit,status='old',err=100,file=path(1:scan(path,pathSep,back=.true.))//relPath)
|
||||
open(unit,status='old',err=100,file=trim(getWorkingDirectoryName())//relPath)
|
||||
IO_open_file = .true.
|
||||
return
|
||||
100 IO_open_file = .false.
|
||||
|
@ -75,26 +73,8 @@ endsubroutine
|
|||
implicit none
|
||||
|
||||
integer(pInt), intent(in) :: unit
|
||||
integer(pInt) extPos
|
||||
character(1024) outName
|
||||
character(3) ext
|
||||
|
||||
outName=''
|
||||
inquire(6, name=outName) ! determine outputfileName
|
||||
extPos = len_trim(outName)-2
|
||||
! if(outName(extPos:extPos+2)=='out') then
|
||||
! ext='dat' ! MARC
|
||||
! else
|
||||
! ext='inp' ! ABAQUS
|
||||
! endif
|
||||
select case (FEsolver)
|
||||
case ('Marc')
|
||||
ext='dat'
|
||||
case ('Abaqus')
|
||||
ext='inp'
|
||||
end select
|
||||
|
||||
open(unit,status='old',err=100,file=outName(1:extPos-1)//ext)
|
||||
open(unit,status='old',err=100,file=getInputFileName())
|
||||
IO_open_inputFile = .true.
|
||||
return
|
||||
100 IO_open_inputFile = .false.
|
||||
|
@ -110,14 +90,13 @@ endsubroutine
|
|||
logical function IO_open_jobFile(unit,newExt)
|
||||
|
||||
use prec, only: pReal, pInt
|
||||
use cpfem_interface
|
||||
implicit none
|
||||
|
||||
integer(pInt), intent(in) :: unit
|
||||
character(*), intent(in) :: newExt
|
||||
character(256) outName
|
||||
|
||||
inquire(6, name=outName) ! determine outputfileName
|
||||
open(unit,status='replace',err=100,file=outName(1:len_trim(outName)-3)//newExt)
|
||||
open(unit,status='replace',err=100,file=trim(getFullJobName())//'.'//newExt)
|
||||
IO_open_jobFile = .true.
|
||||
return
|
||||
100 IO_open_jobFile = .false.
|
||||
|
|
|
@ -14,27 +14,58 @@
|
|||
!
|
||||
!********************************************************************
|
||||
|
||||
include "prec.f90" ! uses nothing else
|
||||
|
||||
|
||||
MODULE cpfem_interface
|
||||
|
||||
character(len=64), parameter :: FEsolver = 'Abaqus'
|
||||
|
||||
CONTAINS
|
||||
|
||||
subroutine mpie_cpfem_init ()
|
||||
|
||||
!$OMP CRITICAL (write2out)
|
||||
subroutine mpie_cpfem_init
|
||||
write(6,*)
|
||||
write(6,*) '<<<+- mpie_cpfem_abaqus_exp init -+>>>'
|
||||
write(6,*) '<<<+- mpie_cpfem_abaqus init -+>>>'
|
||||
write(6,*) '$Id$'
|
||||
write(6,*)
|
||||
call flush(6)
|
||||
!$OMP END CRITICAL (write2out)
|
||||
return
|
||||
end subroutine
|
||||
|
||||
function getWorkingDirectoryName
|
||||
use prec
|
||||
implicit none
|
||||
character(1024) getWorkingDirectoryName
|
||||
integer(pInt) LENOUTDIR
|
||||
|
||||
getWorkingDirectoryName=''
|
||||
CALL VGETOUTDIR( getWorkingDirectoryName, LENOUTDIR )
|
||||
! write(6,*) 'getWorkingDirectoryName', getWorkingDirectoryName
|
||||
end function
|
||||
|
||||
function getFullJobName
|
||||
use prec
|
||||
implicit none
|
||||
|
||||
character(1024) getFullJobName, JOBNAME
|
||||
integer(pInt) LENJOBNAME
|
||||
|
||||
getFullJobName=''
|
||||
CALL VGETJOBNAME(JOBNAME , LENJOBNAME )
|
||||
getFullJobName=trim(getWorkingDirectoryName())//trim(JOBNAME)
|
||||
! write(6,*) 'getFullJobName', getFullJobName
|
||||
end function
|
||||
|
||||
function getInputFileName
|
||||
implicit none
|
||||
character(1024) getInputFileName
|
||||
|
||||
getInputFileName=''
|
||||
getInputFileName=trim(getFullJobName())//'.inp'
|
||||
! write(6,*) 'getInputFileName', getInputFileName
|
||||
end function
|
||||
|
||||
END MODULE
|
||||
|
||||
include "prec.f90" ! uses nothing else
|
||||
include "IO.f90" ! uses prec
|
||||
include "numerics.f90" ! uses prec, IO
|
||||
include "math.f90" ! uses prec, numerics
|
||||
|
|
|
@ -14,27 +14,58 @@
|
|||
!
|
||||
!********************************************************************
|
||||
|
||||
include "prec.f90" ! uses nothing else
|
||||
|
||||
|
||||
MODULE cpfem_interface
|
||||
|
||||
character(len=64), parameter :: FEsolver = 'Abaqus'
|
||||
|
||||
CONTAINS
|
||||
|
||||
subroutine mpie_cpfem_init ()
|
||||
|
||||
!$OMP CRITICAL (write2out)
|
||||
subroutine mpie_cpfem_init
|
||||
write(6,*)
|
||||
write(6,*) '<<<+- mpie_cpfem_abaqus init -+>>>'
|
||||
write(6,*) '$Id$'
|
||||
write(6,*)
|
||||
call flush(6)
|
||||
!$OMP END CRITICAL (write2out)
|
||||
return
|
||||
end subroutine
|
||||
|
||||
function getWorkingDirectoryName
|
||||
use prec
|
||||
implicit none
|
||||
character(1024) getWorkingDirectoryName
|
||||
integer(pInt) LENOUTDIR
|
||||
|
||||
getWorkingDirectoryName=''
|
||||
CALL GETOUTDIR( getWorkingDirectoryName, LENOUTDIR )
|
||||
! write(6,*) 'getWorkingDirectoryName', getWorkingDirectoryName
|
||||
end function
|
||||
|
||||
function getFullJobName
|
||||
use prec
|
||||
implicit none
|
||||
|
||||
character(1024) getFullJobName, JOBNAME
|
||||
integer(pInt) LENJOBNAME
|
||||
|
||||
getFullJobName=''
|
||||
CALL GETJOBNAME(JOBNAME , LENJOBNAME )
|
||||
getFullJobName=trim(getWorkingDirectoryName())//trim(JOBNAME)
|
||||
! write(6,*) 'getFullJobName', getFullJobName
|
||||
end function
|
||||
|
||||
function getInputFileName
|
||||
implicit none
|
||||
character(1024) getInputFileName
|
||||
|
||||
getInputFileName=''
|
||||
getInputFileName=trim(getFullJobName())//'.inp'
|
||||
! write(6,*) 'getInputFileName', getInputFileName
|
||||
end function
|
||||
|
||||
END MODULE
|
||||
|
||||
include "prec.f90" ! uses nothing else
|
||||
include "IO.f90" ! uses prec
|
||||
include "numerics.f90" ! uses prec, IO
|
||||
include "math.f90" ! uses prec, numerics
|
||||
|
|
|
@ -36,6 +36,9 @@
|
|||
! - creeps: timinc
|
||||
!********************************************************************
|
||||
!
|
||||
include "prec.f90" ! uses nothing else
|
||||
|
||||
|
||||
MODULE cpfem_interface
|
||||
|
||||
character(len=64), parameter :: FEsolver = 'Marc'
|
||||
|
@ -50,9 +53,44 @@ subroutine mpie_cpfem_init
|
|||
return
|
||||
end subroutine
|
||||
|
||||
function getWorkingDirectoryName
|
||||
implicit none
|
||||
character(1024) getWorkingDirectoryName, outName
|
||||
character(len=*), parameter :: pathSep = achar(47)//achar(92) ! /, \
|
||||
|
||||
getWorkingDirectoryName=''
|
||||
outName=''
|
||||
inquire(6, name=outName) ! determine outputfile
|
||||
getWorkingDirectoryName=outName(1:scan(outName,pathSep,back=.true.))
|
||||
! write(6,*) 'getWorkingDirectoryName', getWorkingDirectoryName
|
||||
end function
|
||||
|
||||
function getFullJobName
|
||||
use prec
|
||||
implicit none
|
||||
|
||||
character(1024) getFullJobName, outName
|
||||
integer(pInt) extPos
|
||||
|
||||
getFullJobName=''
|
||||
outName=''
|
||||
inquire(6, name=outName) ! determine outputfile
|
||||
extPos = len_trim(outName)-4
|
||||
getFullJobName=outName(1:extPos)
|
||||
! write(6,*) 'getFullJobName', getFullJobName
|
||||
end function
|
||||
|
||||
function getInputFileName
|
||||
implicit none
|
||||
character(1024) getInputFileName
|
||||
|
||||
getInputFileName=''
|
||||
getInputFileName=trim(getFullJobName())//'.dat'
|
||||
! write(6,*) 'getInputFileName', getInputFileName
|
||||
end function
|
||||
|
||||
END MODULE
|
||||
|
||||
include "prec.f90" ! uses nothing else
|
||||
include "IO.f90" ! uses prec
|
||||
include "numerics.f90" ! uses prec, IO
|
||||
include "math.f90" ! uses prec, numerics
|
||||
|
|
Loading…
Reference in New Issue