Download prraye.eso

Back to the list

   1 : C PRRAYE    SOURCE    CHAT      12/06/07    21:15:52     7389           
   2 :       subroutine prraye
   3 :       implicit real*8(a-h,o-z)
   4 :       implicit integer(i-n)
   5 : -INC CCOPTIO
   6 : -INC SMMODEL
   7 : -INC SMCHAML
   8 :       segment itrav(nmod)
   8 :       call lirobj('MMODEL',mmodel,1,iretou)
   9 :       if(ierr.ne.0) return
   9 :       call lirobj('MCHAML',mchel1,1,iretou)
  10 :       if(ierr.ne.0) return
  10 :       call lirobj('MCHAML',mchel2,1,iretou)
  11 :       if(ierr.ne.0) return
  12 :       mchel3=0
  12 :       call lirobj('MCHAML',mchel3,0,iretou)
  13 :       if( mchel3.ne.0) then
  14 :          kmatr=0
  14 :          call lirree(xval,0,iret)
  15 :          if( iret.eq.1) then
  16 :            errj= xval
  17 :          else
  18 :            errj=1.d-10
  19 :          endif
  20 :        endif  
  21 :       segact mmodel
  22 :       nmod=kmodel(/1)
  23 :       segini itrav
  24 :       iresu=0
  25 :       do io=1,nmod
  26 :         if(itrav(io).eq.0) then
  27 :           n1=nmod
  28 :          imodel=kmodel(io)
  29 :          segact imodel
  30 :          itrav(io)=1
  31 :          segini mmode2
  32 :          ia=1
  33 :          mmode2.kmodel(ia)=imodel
  34 :          do 1 iy=io+1,kmodel(/1)
  35 :             if(itrav(iy).ne.0) go to 1  
  36 :             imode2=kmodel(iy)
  37 :             segact imode2     
  38 :             if(conmod.eq.imode2.conmod) then
  39 :               itrav(iy)=1
  40 :               ia=ia+1
  41 :               mmode2.kmodel(ia)=imode2
  42 :             endif
  43 :     1    continue
  44 :          n1=ia
  45 :          if( n1.ne.mmode2.kmodel(/1)) segadj mmode2
  45 :          call reduaf ( mchel1,mmode2,mche1r,1,iretr,kerre)
  46 :          if( iretr.ne.1) then
  46 :            call erreur (kerre)
  47 :            return
  48 :          endif
  48 :          call reduaf ( mchel2,mmode2,mche2r,1,iretr,kerre)
  49 :          if( iretr.ne.1) then
  49 :            call erreur (kerre)
  50 :            return
  51 :          endif
  52 :          mche3r=mchel3
  53 :          if( mchel3.ne.0) then
  53 :            call reduaf ( mchel3,mmode2,mche3r,1,iretr,kerre)
  54 :          endif
  54 :          call rayen(mmode2,mche1r,mche2r,mche3r,errj,ifact)
  55 :          if(iresu.eq.0) then
  56 :             iresu=ifact
  57 :          else
  57 :             call fuschl(iresu,ifact,ires)
  58 :             iresu=ires
  59 :          endif
  60 :           segsup mmode2
  61 :         endif
  62 :       enddo  
  63 :       segsup itrav 
  64 :       
  64 :       if( iresu.ne.0)call ecrobj('MCHAML',iresu) 
  65 :       return
  66 :       end      
  67 :      
  68 :  

© Cast3M 2003 - All rights reserved.
Disclaimer