Add exceptional shift to fix rare convergence problems

This commit is contained in:
Martin Kroeker 2021-01-27 13:41:45 +01:00 committed by GitHub
parent fe71887b68
commit 856bc36533
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 4 deletions

View File

@ -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
*

View File

@ -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
*