DAMASK_EICMD/trunk/FEsolving.f90

55 lines
1.3 KiB
Fortran

!##############################################################
MODULE FEsolving
!##############################################################
use prec, only: pInt,pReal
implicit none
integer(pInt) cycleCounter
integer(pInt) theInc,theCycle,theLovl
real(pReal) theTime
logical :: lastIncConverged = .false.,outdatedByNewInc = .false., outdatedFFN1 = .false.
logical :: symmetricSolver = .false.
CONTAINS
!***********************************************************
! determine wether a symmetric solver is used
!***********************************************************
subroutine FE_get_solverSymmetry(unit)
use prec, only: pInt
use IO
implicit none
integer(pInt) unit
integer(pInt), dimension (133) :: pos
character*300 line
610 FORMAT(A300)
rewind(unit)
do
read (unit,610,END=630) line
pos = IO_stringPos(line,1)
if( IO_lc(IO_stringValue(line,pos,1)) == 'solver' ) then
read (unit,610,END=630) line ! Garbage line
pos = IO_stringPos(line,2) ! limit to 64 nodes max (plus ID, type)
if(IO_intValue(line,pos,2) /= 1_pInt) then
symmetricSolver = .true.
!$OMP CRITICAL (write2out)
write (6,*)
write (6,*) 'Symmetric solver detected. d-Matrix will be symmetrized!'
!$OMP END CRITICAL (write2out)
endif
endif
enddo
630 return
end subroutine
END MODULE FEsolving