*get,prkey_,active,0,prkey
/nopr
opt_=arg1
nelm_=arg4
*go,:skip3
*if,mshdens,eq,1,then
nelm_1=1
nelm_2=1
mshfctr=2.75
*elseif,mshdens,eq,0,then
nelm_1=2
nelm_2=3
mshfctr=2.5
*else
nelm_1=mshdens
nelm_2=mshdens
mshfctr=3.0
*endif
*do,jj_,1,ecount,1
*get,lleng,line,lset1_(jj_,1),leng
*if,lleng,le,2.0*elmnl,then
nelm=nelm_1
*elseif,lleng,le,mshfctr*elmnl,then
nelm=nelm_2
*else
nelm=nint(lleng/elmnl)
*endif
*enddo
:skip3
cm,msha_,area
lsla,s
cm,lset1_,line
*if,opt_,eq,1,then
ckp_=arg2
sprat_=arg3
ksel,s,kp,,ckp_
lslk,r
get_max_entity
l1_=lm
get_min_entity
l2_=l_min
*get,k11_,line,l1_,kp,1
*get,k12_,line,l1_,kp,2
*get,k21_,line,l2_,kp,1
*get,k22_,line,l2_,kp,2
*if,k11_,eq,k21_,then
mkp_=k11_
lesize,l1_,,,nelm_,sprat_,
lesize,l2_,,,nelm_,sprat_,
*elseif,k11_,eq,k22_,then
mkp_=k11_
lesize,l1_,,,nelm_,sprat_,
lesize,l2_,,,nelm_,1/sprat_,
*elseif,k12_,eq,k21_,then
mkp_=k12_
lesize,l1_,,,nelm_,1/sprat_,
lesize,l2_,,,nelm_,sprat_,
*elseif,k12_,eq,k22_,then
mkp_=k12_
lesize,l1_,,,nelm_,1/sprat_,
lesize,l2_,,,nelm_,1/sprat_,
*endif
*go,:skip2
lsel,s,line,,lset1_
lsel,u,line,,l1_
lsel,u,line,,l2_
entity_array,'l',lset1_,'array
*do,jj_,1,ecount,1
*get,lleng,line,lset1_(jj_,1),leng
*if,lleng,le,2.0*elmnl,then
nelm=nelm_1
*elseif,lleng,le,mshfctr*elmnl,then
nelm=nelm_2
*else
nelm=nint(lleng/elmnl)
*endif
lesize,lset1_(jj_,1),,,nelm,1,
*enddo
*set,lset1_(1),
:skip2
*endif
*go,:skip
min_e_dim_array,'l',msha_ln_,'array'
:skip
*if,prkey_,eq,1,then
/go
*endif