Skip to content

Commit

Permalink
update rebuild function to allow procedures with names > 6 chars
Browse files Browse the repository at this point in the history
evolution of unreleased colt module
  • Loading branch information
dalekopera committed Feb 6, 2024
1 parent 452037a commit 182ebc4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 12 deletions.
19 changes: 14 additions & 5 deletions src/forthcoming/colt/colt.F90
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ MODULE GALAHAD_COLT_precision
LOGICAL :: set_printm, printe, printi, printt, printm, printw, printd
LOGICAL :: print_iteration_header, print_1st_header, accepted
LOGICAL :: reverse_fc, reverse_gj, reverse_hj, reverse_hocprods
LOGICAL :: target_bounded, converged
LOGICAL :: target_bounded, converged, got_fc, got_gj
INTEGER ( KIND = ip_ ), ALLOCATABLE, DIMENSION( : ) :: SLACKS
REAL ( KIND = rp_ ), ALLOCATABLE, DIMENSION( : ) :: C_scale
REAL ( KIND = rp_ ), ALLOCATABLE, DIMENSION( : ) :: t, f, c, phi
Expand Down Expand Up @@ -1801,6 +1801,7 @@ END SUBROUTINE eval_HOCPRODS
data%control%NLS_control%jacobian_available = 2
data%control%NLS_control%subproblem_control%jacobian_available = 2
data%control%NLS_control%hessian_available = 2
data%got_fc = .TRUE. ; data%got_gj = .TRUE.

! DO ! loop to solve problem
300 CONTINUE ! mock loop to solve problem
Expand All @@ -1821,8 +1822,12 @@ END SUBROUTINE eval_HOCPRODS
nlp%X = data%nls%X( : data%nls%n )
data%branch = 300 ; inform%status = 2 ; RETURN
ELSE
CALL eval_FC( data%eval_status, data%nls%X, userdata, &
nlp%f, nlp%C )
IF ( data%got_fc ) THEN ! skip eval_fc if f and c are already known
data%got_fc = .FALSE.
ELSE
CALL eval_FC( data%eval_status, data%nls%X, userdata, &
nlp%f, nlp%C )
END IF
data%nls%C( : nlp%m ) = nlp%C( : nlp%m )
data%nls%C( data%nls%m ) = nlp%f - inform%target
IF ( print_debug ) WRITE(6,"( ' nls%C = ', /, ( 5ES12.4 ) )" ) &
Expand All @@ -1836,8 +1841,12 @@ END SUBROUTINE eval_HOCPRODS
nlp%X = data%nls%X( : data%nls%n )
data%branch = 300 ; inform%status = 4 ; RETURN
ELSE
CALL eval_GJ( data%eval_status, data%nls%X, userdata, &
nlp%Go%val, nlp%J%val )
IF ( data%got_gj ) THEN ! skip eval_gj if g and j are already known
data%got_gj = .FALSE.
ELSE
CALL eval_GJ( data%eval_status, data%nls%X, userdata, &
nlp%Go%val, nlp%J%val )
END IF
SELECT CASE ( SMT_get( data%nls%J%type ) )
CASE ( 'DENSE' )
j_ne = 0 ; l = 0
Expand Down
20 changes: 13 additions & 7 deletions src/lapack/rebuild.F90
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ PROGRAM BUILD
CHARACTER ( len = max_line ) :: in_line, line
CHARACTER ( len = 8 ) :: date
CHARACTER ( len = 10 ) :: time
CHARACTER ( len = 6 ) :: sub( 1000 )
CHARACTER ( len = 6 ) :: fun( 1000 )
CHARACTER ( len = 8 ) :: sub( 1000 )
CHARACTER ( len = 8 ) :: fun( 1000 )
CHARACTER ( len = 4 ) :: suff64( 4 ) = (/ '64 ', '__64', ' ', '_64 ' /)
INTEGER :: i, ib, j, k, l, l_end, l_new, l_next, line_max, lsame
INTEGER :: nsub, nfun, lost, nz, nz2
Expand Down Expand Up @@ -64,7 +64,7 @@ PROGRAM BUILD
IF ( new_line( i + 1 : i + 1 ) == '(' ) EXIT
END DO
nsub = nsub + 1
sub( nsub ) = ' '
sub( nsub ) = ' '
sub( nsub ) = new_line( l + 17 : i )
END IF
END IF
Expand All @@ -77,7 +77,7 @@ PROGRAM BUILD
IF ( new_line( i + 1 : i + 1 ) == '(' ) EXIT
END DO
nsub = nsub + 1
sub( nsub ) = ' '
sub( nsub ) = ' '
sub( nsub ) = new_line( l + 21 : i )
END IF
END IF
Expand All @@ -98,7 +98,7 @@ PROGRAM BUILD
! IF ( new_line( l + 11 : i ) /= 'XERBLA' .AND. &
! new_line( l + 11 : i ) /= 'LSAME' ) THEN
nfun = nfun + 1
fun( nfun ) = ' '
fun( nfun ) = ' '
fun( nfun ) = new_line( l + 11 : i )
! END IF
END IF
Expand Down Expand Up @@ -149,14 +149,20 @@ PROGRAM BUILD

DO l = 1, nsub
IF ( LEN_TRIM( sub( l ) ) == 4 ) THEN
WRITE( hout, "( '#define ', A, ' ', A, A )" ) &
WRITE( hout, "( '#define ', A, ' ', A, A )" ) &
TRIM( sub( l ) ), TRIM( sub( l ) ), TRIM( suff64( i ) )
ELSE IF ( LEN_TRIM( sub( l ) ) == 5 ) THEN
WRITE( hout, "( '#define ', A, ' ', A, A )" ) &
TRIM( sub( l ) ), TRIM( sub( l ) ), TRIM( suff64( i ) )
ELSE IF ( LEN_TRIM( sub( l ) ) == 7 ) THEN
WRITE( hout, "( '#define ', A, ' ', A, A )" ) &
TRIM( sub( l ) ), TRIM( sub( l ) ), TRIM( suff64( i ) )
ELSE
ELSE IF ( LEN_TRIM( sub( l ) ) == 8 ) THEN
WRITE( hout, "( '#define ', A, ' ', A, A )" ) &
TRIM( sub( l ) ), TRIM( sub( l ) ), TRIM( suff64( i ) )
ELSE
WRITE( hout, "( '#define ', A, ' ', A, A )" ) &
TRIM( sub( l ) ), TRIM( sub( l ) ), TRIM( suff64( i ) )
END IF
END DO
END DO
Expand Down

0 comments on commit 182ebc4

Please sign in to comment.