SUBROUTINE map (iel, ielo, ielr, ielor, id, ido, mapnod, idiv, idivo, mxelmnt, symmetry) USE FileUnits_Module ! ! $RCSfile: map.f,v $ $Revision: 1.14 $ ! $Date: 89/10/18 14:18:06 $ ! $State: Stable $ ! ! P U R P O S E O F S U B R O U T I N E ! this routine actually maps the old mesh onto the new mesh; that is IF ! the new node number is put into mapnod, THEN you get out the ! corresponding old node number. the mapping is done by cycling ! through the elements. note that there are three main cases: ! 1) old and new elements are the same size, 2) old element is smaller ! than the new element, and 3) old element is bigger than the new elemen ! we have allowed the smaller element to subdivided up to three more ! times than the larger element. ! I N P U T A R G U M E N T S ! ! iel ! ielo ! eilr ! ielor ! id(numnp) id=-nce if the is constrained and positive otherwise ! ido ! mapnod ! idiv ! idivo ! mxelmnt ! symmetry IMPLICIT NONE ! L O G I C A L S LOGICAL symmetry ! I N T E G E R S INTEGER iel, ielo, ielr, ielor, ido, idiv, idivo, mapnod, mxelmnt, n1map, n1mapr, n2mapr, n2map, n2mapo, n2mapu, & kold, irefl, kold2, koldr2, k, nquad, kstar, kstarr, id, mel, iiel ! D I M E N S I O N S DIMENSION n1map(4), n1mapr(4), n2mapr(4), n2map(4), n2mapo(4), n2mapu(4), kold(9,4), idiv(mxelmnt), idivo(mxelmnt), & id(9,mxelmnt), irefl(4), mapnod(*), ido(9,mxelmnt), kold2(4,4), koldr2(4,4) DATA n1map /1,2,4,5/ DATA n1mapr /4,5,1,2/, n2mapr /7,9,1,3/ DATA n2map /0,1,3,4/, n2mapo /1,3,7,9/, n2mapu /3,4,0,1/ DATA kold /1,1,2,1,5,5,4,5,5,2,3,3,5,5,3,5,5,6,4,5,5,7,5,5,7,7,8,5,5,6,5,5,9,8,9,9/ DATA irefl /3,4,1,2/ DATA kold2 /1,2,4,5,2,3,5,6,4,5,7,8,5,6,8,9/ DATA koldr2 /7,8,4,5,8,9,5,6,4,5,1,2,5,6,2,3/ ! WRITE(Out_unit,*)'idiv=',idiv(iel),' for iel=',iel ! WRITE(Out_unit,*)'idivo=',idivo(ielo),' for ielo=',ielo IF(idiv(iel)==idivo(ielo))THEN ! the elements are the same size DO 10 k=1,9 mapnod(id(k,iel))=ido(k,ielo) mapnod(id(k,ielr))=ido(k,ielor) 10 CONTINUE iel=iel+1 ielo=ielo+1 ielr=ielr+1 ielor=ielor+1 ELSEIF (idiv(iel)