diff --git a/bin/install_sifdecode_main b/bin/install_sifdecode_main index 438d805..89a33f1 100755 --- a/bin/install_sifdecode_main +++ b/bin/install_sifdecode_main @@ -13,7 +13,7 @@ export SIFDECODE=`echo $SIFDECODE | $SED 's"/tmp_mnt""'` if [[ -e $SIFDECODE/versions/$VERSION ]]; then warning "There is already an installed SIFDECODE version $VERSION" - yesno_default_no ' Do you wish to proceed ... existing version will be destroyed' + yesno_default_yes ' Do you wish to proceed ... existing version will be updated' [[ $? != 1 ]] && exit 4 fi diff --git a/doc/TODO b/doc/TODO new file mode 100644 index 0000000..8d63cae --- /dev/null +++ b/doc/TODO @@ -0,0 +1,16 @@ +enable IEEE gentle failures in ELFUN and GROUP: + + USE, intrinsic :: ieee_exceptions + LOGICAL :: ieee_crash + CALL ieee_get_flag( ieee_overflow, ieee_crash ) + IF ( ieee_crash ) IFSTAT = 3 + CALL ieee_get_flag( ieee_divide_by_zero, ieee_crash ) + IF ( ieee_crash ) IFSTAT = 3 + CALL ieee_get_flag( ieee_invalid, ieee_crash ) + IF ( ieee_crash ) IFSTAT = 3 + +may need additional appropiate ieee flags at compilation; +only available with gfortran 5, ifort 16, nagfor 6.1 (etc). + +Nick Gould +30/March/2017 diff --git a/src/check/check_derivs_main.f90 b/src/check/check_derivs_main.f90 index ac2e8d6..52df220 100644 --- a/src/check/check_derivs_main.f90 +++ b/src/check/check_derivs_main.f90 @@ -25,7 +25,8 @@ PROGRAM CHECK_DERIVS_MAIN ! Default values for parameters INTEGER :: dfiledevice = 26 - LOGICAL :: write_problem_data = .FALSE. +! LOGICAL :: write_problem_data = .FALSE. + LOGICAL :: write_problem_data = .TRUE. CHARACTER ( LEN = 30 ) :: dfilename = 'SIF.data' LOGICAL :: testal = .FALSE. LOGICAL :: dechk = .FALSE. @@ -230,9 +231,9 @@ END SUBROUTINE GROUP IF ( ialgor > 1 ) THEN ALLOCATE( prob%Y( prob%ng ), STAT = alloc_status ) IF ( alloc_status /= 0 ) THEN ; bad_alloc = 'prob%Y' ; GO TO 800 ; END IF - ALLOCATE( prob%C( prob%ng ), STAT = alloc_status ) - IF ( alloc_status /= 0 ) THEN ; bad_alloc = 'prob%C' ; GO TO 800 ; END IF END IF + ALLOCATE( prob%C( prob%ng ), STAT = alloc_status ) + IF ( alloc_status /= 0 ) THEN ; bad_alloc = 'prob%C' ; GO TO 800 ; END IF ALLOCATE( prob%GPVALU( ngpvlu ), STAT = alloc_status ) IF ( alloc_status /= 0 ) THEN bad_alloc = 'prob%GPVALU' ; GO TO 800; END IF @@ -387,9 +388,9 @@ END SUBROUTINE GROUP IF ( write_problem_data ) WRITE( dfiledevice, 1120 ) 'A ', prob%A READ( input, 1020 ) prob%B IF ( write_problem_data ) WRITE( dfiledevice, 1120 ) 'B ', prob%B - READ( input, 1020 ) prob%BL + READ( input, 1020 ) prob%BL, prob%C IF ( write_problem_data ) WRITE( dfiledevice, 1120 ) 'BL ', prob%BL - READ( input, 1020 ) prob%BU + READ( input, 1020 ) prob%BU, prob%C IF ( write_problem_data ) WRITE( dfiledevice, 1120 ) 'BU ', prob%BU READ( input, 1020 ) prob%X IF ( write_problem_data ) WRITE( dfiledevice, 1120 ) 'X ', prob%X @@ -714,8 +715,9 @@ END SUBROUTINE GROUP DEALLOCATE( prob%GSCALE, prob%VSCALE, XT, DGRAD , STAT = alloc_status ) DEALLOCATE( Q, FT, GVALS , prob%BL, prob%BU, ETYPES, STAT = alloc_status ) DEALLOCATE( prob%INTREP, prob%GNAMES, prob%VNAMES, STAT = alloc_status ) + DEALLOCATE( prob%C, STAT = alloc_status ) IF ( ialgor > 1 ) & - DEALLOCATE( prob%Y, prob%C, prob%KNDOFG, STAT = alloc_status ) + DEALLOCATE( prob%Y, prob%KNDOFG, STAT = alloc_status ) 990 CONTINUE