moca
C MOCA SOURCE CHAT 05/01/13 01:46:52 5004 subroutine moca IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMLREEL pointeur mlree4.mlreel, mlree5.mlreel character*4 mot(1) segment itra integer ipoi(m),npara,ibon(m) endsegment segment itrav real*8 a(n,n),b(n),c(n),bb(n,n) integer is(n) endsegment data MOT /'POID'/ * lecture de la valeur de depart des paramatres mlreel=mlpar segact mlreel * lecture de la valeur theorique if(ierr.ne.0) return segact mlreel * lecture de la valeur de depart if(ierr.ne.0) return segact mlree1 return endif m=100 segini itra * write(6,*) ' nb de parametres ',nparr do 1 i=1,nparr * lecture des sensibilité par rapport au n parametres if(ierr.ne.0) then write(6,*) ' erreur 1' return endif segact mlree2 enddo go to 1 10 continue ibon(i)=1 return endif npara=npara+1 ipoi(npara)=mlree2 1 continue if( npara.eq.0) then write(6,*) ' erreur 3 npara ',npara return endif * lecture de l'option POIDS if( itrou.eq.0) then jg=npmes isup=1 segini mlree5 do io=1,npmes enddo else * lecture du poids if(ierr.ne.0)return segact mlree5 isup=0 endif n = npara segini itrav do 3 i=1,npmes do 4 j=1,npara mlree3=ipoi(j) do 5 k=1,npara mlree4=ipoi(k) a(j,k)=a(j,k)+x1*xk 5 continue 4 continue 3 continue * ** appel a l'inversion * * write(6,*) ' avant inversion' * write(6,*) ( a(1,it),it=1,npara) * write(6,*) ( a(2,it),it=1,npara) * write(6,*) ( a(3,it),it=1,npara) diamax=0. do io=1,npara if( abs(a(io,io)).gt.diamax) diamax=abs(a(io,io)) enddo eps = diamax / 1.e10 if(icrit.ne.0) then return endif * write(6,*) ' apres inversion' * write(6,*) ( a(1,it),it=1,npara) * write(6,*) ( a(2,it),it=1,npara) * write(6,*) ( a(3,it),it=1,npara) * write(6,*) ' b ' * write(6,*) ( b(it),it=1,npara) if(isup.eq.1) then segsup mlree5 else segdes mlree5 endif jg=npara segini mlree5 do 50 io=1,npara do 6 iu=1,npara 6 continue 50 continue * write(6,*) 'valeur trouvées dans moca' * write(6,*) (mlree5.prog(io),io=1,npara) segdes mlreel,mlree1 do io=1,npara mlree3=ipoi(io) segdes mlree3 enddo jg=nparr segini mlreel ia=1 mlree2=mlpar do ib=1,nparr if(ibon(ib).eq.1)then ia=ia+1 else endif enddo segdes mlreel,mlree2 segsup mlree5 segsup itrav,itra return end
© Cast3M 2003 - Tous droits réservés.
Mentions légales