Path: blob/devel/elmerice/Tests/FrictionHeatMasked/DummySolver.f90
3206 views
1RECURSIVE SUBROUTINE DummySolver( Model,Solver,Timestep,TransientSimulation )2USE DefUtils34IMPLICIT NONE567!------------------------------------------------------------------------------8! External variables9!------------------------------------------------------------------------------10TYPE(Model_t) :: Model11TYPE(Solver_t), TARGET :: Solver12LOGICAL :: TransientSimulation13REAL(KIND=dp) :: Timestep14!------------------------------------------------------------------------------15! Local variables16!------------------------------------------------------------------------------17TYPE(ValueList_t), Pointer :: BC18TYPE(Variable_t), POINTER :: Var19TYPE(Element_t),POINTER :: Element20INTEGER, POINTER :: VarPerm(:)21INTEGER :: VarDOFs, i, j, k, N, t22REAL(KIND=dp), POINTER :: VarValues(:)23LOGICAL :: GotIt2425PRINT *,"DummySolver"26PRINT *,"***********************************"2728Var => Solver % Variable29IF (ASSOCIATED(Var)) THEN30VarPerm => Var % Perm31VarDOFs = Var % DOFs32VarValues => Var % Values33VarValues = 0.0_dp34ELSE35CALL FATAL('DummySolver','No Variable associated')36END IF37k=038! DO i = 1,Model % NumberOfNodes39! DO j=1,VarDOFs40! k = k + 141! VarValues(VarDOFs*(VarPerm(i) - 1)+j) = k42! END DO43! END DO44DO t=1, Solver % Mesh % NumberOfBoundaryElements45! get element information46Element => GetBoundaryElement(t)47IF ( .NOT.ActiveBoundaryElement() ) CYCLE48BC => GetBC()49n = GetElementNOFNodes()50IF(ANY(VarPerm(Element % NodeIndexes) == 0)) CYCLE51VarValues(VarPerm(Element % NodeIndexes)) = ListGetReal(BC,TRIM(Solver % Variable % Name),n,Element % NodeIndexes,GotIt)52END DO5354END SUBROUTINE DummySolver555657