[updated 20.Jun.2000]
Librairie assembl > Fichier asmord.f |
SUBROUTINE ASMORD (ASEMBL,ISDTRM)
Auteur : D.Martin (Janvier 1990)
Derniere modification : D.Martin (20 Juin 1997)
Version 1.0.0
Determination de l'ordre de parcours des termes de la structure d'assemblage
On regroupe en tete de la structure les termes ayant le meme niveau de
de tableau de compactage que le premier,...
-- Arguments d'entree --
ASEMBL structure $ASMBL du terme a assembler a partir de l'adresse 1
ISDTRM structure $SDTRM de niveau 1 a l'adresse 1
INTEGER ASEMBL(*),ISDTRM(*)
INTEGER LGETRM,NBTERM,INCTRM,NCHTRM,LGEASM,NBTRAC,INCASM,NBTRAL
& ,ADASMB,ADAUX,NDFSTO,NUTERM,NXNTRM,NUTRAS
& ,NVTRMB,ITYPTR,ITYCAL,NUKALE,NUDONN,ITYSYB,IPTDIR
& ,NUINCC,NVDUBC,NBNEBC,NVNUBC,NUINCL,NVDUBL,NBNEBL
& ,NVNUBL,INDSTK,NVSTAV,NVCORC,IATRDO,NIVIMA,NVSTOK
CALL SDEXDB (ISDTRM,LGETRM,NBTERM,INCTRM,NCHTRM) !utilite
CALL SDEXDB (ASEMBL,LGEASM,NBTRAC,INCASM,NBTRAL) !utilite
NDFSTO=-99999
ADASMB=LGEASM+1
NUTERM=ASEMBL(ADASMB)
CALL GETTRM (ISDTRM(LGETRM+INCTRM*(NUTERM-1)+1)
& ,NVTRMB,ITYPTR,ITYCAL,NUKALE,NUDONN,ITYSYB,IPTDIR
& ,NUINCC,NVDUBC,NBNEBC,NVNUBC,NUINCL,NVDUBL,NBNEBL
& ,NVNUBL,INDSTK,NVSTAV,NVCORC,IATRDO,NIVIMA) !sdexplo
NXNTRM=1
1 NXNTRM=NXNTRM+1
DO 10 NUTRAS=NXNTRM,NBTRAC
ADASMB=LGEASM+1+INCASM*(NUTRAS-1)
NUTERM=ASEMBL(ADASMB)
CALL GETTRM (ISDTRM(LGETRM+INCTRM*(NUTERM-1)+1)
& ,NVTRMB,ITYPTR,ITYCAL,NUKALE,NUDONN,ITYSYB,IPTDIR
& ,NUINCC,NVDUBC,NBNEBC,NVNUBC,NUINCL,NVDUBL,NBNEBL
& ,NVNUBL,INDSTK,NVSTOK,NVCORC,IATRDO,NIVIMA) !sdexplo
IF (NVSTOK.EQ.NVSTAV.AND.NVSTOK.NE.NDFSTO.AND.NUTRAS.GT.NXNTRM)
& THEN
ADAUX =LGEASM+1+INCASM*(NXNTRM-1)
ASEMBL(ADASMB)=ASEMBL(ADAUX)
ASEMBL(ADAUX) =NUTERM
NXNTRM =NXNTRM+1
ENDIF
10 CONTINUE
IF (NXNTRM.GE.NBTRAC-1) RETURN
ADASMB=LGEASM+1+INCASM*(NXNTRM-1)
NUTERM=ASEMBL(ADASMB)
CALL GETTRM (ISDTRM(LGETRM+INCTRM*(NUTERM-1)+1)
& ,NVTRMB,ITYPTR,ITYCAL,NUKALE,NUDONN,ITYSYB,IPTDIR
& ,NUINCC,NVDUBC,NBNEBC,NVNUBC,NUINCL,NVDUBL,NBNEBL
& ,NVNUBL,INDSTK,NVSTAV,NVCORC,IATRDO,NIVIMA) !sdexplo
GOTO 1
END !Asmord
asmord est appelé dans (2 procédures)