Wenn die Eingabeparameter für "slasq3" folgendem Muster folgen:
i0 =3, n0=16, pp=1,desig=0.2f, qmax=0.2f, nfail=4,iter=1, ndiv = 2, ieee = 0, ttype = -1
Diese Funktion fällt in eine Endlosschleife zwischen den Codezeilen 332 ~ 362.
100% reproduzieren.
Glaubst du, das hat in früheren Versionen funktioniert? AFAIK keine der slasq-Funktionen wurde seit mindestens 3.7.0 modifiziert. Nach Ihrer Beschreibung ist es eine Schleife, da TAU nie klein genug wird?
Glaubst du, das hat in früheren Versionen funktioniert? AFAIK keine der slasq-Funktionen wurde seit mindestens 3.7.0 modifiziert. Nach Ihrer Beschreibung ist es eine Schleife, da TAU nie klein genug wird?
Entschuldigung, ich habe bisher nur 3.9.0 verifiziert, da dies die einzige verfügbare Version ist.
Hätten Sie dafür zufällig einen vollständigen Reproduzierer, insbesondere mit den im Array z enthaltenen Werten? Ich kann das Problem mit den von Ihnen bereitgestellten Daten und einem zufälligen z nicht reproduzieren, und ich kann mir vorstellen, dass schlimme Dinge passieren werden, wenn nicht sogar wenn eines der Array-Elemente ein NaN ist.
wenn dmin nan ist, sollte es auf einen legitimen falschen Wert gesetzt werden; würde die Unendlichkeit verhindern.
Ich habe auch darüber nachgedacht, aber wenn ich mit den Regeln für den Vergleich mit NaN richtig liege, ist dies wahrscheinlich nicht das Problem.
Keine Endlosschleife mit 4b3c7c249f6a2cfed76603d9987cf5164fa6f9e1 zum Erstellen des Codes:
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
Lassen Sie uns dieses Thema basierend auf dem
@Peter9606 vielen Dank für die Meldung des Problems. Wenn das Problem erneut
Julien.
Hilfreichster Kommentar
Hätten Sie dafür zufällig einen vollständigen Reproduzierer, insbesondere mit den im Array z enthaltenen Werten? Ich kann das Problem mit den von Ihnen bereitgestellten Daten und einem zufälligen z nicht reproduzieren,
und ich kann mir vorstellen, dass schlimme Dinge passieren werden, wennnicht sogar wenn eines der Array-Elemente ein NaN ist.