topv5
C TOPV5 SOURCE GOUNAND 26/01/09 21:16:03 12442 $ ,ISTRID) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : TOPV5 C DESCRIPTION : C * * Les candidats ayant le bon volume sont dans ITVOL * On calcule les qualités de chaque élément des candidats et on ordonne. * C C C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C VERSION : v1, 09/11/2017, version initiale C HISTORIQUE : v1, 09/11/2017, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC CCREEL -INC TMATOP1 POINTEUR LMCANS.MELEMX POINTEUR KCMETR.METRIQ POINTEUR TRAVK.TRAVJ -INC SMLENTI POINTEUR LIDXCA.MLENTI POINTEUR LOKVOL.MLENTI POINTEUR LNQUAL.MLENTI -INC SMLREEL POINTEUR LQUALS.MLREEL * * Executable statements * * WRITE(IOIMP,*) 'coucou topv5' * LMCANS=TRAVL.MCANS LIDXCA=TRAVL.IDXCA LOKVOL=TRAVL.OKVOL LQUALS=TRAVL.QUALS LNQUAL=TRAVL.NQUAL * * Les candidats ayant le bon volume sont dans LOKVOL * On calcule les qualités de chaque élément des candidats et on ordonne. * DO JVOCOU=1,NVOCOU * IVOCOU=JVOCOU ICAND=LOKVOL.LECT(IVOCOU) IELDEB=LIDXCA.LECT(ICAND) IELFIN=LIDXCA.LECT(ICAND+1)-1 * NDQC : nombre de qualités calculés * peut être différente de IELFIN-IELDEB+1 * car on ne calcule pas la qualité des éléments contenant le noeud * virtuel $ ,NKPVIR,XVTOL,LQUALS,NDQC,ISTRID) IF (IERR.NE.0) RETURN LNQUAL.LECT(ICAND)=NDQC * Write(ioimp,*) 'Calcul qualite candidat 2 i,ndqc=',jvocou,ndqc * do iii=ieldeb,ielfin * jjj=(iii-1)*istrid * Write(ioimp,*) (lquals.prog(jjj+k),k=1,istrid) * enddo * Write(ioimp,*) (lquals.prog(iii),iii=ieldeb,ielfin) * Algo de tri pas terrible ? (cf. ordon1.eso merge sort) mais en place *faux CALL ORDO01(LQUALS.PROG(IELDEB),IELFIN-IELDEB+1,.TRUE.) * CALL ORDO01(LQUALS.PROG(IELDEB),LNQUAL.LECT(ICAND),.TRUE.) * CALL ORDS01(LQUALS.PROG(IELDEB),LNQUAL.LECT(ICAND),ISTRID) JELDEB=((IELDEB-1)*istrid)+1 IF (IERR.NE.0) RETURN * Write(ioimp,*) 'Apres tri qualite candidat 2 i=',jvocou * do iii=ieldeb,ielfin * jjj=(iii-1)*istrid * Write(ioimp,*) (lquals.prog(jjj+k),k=1,istrid) * enddo ENDDO RETURN * * * 9999 CONTINUE MOTERR(1:8)='TOPV5 ' * 349 2 *Problème non prévu dans le s.p. %m1:8 contactez votre assistance RETURN * * End of subroutine TOPV5 * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales