35       character*8 lakon(*),lakonl
    37       integer ipkon(*),kon(*),mi(*),ne,indexe,null,nonei20(3,12),
    38      &  nonei10(3,6),nk,i,j,k,node,nonei15(3,9),nopev,nterms,
    39      &  mint3d,ielmat(mi(3),*),inum(*)
    41       real*8 yi(nterms,mi(1),*),yn(nterms,*),size,wpsmin,wpsmax,
    42      &  absdiff,reldiff,sizemax,al(3),sizemin,c(3,3),
    43      &  wpsmin1,wpsmax1,wpsmin3,wpsmax3,co(3,*),vold(0:mi(2),*)
    45       data nonei10 /5,1,2,6,2,3,7,3,1,8,1,4,9,2,4,10,3,4/
    47       data nonei15 /7,1,2,8,2,3,9,3,1,10,4,5,11,5,6,12,6,4,
    48      &  13,1,4,14,2,5,15,3,6/
    50       data nonei20 /9,1,2,10,2,3,11,3,4,12,4,1,
    51      &  13,5,6,14,6,7,15,7,8,16,8,5,
    52      &  17,1,5,18,2,6,19,3,7,20,4,8/
    64          if(ipkon(i).lt.0) cycle
    68          if(lakonl(7:8).eq.
'LC') cycle
    70          if(lakonl(1:1).eq.
'F') 
then    72          elseif(lakonl(4:4).eq.
'2') 
then    74          elseif(lakonl(4:4).eq.
'8') 
then    76          elseif(lakonl(4:5).eq.
'10') 
then    78          elseif(lakonl(4:4).eq.
'4') 
then    80          elseif(lakonl(4:5).eq.
'15') 
then    82          elseif(lakonl(4:4).eq.
'6') 
then    88          if(lakonl(4:5).eq.
'8R') 
then    90          elseif((lakonl(4:4).eq.
'8').or.
    91      &           (lakonl(4:6).eq.
'20R')) 
then    93          elseif(lakonl(4:4).eq.
'2') 
then    95          elseif(lakonl(4:5).eq.
'10') 
then    97          elseif(lakonl(4:4).eq.
'4') 
then    99          elseif(lakonl(4:5).eq.
'15') 
then   101          elseif(lakonl(4:5).eq.
'6') 
then   103          elseif(lakonl(1:2).eq.
'ES') 
then   138                wpsmin1=
min(wpsmin1,al(1))
   139                wpsmax1=
max(wpsmax1,al(1))
   140                wpsmin3=
min(wpsmin3,al(3))
   141                wpsmax3=
max(wpsmax3,al(3))
   148             if(wpsmax3.ge.-wpsmin1) 
then   156             absdiff=wpsmax-wpsmin
   157             if(
max(dabs(wpsmax),dabs(wpsmin)).lt.1.d-30) 
then   160                reldiff=absdiff/(
max(dabs(wpsmax),dabs(wpsmin)))
   174                size=dsqrt(c(1,1)**2+c(2,2)**2+c(3,3)**2)
   175                sizemin=
min(sizemin,size)
   176                sizemax=
max(sizemax,size)
   179             absdiff=sizemax-sizemin
   180             if(
max(sizemax,sizemin).lt.1.d-30) 
then   183                reldiff=absdiff/(
max(dabs(sizemax),dabs(sizemin)))
   191             yn(2,kon(indexe+j))=
max(yn(2,kon(indexe+j)),reldiff)
   204             if(ipkon(i).lt.0) cycle
   208             if(lakonl(7:8).eq.
'LC') cycle
   210             if(lakonl(1:1).eq.
'F') 
then   212             elseif(lakonl(4:4).eq.
'2') 
then   214             elseif(lakonl(4:4).eq.
'8') 
then   216             elseif(lakonl(4:5).eq.
'10') 
then   218             elseif(lakonl(4:4).eq.
'4') 
then   220             elseif(lakonl(4:5).eq.
'15') 
then   222             elseif(lakonl(4:4).eq.
'6') 
then   228             if(lakonl(4:5).eq.
'10') 
then   234                   yn(1,node)=
max(yn(1,node),30.000d0*yn(2,node))
   236             elseif((lakonl(4:7).eq.
'20  ').or.
   237      &              (lakonl(4:7).eq.
'20 L').or.
   238      &              (lakonl(4:7).eq.
'20 B')) 
then   244                   if(yn(2,node).le.0.26d0) 
then   245                      yn(1,node)=
max(yn(1,node),5.115d0*yn(2,node))
   247                      yn(1,node)=
max(yn(1,node),
   248      &                              27.792d0*yn(2,node)-5.895d0)
   251             elseif(lakonl(4:6).eq.
'20 ') 
then   258                   if(yn(2,node).le.0.325d0) 
then   259                      yn(1,node)=
max(yn(1,node),9.538d0*yn(2,node))
   262      &                    
max(yn(1,node),53.695d0*yn(2,node)-14.351d0)
   265             elseif((lakonl(4:7).eq.
'20R ').or.
   266      &              (lakonl(4:7).eq.
'20RL').or.
   267      &              (lakonl(4:7).eq.
'20RB')) 
then   274                   if(yn(2,node).le.0.18d0) 
then   275                      yn(1,node)=
max(yn(1,node),20.278d0*yn(2,node))
   277                      yn(1,node)=
max(yn(1,node),
   278      &                              74.318d0*yn(2,node)-9.727d0)
   281             elseif(lakonl(4:6).eq.
'20R') 
then   288                   yn(1,node)=
max(yn(1,node),54.054d0*yn(2,node))
   290             elseif(lakonl(4:5).eq.
'8I') 
then   296                   if(yn(2,node).le.0.165d0) 
then   297                      yn(1,node)=
max(yn(1,node),30.303d0*yn(2,node))
   300      &                    
max(yn(1,node),139.535d0*yn(2,node)-18.023d0)
   303             elseif(lakonl(4:7).eq.
'8   ') 
then   309                   if(yn(2,node).le.0.157d0) 
then   310                      yn(1,node)=
max(yn(1,node),31.847d0*yn(2,node))
   312                      yn(1,node)=
max(yn(1,node),
   313      &                              85.324d0*yn(2,node)-8.396d0)
   316             elseif(lakonl(4:5).eq.
'8 ') 
then   323                   yn(1,node)=
max(yn(1,node),74.074d0*yn(2,node))
   325             elseif(lakonl(4:5).eq.
'15') 
then   331                   yn(1,node)=
max(yn(1,node),46.189d0*yn(2,node))
   341          if(ipkon(i).lt.0) cycle
   345          if(lakonl(7:8).eq.
'LC') cycle
   347          if(lakonl(4:5).eq.
'20') 
then   350                   yn(k,kon(indexe+j))=(
   351      &                 yn(k,kon(indexe+nonei20(2,j-8)))+
   352      &                 yn(k,kon(indexe+nonei20(3,j-8))))/2.d0
   355          elseif(lakonl(4:5).eq.
'10') 
then   358                   yn(k,kon(indexe+j))=(yn(k,kon(indexe+nonei10(2,j-4)))+
   359      &                 yn(k,kon(indexe+nonei10(3,j-4))))/2.d0
   362          elseif(lakonl(4:5).eq.
'15') 
then   365                   yn(k,kon(indexe+j))=(
   366      &                 yn(k,kon(indexe+nonei15(2,j-6)))+
   367      &                 yn(k,kon(indexe+nonei15(3,j-6))))/2.d0
   375       if(cflag.eq.
'I') 
then   377          call map3dto1d2d(yn,ipkon,inum,kon,lakon,nterms,nk,
   378      &  ne,cflag,co,vold,force,mi)
 #define max(a, b)
Definition: cascade.c:32
#define min(a, b)
Definition: cascade.c:31
subroutine calceigenvalues(c, al)
Definition: calceigenvalues.f:20
subroutine map3dto1d2d(yn, ipkon, inum, kon, lakon, nfield, nk, ne, cflag, co, vold, force, mi)
Definition: map3dto1d2d.f:21