Download hessmac.eso

Back to the list

   1 : C HESSMAC   SOURCE    CHAT      05/01/13    00:24:05     5004           
   2 : CCC
   3 : C **********************************************************************
   4 : CCC
   5 :       SUBROUTINE HESSMAC (X,NDIMX,AMAT,NDIMA,NNUMER,DELTAX,NMODEL)
   6 :       IMPLICIT INTEGER(I-N)
   7 :       integer ndimx,ndima,nnumer,nmodel,i,j,kdummy
   8 :       real*8 x(ndimx),Amat(ndima,ndima)
   9 :       real*8 deltax,aux1,aux2,typx(8)
  10 :       do i=1,ndimx-2
  11 :         typx(i)=1.D-2
  12 :         enddo
  13 :         typx(ndimx-1)=1.D-4
  14 :         typx(ndimx)  =1.D-4
  15 :         if ((nnumer.le.0).or.(nnumer.ge.4)) stop 'HessMAC no definido'
  16 :       kdummy=nnumer
  17 :       if (nnumer.eq.2) then
  18 :          aux1=x(ndimx-1)-deltax*(max(abs(x(ndimx-1)),typx(ndimx-1)))
  19 :          aux2=x(ndimx)-deltax*(max(abs(x(ndimx)),typx(ndimx)))
  20 :          if ((aux1.le.0.D0).or.(aux2.le.0.D0)) kdummy=1
  21 :       endif
  22 :       goto (10,20,30) kdummy
  23 :       goto 50
  23 : 10    call HessMAC1o1(x,ndimx,Amat,ndima,nmodel,deltax,typx)
  24 :       goto 50
  24 : 20    call HessMAC1o2(x,ndimx,Amat,ndima,nmodel,deltax,typx)
  25 :       goto 50
  25 : 30    call HessMAC1o2C(x,ndimx,Amat,ndima,nmodel,deltax,typx)
  26 : 50    do i=1,ndimx-2
  27 :        do j=i+1,ndimx-2
  28 :           Amat(i,j)=(Amat(i,j)+Amat(j,i))/2.D0
  29 :           Amat(j,i)=Amat(i,j)
  30 :        enddo
  31 :       enddo
  32 :       return
  33 :       end
  34 :  
  35 :  

© Cast3M 2003 - All rights reserved.
Disclaimer