55 lines
1.3 KiB
Fortran
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
|