!   TITLE:  min_enty_dim.mac (MANAGEMENT)
!
!
!
!   This sub-macro is used to retrieve the minimum value, within a selected
!   set, of the dimension of a specified entity:
!
!           ENTITY      DIMENSION
!          --------    -----------
!
!           line         length
!           area         area
!           volume       volume
!
!   Input data necessary to run this macro:
!
!       A selected set of specified entities
!
!       entity = 'l' for line entities
!                'a' for area entities
!                'v' for volume entities
!
!
! MIN_ENTY_DIM, entity
!
!
*get,prkey_,active,0,prkey
/nopr

entity=arg1
!
*if,entity,eq,'l',then      ! assignment of entity variable, 'ev'
    ev='line'
*elseif,entity,eq,'a',then
    ev='area'
    asum
*elseif,entity,eq,'v',then
    ev='volu'
    vsum
*endif
!
*if,entity,ne,'l',then      ! If entity is not an 'l','a' or 'v',
   *if,entity,ne,'a',then       ! then assign ev to a dummy variable 'z'.
      *if,entity,ne,'v',then
         ev='z'
      *endif
   *endif
*endif
!
*if,ev,ne,'z',then        ! If ev is assigned 'z', then abort
    !
    *get,emax,ev,,num,max     ! retrieve MIN and MAX keypoint numbers
    *get,emin,ev,,num,min
    !
    *get,ecount,ev,,count     ! number of specified entities in the
    !             ! selected entity set
    *do,xyz_,1,ecount,1
        *if,xyz_,eq,1,then
            e%xyz_%=emin
        *else
            jkl_=%xyz_%-1
            *get,x,ev,e%jkl_%,nxth
            e%xyz_%=x
        *endif
    *enddo
*endif
!
*do,ikl_,1,ecount,1
    !
    *if,entity,eq,'l',then
        *get,ec%ikl_%,line,e%ikl_%,leng
    *elseif,entity,eq,'a',then
        *get,ec%ikl_%,area,e%ikl_%,area
    *elseif,entity,eq,'v',then
        *get,ec%ikl_%,volu,e%ikl_%,volu
    *endif
*enddo
!
*do,iii_,1,ecount,1
    !
    *if,i,eq,1,then
        x=ec1
        y=e1
    *else
        *if,x,lt,ec%iii_%,then
            x=x
            y=y
        *else
            x=ec%iii_%
            y=e%iii_%
        *endif
    *endif
*enddo
!
*if,entity,eq,'l',then
    min_leng=x
    min_lnum=y
*elseif,entity,eq,'a',then
    min_area=x
    min_anum=y
*elseif,entity,eq,'v',then
    min_vol=x
    min_vnum=y
*endif
!
*do,ijk_,1,ecount,1
    *set,e%ijk_%,
    *set,ec%ijk_%
    *set,x,
    *set,y,
    *set,ev,
    *set,entity,
    *set,ecount,
    *set,emax,
    *set,emin,
*enddo
!
*set,xyz_,
*set,jkl_,
*set,ijk_,
*set,iii_,
*set,ikl_,

*if,prkey_,eq,1,then
    /go
*endif