00001
00002 subroutine setRule(resVec,norm,normRMS)
00003
00004
00005 use global
00006
00007
00008 implicit none
00009
00010
00011 real(8) resVec(globalcurrentsetlength)
00012 integer set(globalcurrentsetlength)
00013 integer i
00014
00015 real(8) myval,norm,normRMS
00016
00017 integer myT,myI,myJ,myII
00018
00019 integer,pointer :: myDofVectorArray(:,:),IM(:,:,:,:)
00020
00021 integer dummy
00022
00023 dof=>myModel%physics(currentPhysics)%dof
00024
00025
00026
00027 if (allocated(setTol)) deallocate(setTol)
00028
00029 allocate(setTol(dof))
00030
00031
00032
00033
00034
00035
00036
00037
00038 setTol=norm*1e-2
00039
00040
00041
00042 setTol=1e-8
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 myDofVectorArray=>myModel%physics(currentPhysics)%domain(currentDomain)%dofVector
00062
00063 IM=>myModel%physics(currentPhysics)%domain(currentDomain)%dofMatrix
00064
00065 dummy=0
00066
00067 do i=1,globalcurrentsetlength
00068
00069
00070
00071
00072
00073 myII=i
00074
00075
00076 myVal=resVec(i)
00077 myT=myDofVectorArray(myII,4)
00078
00079 myI=myDofVectorArray(myII,2)
00080 myJ=myDofVectorArray(myII,3)
00081
00082
00083 if (dabs(myVal).gt.setTol(myT)) then
00084
00085 IM(myI,myJ,myT,flag)=1
00086
00087 dummy=dummy+1
00088
00089 else
00090
00091
00092
00093
00094
00095 IM(myI,myJ,myT,flag)=0
00096
00097 end if
00098
00099
00100 end do
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115 end subroutine setRule