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).