Download pfi.eso

Back to the list

   1 : C PFI       SOURCE    MAUGIS    06/04/27    21:15:55     5419           
   2 :       SUBROUTINE PFI(L,ITF,LY,LQ,PHI,LPOI)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : -INC CCOPTIO
   6 : -INC SMLREEL
   7 : -INC SMTABLE
   8 : * TABLEAUX DE TRAVAIL
   9 :       SEGMENT TRAV
  10 :           REAL*8 T(J)
  11 :           REAL*8 S(I)
  12 :           INTEGER MF(J)
  13 :       ENDSEGMENT
  14 : * TABLEAUX DES FONCTIONS  Fi ET G AUX POINTS Xj
  15 :       SEGMENT FG
  16 :           REAL*8 F(K,M)
  17 :           REAL*8 G(M)
  18 :       ENDSEGMENT
  19 :       CHARACTER*8 BLANK
  20 :       DATA BLANK/'        '/
  21 :       REAL*8 XVALRE
  22 :       LOGICAL LOGRE
  23 :       CHARACTER*8 MTYPR
  24 : C----------------------------------------------------
  25 : *     LISTE DES VALEURS DE Y
  26 :       MLREEL=LY
  27 :       SEGACT MLREEL
  28 :       N=PROG(/1)
  29 : *     LISTE DES VALEURS DES PARAMETRES LINEAIRES:LQ
  30 :       JG=L
  31 :       SEGINI MLREE2
  32 :       LQ=MLREE2
  33 : *     LISTE DES POIDS
  34 :       MLREE3=LPOI
  35 :       SEGACT MLREE3
  36 : *     TABLE DES VALEURS DES FONCTIONS Fi ET G AUX POINTS Xj
  37 :       MTABLE=ITF
  38 :       SEGACT MTABLE
  39 :       I=L*(L+1)/2
  40 :       J=L
  41 :       SEGINI TRAV
  42 :       K=L
  43 :       M=N
  44 :       SEGINI FG
  45 : 
  46 : *     Valeur des fonctions linéaires F_i
  46 :       CALL ACCTAB(MTABLE,'MOT     ',0,0.D0,'F',.TRUE.,0,
  47 :      &                   'TABLE   ',IVALRE,XVALRE,BLANK,LOGRE,MTB)
  48 :       DO I=1,L
  48 :          CALL ACCTAB(MTB,'ENTIER  ',I,0.D0,BLANK,.TRUE.,0,
  49 :      &                   'LISTREEL',IVALRE,XVALRE,BLANK,LOGRE,MFI)
  50 :          MF(I)=MFI
  51 :       ENDDO
  52 :       DO I=1,L
  53 :          MLREE1=MF(I)
  54 :          SEGACT MLREE1
  55 :          DO J=1,N
  56 :               F(I,J)=MLREE1.PROG(J)
  57 :          ENDDO
  58 :          SEGDES MLREE1
  59 :       ENDDO
  60 : 
  61 : *     Valeur de la fonction G
  62 :       MTYPR='        '
  62 :       CALL ACCTAB(MTABLE,'MOT     ',0,0.D0,'G',.TRUE.,0,
  63 :      &                   MTYPR,IVALRE,XVALRE,BLANK,LOGRE,MG)
  64 : *     &                    'LISTREEL',IVALRE,XVALRE,BLANK,LOGRE,MG)
  65 :       IF (MG.NE.0) THEN
  66 :          IF (MTYPR.NE.'LISTREEL') THEN
  67 :             MOTERR(1:8)='G       '
  68 :             MOTERR(9:16)='LISTREEL'
  68 :             CALL ERREUR(800)
  69 :             RETURN
  70 :          ENDIF
  71 :          MLREE1=MG
  72 :          SEGACT MLREE1
  73 :          DO J=1,N
  74 :               G(J)=MLREE1.PROG(J)
  75 :          ENDDO
  76 :          SEGDES MLREE1
  77 :       ELSE
  78 :          DO J=1,N
  79 :               G(J)=0
  80 :          ENDDO
  81 :       ENDIF
  82 : 
  83 : *     Calcul de l'erreur d'estimation
  84 :       PHI=0.D0
  85 :       IF (L.GE.1) GOTO 60
  86 :       DO IN=1,N
  87 :          PHI=PHI+(MLREE3.PROG(IN)*(PROG(IN)-G(IN)))**2
  88 :       ENDDO
  89 :       GOTO 9999
  90 :  60   DO IN=1,N
  91 :            PDS= MLREE3.PROG(IN)*MLREE3.PROG(IN)
  92 :            Z=(PROG(IN)-G(IN))*PDS
  93 :            M=0
  94 :            DO I=1,L
  95 :                 T(I)=T(I)+Z*(F(I,IN))
  96 :                 XX=PDS*F(I,IN)
  97 :                 DO J=I,L
  98 :                      M=M+1
  99 :                      S(M)=S(M)+XX*F(J,IN)
 100 :                 ENDDO
 101 :            ENDDO
 102 :       ENDDO
 102 :       CALL SYSLIN(TRAV)
 103 :       DO IN=1,N
 103 :            CALL SSCAL(F,T ,IN,SC,L)
 104 :            PHI=PHI+(MLREE3.PROG(IN)*(G(IN)+SC-PROG(IN)))**2
 105 :       ENDDO
 106 :       DO I=1,L
 107 :            MLREE2.PROG(I)=T(I)
 108 :       ENDDO
 109 : 
 110 :       SEGDES,MLREEL,MTABLE,FG,MLREE2,MLREE3
 111 :       SEGSUP TRAV
 112 :  9999 END
 113 : 
 114 : 
 115 : 
 116 :  

© Cast3M 2003 - All rights reserved.
Disclaimer