00001 subroutine generateIndexVector
00002
00003 use global
00004
00005 implicit none
00006
00007 integer sumDof
00008
00009 integer i,j,t
00010
00011 integer,pointer :: IM(:,:,:,:)
00012 integer,pointer :: myDofVectorArray(:,:)
00013 integer,pointer :: minI,minJ,maxI,maxJ
00014
00015 IM=>mymodel%physics(currentPhysics)%domain(currentDomain)%dofMatrix
00016
00017
00018
00019
00020 minI=>myModel%physics(currentPhysics)%domain(currentDomain)%minI
00021 maxI=>myModel%physics(currentPhysics)%domain(currentDomain)%maxI
00022 minJ=>myModel%physics(currentPhysics)%domain(currentDomain)%minJ
00023 maxJ=>myModel%physics(currentPhysics)%domain(currentDomain)%maxJ
00024
00025
00026 allocate(mymodel%physics(currentPhysics)%domain(currentDomain)%dofVector(size(IM)/4,4))
00027
00028 myDofVectorArray=>mymodel%physics(currentPhysics)%domain(currentDomain)%dofVector
00029
00030
00031
00032 myDofVectorArray=0
00033
00034 sumDof=1
00035
00036
00037 dof=>myModel%physics(currentPhysics)%dof
00038
00039
00040
00041
00042
00043 do j=minJ,maxJ
00044
00045 do i=minI,maxI
00046
00047
00048
00049
00050 do t=1,dof
00051
00052 if (IM(i,j,t,relative).ne.0) then
00053
00054 myDofVectorArray(sumDof,1)=IM(i,j,t,absolute)
00055 myDofVectorArray(sumDof,2)=i
00056 myDofVectorArray(sumDof,3)=j
00057 myDofVectorArray(sumDof,4)=t
00058
00059 sumDof=sumDof+1
00060
00061 end if
00062
00063 end do
00064
00065 end do
00066
00067 end do
00068
00069
00070 end subroutine generateIndexVector