ELSE IF (IPLAC.EQ.9 ) THEN * KOCK MATEPL=70 INMAT=INMAT+1
Puis prévoir l'appel à un des idvarX.eso (ici idvar4.eso) par la séquence suivante ou seule la partie .OR.MATEPL.EQ.70 (en majuscule) a été ajoutée :
* else if (matepl.eq.25.or.matepl.eq.63.OR.MATEPL.EQ.70) then call idvar4(matepl,mfr,ifour,npint,ipcomp,nbrobl,nbrfac)
*-------------------------------------------------------------------- * MODELE ELASTIQUE VISCOPLASTIQUE DE KOCKS * ELSE IF ( MATEPL .EQ. 70 ) THEN IF ( MFR.EQ.1.AND.(IFOUR.NE.-2.AND.(IFOUR.NE.1))) THEN NBROBL = 2 SEGINI NOMID LESOBL(1) = 'EPSE' LESOBL(2) = 'S ' IPCOMP=NOMID SEGDES NOMID RETURN ENDIF * OPTION INDISPONIBLE CALL ERREUR(19) RETURN
Remarque : IFOUR traduit le MODE de l'opérateur OPTIO :
ELSE IF (IPLAC.EQ.9) THEN * VISCOPLASTIQUE MODELE DE KOCK MLMOTS=MOOBL JGA=MOTS(/2) JGM=JGA+10 SEGADJ MLMOTS MOOBL=MLMOTS MOTS(JGA+1)='A ' MOTS(JGA+2)='B ' MOTS(JGA+3)='M ' MOTS(JGA+4)='Q ' MOTS(JGA+5)='R ' MOTS(JGA+6)='H0 ' MOTS(JGA+7)='AP ' MOTS(JGA+8)='SB ' MOTS(JGA+9)='N ' MOTS(JGA+10)='S0 ' GOTO 9999
Dans cet exemple, il n'y a pas de paramètre facultatif, sinon on aurait procédé de la même façon à partir de MLMOTS = MOFAC.
L'instruction MOTS(/2) demande la 2ème dimension du tableau MOTS (étant un tableau de chaînes de caractères, on considère le nombre de caractères par chaîne comme la première dimension et le nombre de chaînes comme la deuxième dimension. SEGADJ MLMOTS demande de redimensionner le segment avec les nouvelles dimensions courantes ( JGN et JGM).