Path: blob/devel/elmerice/Tests/FrictionHeat/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 % Values33ELSE34CALL FATAL('DummySolver','No Variable associated')35END IF36k=037! DO i = 1,Model % NumberOfNodes38! DO j=1,VarDOFs39! k = k + 140! VarValues(VarDOFs*(VarPerm(i) - 1)+j) = k41! END DO42! END DO43! VarValues = 0.0_dp44DO t=1, Solver % Mesh % NumberOfBoundaryElements45! get element information46Element => GetBoundaryElement(t)47IF ( .NOT.ActiveBoundaryElement() ) CYCLE48BC => GetBC()49n = GetElementNOFNodes()50VarValues(VarPerm(Element % NodeIndexes)) = ListGetReal(BC,TRIM(Solver % Variable % Name),n,Element % NodeIndexes,GotIt)51END DO5253END SUBROUTINE DummySolver545556