works only for MSC.Marc

This commit is contained in:
Martin Diehl 2019-10-24 13:56:48 +02:00
parent 0bc4326618
commit 3d44e7598e
1 changed files with 19 additions and 19 deletions

View File

@ -22,7 +22,7 @@ module FEsolving
#if defined(Marc4DAMASK) || defined(Abaqus) #if defined(Marc4DAMASK) || defined(Abaqus)
logical, public, protected :: & logical, public, protected :: &
symmetricSolver = .false. !< use a symmetric FEM solver (only Abaqus) symmetricSolver = .false. !< use a symmetric FEM solver
logical, dimension(:,:), allocatable, public :: & logical, dimension(:,:), allocatable, public :: &
calcMode !< do calculation or simply collect when using ping pong scheme calcMode !< do calculation or simply collect when using ping pong scheme
@ -31,36 +31,36 @@ module FEsolving
contains contains
#if defined(Marc4DAMASK) || defined(Abaqus) #if defined(Marc4DAMASK) || defined(Abaqus)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief determine whether a symmetric solver is used !> @brief determine whether a symmetric solver is used
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine FE_init subroutine FE_init
integer, parameter :: &
FILEUNIT = 222
character(len=pStringLen) :: tag, line
integer, allocatable, dimension(:) :: chunkPos
write(6,'(/,a)') ' <<<+- FEsolving init -+>>>' write(6,'(/,a)') ' <<<+- FEsolving init -+>>>'
#if defined(Marc4DAMASK)
block
integer, parameter :: FILEUNIT = 222
character(len=pStringLen) :: line
integer, allocatable, dimension(:) :: chunkPos
call IO_open_inputFile(FILEUNIT) call IO_open_inputFile(FILEUNIT)
rewind(FILEUNIT) rewind(FILEUNIT)
do do
read (FILEUNIT,'(a256)',END=100) line read (FILEUNIT,'(a256)',END=100) line
chunkPos = IO_stringPos(line) chunkPos = IO_stringPos(line)
tag = IO_lc(IO_stringValue(line,chunkPos,1)) if(IO_lc(IO_stringValue(line,chunkPos,1)) == 'solver') then
select case(tag)
case ('solver')
read (FILEUNIT,'(a256)',END=100) line ! next line read (FILEUNIT,'(a256)',END=100) line ! next line
chunkPos = IO_stringPos(line) chunkPos = IO_stringPos(line)
symmetricSolver = (IO_intValue(line,chunkPos,2) /= 1) symmetricSolver = (IO_intValue(line,chunkPos,2) /= 1)
end select endif
enddo enddo
100 close(FILEUNIT) 100 close(FILEUNIT)
end block
#endif
end subroutine FE_init end subroutine FE_init
#endif #endif
end module FEsolving end module FEsolving