Bonjour tout le monde,
Comme beaucoup de personnes je suis tombe sur une seg fault ( le plus grand malheur de ceux qui codent ne serait-ce qu'un peu) et je pense avoir la solution mais c'est pas sur,
Bref je suis en train d'étudier un petit truc et j'ai une subroutine suivante (pas entiere car trop longue), voyez mes beaux prints pour vérifier xD :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ihigh=0 !gs-start if(ityptl(i).ne.61)then if( mod(iabs(idptl(i)),10).ge.2 . .or. iabs(idptl(i))/10.eq.211 . .or. iabs(idptl(i))/10.eq.221 . .or. iabs(idptl(i))/10.eq.321)ihigh=1 print * ,' hello guy ?' endif if(ityptl(i).eq.61.or.ihigh.eq.1)then !gs-end idpdg=idptl(i) idepos=idtrafo('pdg','nxs',idpdg) idex=iabs(idepos) ien=mod(idex,10) print *,' hello guy returns' if(idepos.ne.0.and. .(ien.eq.0.or.idex.lt.100 . .or.idex.eq.3331.or.idex.eq.2221.or.idex.eq.1111 . .or.idex.eq.331))then print *,'hello guy the trilogy !' if( ityptl(i).eq.61)ityptl(i)=60 !gs print *,'you can do it !'
et l'erreur que j'obtiens est la suivante :
Le message d'erreur ne s'affiche pas si j'enlève le bloc de gs start a gs end.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Program received signal 11 (SIGSEGV): Segmentation fault
Je pense (mais alors la je suis pas sur du tout) que l'erreur vient du fait que j'ai demande des valeurs entières comme 211, 221 ou 321 mais le problème est que dans mon truc qui s'appelle idptl je peux avoir 211.0 a 211.9 etc
Donc je me demandais deux choses qui même si répondait pas a la question me seraient utile pour plus tard :
Comment puis-je créer une variable qui va de 211.0 a 211.9 (appelons la t1) et la mettre dans mon if ?
Est-ce que je peux tout simplement pas mettre un truc du type 211. qui dit qu'il peut y avoir des chiffres derrière le point ? Comme le fait que 211. puisse faire 211.0 a 211.9
Bref c'est a peu près deux fois la même question mais bon,
ca doit pas être quelque chose de complique mais j'avoue que je ne vois pas encore trop comment faire.
Merci d'avance pour vos réponses
Partager