Add exceptional shift to fix rare convergence problems
This commit is contained in:
parent
fe71887b68
commit
856bc36533
|
@ -743,8 +743,14 @@
|
|||
*
|
||||
* Exceptional shift. Chosen for no particularly good reason.
|
||||
*
|
||||
ESHIFT = ESHIFT + (ASCALE*H(ILAST,ILAST-1))/
|
||||
$ (BSCALE*T(ILAST-1,ILAST-1))
|
||||
IF( ( IITER / 20 )*20.EQ.IITER .AND.
|
||||
$ BSCALE*ABS1(T( ILAST, ILAST )).GT.SAFMIN ) THEN
|
||||
ESHIFT = ESHIFT + ( ASCALE*H( ILAST,
|
||||
$ ILAST ) )/( BSCALE*T( ILAST, ILAST ) )
|
||||
ELSE
|
||||
ESHIFT = ESHIFT + ( ASCALE*H( ILAST,
|
||||
$ ILAST-1 ) )/( BSCALE*T( ILAST-1, ILAST-1 ) )
|
||||
END IF
|
||||
SHIFT = ESHIFT
|
||||
END IF
|
||||
*
|
||||
|
|
|
@ -744,8 +744,14 @@
|
|||
*
|
||||
* Exceptional shift. Chosen for no particularly good reason.
|
||||
*
|
||||
ESHIFT = ESHIFT + (ASCALE*H(ILAST,ILAST-1))/
|
||||
$ (BSCALE*T(ILAST-1,ILAST-1))
|
||||
IF( ( IITER / 20 )*20.EQ.IITER .AND.
|
||||
$ BSCALE*ABS1(T( ILAST, ILAST )).GT.SAFMIN ) THEN
|
||||
ESHIFT = ESHIFT + ( ASCALE*H( ILAST,
|
||||
$ ILAST ) )/( BSCALE*T( ILAST, ILAST ) )
|
||||
ELSE
|
||||
ESHIFT = ESHIFT + ( ASCALE*H( ILAST,
|
||||
$ ILAST-1 ) )/( BSCALE*T( ILAST-1, ILAST-1 ) )
|
||||
END IF
|
||||
SHIFT = ESHIFT
|
||||
END IF
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue