clilis
C CLILIS SOURCE GF238795 18/01/22 21:15:00 9702 C======================================================================= C Sous-programme clilis (COLlaborateur LIEr Liste) C Lie les objets recus a leur pointeur Esope C======================================================================= integer iPile,iPoPi integer iPoint integer iargu,narg character*(8) typNom -INC PPARAM -INC CCOPTIO -INC TMCOLAC segment LISARG character*8 nom(nArg) integer adress(nArg) endsegment pointeur argume.LISARG pointeur jcolac.ICOLAC pointeur pile.ITLACC C write(ioimp,*) 'Entree dans CLILIS' do 3 iArgu =1,nArg C recuperer son type C recuper le numero de pile associe pile=jcolac.kcola(iPile) if(iimpi.ge.7) then write(ioimp,*) 'Recollage d un objet ',typNom, iPoPi endif if(iPile.ge.24.and.iPile.le.27) goto 3 if(iPoPi.eq.0) then if(iimpi.ge.7) then write(ioimp,*) 'Position dans la pile incorrecte' write(ioimp,*) 'Passage a l objet suivant' endif goto 3 endif c iPoint=pile.itlac(iPoPi) c on deplace la recuperation de la valeur du pointeur dans le c switch pour eviter de planter en accedant a des piles non gerees * if(iPoint.eq.0) then * if(iimpi.ge.7) then * write(ioimp,*) 'Pointeur de segment incorrect' * endif * goto 2 * endif C Redirection vers le traitement correspondant au type de la pile c a toutes fins utiles, les etiquettes suivantes sont ranges par ligne de 10 goto( & 0100, 0200, 0300, 0400, 0500, 0600, 0700, 0800, 0900, 1000, & 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, & 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3000, & 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900, 4000, & 4100, 4200, 4300, 4400, 4500, 4600, 4700), iPile goto 2 c ******************** meleme ******************** 0100 continue iPoint=pile.itlac(iPoPi) goto 1 c ******************** chpoint ******************** 0200 continue iPoint=pile.itlac(iPoPi) goto 1 c ******************** mrigid ******************** 0300 continue iPoint=pile.itlac(iPoPi) goto 1 c ******************** ******************** 0400 continue goto 1 c ******************** ******************** 0500 continue goto 1 c ******************** bloq ******************** 0600 continue goto 1 c ******************** elem ******************** 0700 continue goto 1 c ******************** msolut ******************** 0800 continue goto 1 c ******************** mstruc ******************** 0900 continue goto 1 c ******************** mtable ******************** 1000 continue goto 1 c ******************** ******************** 1100 continue goto 1 c ******************** msostu ******************** 1200 continue goto 1 c ******************** imatri ******************** 1300 continue goto 1 c ******************** mjonct ******************** 1400 continue goto 1 c ******************** mattac ******************** 1500 continue goto 1 c ******************** mmatri ******************** 1600 continue goto 1 c ******************** mdefor ******************** 1700 continue goto 1 c ******************** mlreel ******************** 1800 continue goto 1 c ******************** mlenti ******************** 1900 continue goto 1 c ******************** mcharg ******************** 2000 continue goto 1 c ******************** ******************** 2100 continue goto 1 c ******************** mevoll ******************** 2200 continue goto 1 c ******************** superele ******************** 2300 continue goto 1 c ******************** logique ******************** 2400 continue goto 1 c ******************** flottant ******************** 2500 continue goto 1 c ******************** entier ******************** 2600 continue goto 1 c ******************** mot ******************** 2700 continue goto 1 c ******************** texte ******************** 2800 continue goto 1 c ******************** listmots ******************** 2900 continue goto 1 c ******************** vecteur ******************** 3000 continue goto 1 c ******************** vectd ******************** 3100 continue goto 1 c ******************** point ******************** 3200 continue goto 1 c ******************** config ******************** 3300 continue iPoint=pile.itlac(iPoPi) goto 1 c ******************** mlchpo ******************** 3400 continue goto 1 c ******************** mbasem ******************** 3500 continue goto 1 c ******************** procedur ******************** 3600 continue goto 1 c ******************** bloc ******************** 3700 continue goto 1 c ******************** mmodel ******************** 3800 continue iPoint=pile.itlac(iPoPi) goto 1 c ******************** mchaml ******************** 3900 continue iPoint=pile.itlac(iPoPi) goto 1 c ******************** minte ******************** 4000 continue C write(ioimp,*) 'Recollage des mintes: Rien a faire' goto 1 c ******************** nuage ******************** 4100 continue goto 1 c ******************** matrak ******************** 4200 continue goto 1 c ******************** matrik ******************** 4300 continue goto 1 c ******************** objet ******************** 4400 continue goto 1 c ******************** methode ******************** 4500 continue goto 1 c ******************** esclave ******************** 4600 continue goto 1 c ******************** fantome ******************** 4700 continue goto 1 c ************************************************** C Gestion des erreurs 2 continue write(ioimp,*) 'Probleme dans la pile',typNom, iPile moterr(1:8)=typNom goto 1 C Fin du case 1 continue if(iimpi.ge.7) then write(ioimp,*) 'Objet recolle.' endif C Fin de la boucle sur les piles 3 continue C write(ioimp,*) 'Sortie de CLILIS' end
© Cast3M 2003 - Tous droits réservés.
Mentions légales