Lorsque les paramètres d'entrée dans "slasq3" suivent le modèle ci-dessous :
i0 =3, n0=16, pp=1,desig=0.2f, qmax=0.2f, nfail=4,iter=1, ndiv = 2, ieee = 0, ttype = -1
cette fonction tombe dans une boucle infinie entre les lignes de code 332 ~ 362.
100% reproduire.
Pensez-vous que cela fonctionnait dans les versions précédentes ? AFAIK aucune des fonctions slasq n'a été modifiée depuis au moins 3.7.0. D'après votre description, c'est en boucle car TAU n'est jamais assez petit ?
Pensez-vous que cela fonctionnait dans les versions précédentes ? AFAIK aucune des fonctions slasq n'a été modifiée depuis au moins 3.7.0. D'après votre description, c'est en boucle car TAU n'est jamais assez petit ?
Désolé, je n'ai vérifié que sur 3.9.0 jusqu'à présent car c'est la seule version disponible.
Auriez-vous un reproducteur complet pour cela, notamment avec les valeurs contenues dans le tableau z ? Je ne peux pas reproduire le problème avec les données que vous avez fournies et un z aléatoire, et j'imagine que de mauvaises choses se passeront même si l'un des éléments du tableau est un NaN.
si dmin est nan, il doit être défini sur une valeur erronée légitime ; empêcherait l'infini.
J'y ai également pensé, mais si j'ai raison sur les règles de comparaison avec NaN, ce n'est probablement pas le problème.
Pas de boucle infinie en utilisant 4b3c7c249f6a2cfed76603d9987cf5164fa6f9e1 pour construire le code :
PROGRAM testSLASQ3
IMPLICIT NONE
* .. Scalar Arguments ..
LOGICAL IEEE
INTEGER I0, ITER, N0, NDIV, NFAIL, PP, TTYPE
REAL DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G,
& QMAX, SIGMA, TAU
* .. Array Arguments ..
REAL Z( 64 )
* .. Subroutines ..
EXTERNAL SLASQ3
PARAMETER ( IEEE=.FALSE. )
PARAMETER ( I0 = 3 )
PARAMETER ( QMAX = 1.0 )
ITER=1
N0=16
NDIV=2
NFAIL=4
PP=1
TTYPE=-1
DESIG=0.2
DMIN1=0.1
DMIN2=0.1
DN=1.0
DN1=1.0
DN2=1.0
G=1.0
TAU=1.0
Z = (/0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
& 0.1,0.2,0.3,0.4,0.5,0.6,
& 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
& 0.1,0.2,0.3,0.4,0.5,0.6,
& 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
& 0.1,0.2,0.3,0.4,0.5,0.6,
& 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
& 0.1,0.2,0.3,0.4,0.5,0.6/)
CALL SLASQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
& ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1,
& DN2, G, TAU )
END PROGRAM testSLASQ3
Sur la base du post de @weslleyspereira , fermons alors ce problème.
@ Peter9606 merci d'avoir signalé le problème, si le problème revient, revenez nous voir.
Julien.
Commentaire le plus utile
Auriez-vous un reproducteur complet pour cela, notamment avec les valeurs contenues dans le tableau z ? Je ne peux pas reproduire le problème avec les données que vous avez fournies et un z aléatoire,
et j'imagine que de mauvaises choses se passerontmême si l'un des éléments du tableau est un NaN.