Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
$ j = 0
$ random_iteration: do
$ j = j + 1
$
$ ! set up connectivity array and check if any cells are tangled
$ local_tangled = 0
$
$ update_volume: do itet = 1,num_incident_tet
$
$ if ( shared_flag(iv) ) then ! use global id's set above
$ ic = ic2v(itet)
$
$ !lookup vertex numbers, global cell and vertex id's
$ call get_kt_row (msh%ov2c_sup, ic, iv2c)
$
$ ! make a copy to dereference iv2c
$ index_copy(1:4) = iv2c(1:4)
$
$ call psb_glob_to_loc(index_copy,msh%desc_v,info)
$
$ else
$ ic = ic2v(itet) ! look up cell id number from ith conn
$
$ !get the vertices for this cell
$ call get_ith_conn(iv2c,msh%v2c,ic)
$
$ ! make a copy to dereference iv2c
$ index_copy(1:4) = iv2c(1:4)
$ endif
$
$ ! check to see if the cell is inverted
$ iv1 = index_copy(1)
$ iv2 = index_copy(2)
$ iv3 = index_copy(3)
$ iv4 = index_copy(4)
$
$ valid_flag = right_handed(vtx1, vtx2, vtx3, vtx4)
$
$ if ( valid_flag /= 1 ) local_tangled = 1
$ end do update_volume
$
$ if ( ( local_tangled == 0 ) .or. (j >=50 ) ) exit
$
$ if ( local_tangled == 1 ) call optimize_vertex_rand(msh,c2v,iv)
$
$ end do random_iteration
$
$ deallocate(relative_numbering)
$
$ deallocate( tet_pos,tet_verts)
$
$ if ( allocated(idloc) ) deallocate(idloc)
$
$ if ( allocated(idglob) ) deallocate(idglob)
$
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.