From 4e9fa08725a239dd1a9af3178e18175fe7d708c9 Mon Sep 17 00:00:00 2001 From: Nick Gould Date: Mon, 29 Jan 2024 09:46:04 +0000 Subject: [PATCH] remove explicit kinds from geneeric function calls try to make lapack line lengths <80 chars after preprocessing --- src/general/makemaster | 1 - src/lapack/blas.f90 | 2 +- src/lapack/lapack.f90 | 138 ++++++++++++------------- src/lapack/rebuild.F90 | 44 ++++++-- src/lms/lms.F90 | 3 +- src/oblivion/trimsqp/trimsqp.F90 | 44 ++++---- src/qpp/qpps.f90 | 3 +- src/rqs/rqs.F90 | 4 +- src/rqs/rqsdt.output | 137 ++++++------------------- src/sbls/sbls.F90 | 3 +- src/sls/sls.F90 | 3 +- src/ssids/ssids.F90 | 3 +- src/trs/trs.F90 | 3 +- src/trs/trsdt.output | 166 +++++++++++++++++++++---------- 14 files changed, 287 insertions(+), 267 deletions(-) diff --git a/src/general/makemaster b/src/general/makemaster index f6d4b0e6c2..c1d2ce77d2 100644 --- a/src/general/makemaster +++ b/src/general/makemaster @@ -593,7 +593,6 @@ create_lapack: $(MV) galahad_lapack.h $(GALAHAD)/include/ $(RM) ./build_lapack - # book keeping clean: diff --git a/src/lapack/blas.f90 b/src/lapack/blas.f90 index dff8770fae..8d51c095c7 100644 --- a/src/lapack/blas.f90 +++ b/src/lapack/blas.f90 @@ -1,4 +1,4 @@ -! THIS VERSION: GALAHAD 4.3 - 2024-01-28 AT 10:43 GMT +! THIS VERSION: GALAHAD 4.3 - 2024-01-29 AT 09:08 GMT #include "galahad_blas.h" diff --git a/src/lapack/lapack.f90 b/src/lapack/lapack.f90 index b27b6b517c..95e39b9583 100644 --- a/src/lapack/lapack.f90 +++ b/src/lapack/lapack.f90 @@ -1,4 +1,4 @@ -! THIS VERSION: GALAHAD 4.3 - 2024-01-28 AT 10:43 GMT +! THIS VERSION: GALAHAD 4.3 - 2024-01-29 AT 09:08 GMT #include "galahad_lapack.h" @@ -36,7 +36,7 @@ SUBROUTINE DBDSQR(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, & LOGICAL :: LSAME REAL(r8_) :: DLAMCH EXTERNAL :: LSAME, DLAMCH - EXTERNAL :: DLARTG, DLAS2, DLASQ1, DLASR, DLASV2, & + EXTERNAL :: DLARTG, DLAS2, DLASQ1, DLASR, DLASV2,& DROT, DSCAL, DSWAP, XERBLA INTRINSIC :: ABS, DBLE, MAX, MIN, SIGN, SQRT info = 0 @@ -592,7 +592,7 @@ SUBROUTINE DGEHRD(n, ilo, ihi, a, lda, tau, work, lwork, info) INTEGER(ip_) :: i, ib, iinfo, iwt, j, ldwork, lwkopt, nb, nbmin, & nh, nx REAL(r8_) :: ei - EXTERNAL :: DAXPY, DGEHD2, DGEMM, DLAHR2, DLARFB, & + EXTERNAL :: DAXPY, DGEHD2, DGEMM, DLAHR2, DLARFB,& DTRMM, XERBLA INTRINSIC :: MAX, MIN INTEGER(ip_) :: ILAENV @@ -802,7 +802,7 @@ SUBROUTINE DGELS(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, & INTEGER(ip_) :: ILAENV REAL(r8_) :: DLAMCH, DLANGE EXTERNAL :: LSAME, ILAENV, DLABAD, DLAMCH, DLANGE - EXTERNAL :: DGELQF, DGEQRF, DLASCL, DLASET, & + EXTERNAL :: DGELQF, DGEQRF, DLASCL, DLASET, & DORMLQ, DORMQR, DTRTRS, XERBLA INTRINSIC :: DBLE, MAX, MIN info = 0 @@ -970,8 +970,8 @@ SUBROUTINE DGELSD(m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, & liwork, maxmn, maxwrk, minmn, minwrk, mm, mnthr, nlvl, nwork, & smlsiz, wlalsd REAL(r8_) :: anrm, bignum, bnrm, eps, sfmin, smlnum - EXTERNAL :: DGEBRD, DGELQF, DGEQRF, DLABAD, & - DLACPY, DLALSD, DLASCL, DLASET, DORMBR, DORMLQ, & + EXTERNAL :: DGEBRD, DGELQF, DGEQRF, DLABAD, & + DLACPY, DLALSD, DLASCL, DLASET, DORMBR, DORMLQ, & DORMQR, XERBLA INTEGER(ip_) :: ILAENV REAL(r8_) :: DLAMCH, DLANGE @@ -1219,8 +1219,8 @@ SUBROUTINE DGELSS(m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, & lwork_dormbr, lwork_dorgbr, lwork_dormlq, lwork_dgelqf REAL(r8_) :: anrm, bignum, bnrm, eps, sfmin, smlnum, thr REAL(r8_) :: dum(1) - EXTERNAL :: DBDSQR, DCOPY, DGEBRD, DGELQF, DGEMM, & - DGEMV, DGEQRF, DLABAD, DLACPY, DLASCL, DLASET, & + EXTERNAL :: DBDSQR, DCOPY, DGEBRD, DGELQF, DGEMM,& + DGEMV, DGEQRF, DLABAD, DLACPY, DLASCL, DLASET, & DORGBR, DORMBR, DORMLQ, DORMQR, DRSCL, XERBLA INTEGER(ip_) :: ILAENV REAL(r8_) :: DLAMCH, DLANGE @@ -1568,8 +1568,8 @@ SUBROUTINE DGELSY(m, n, nrhs, a, lda, b, ldb, jpvt, rcond, rank, & INTEGER(ip_) :: ILAENV REAL(r8_) :: DLAMCH, DLANGE EXTERNAL :: ILAENV, DLAMCH, DLANGE - EXTERNAL :: DCOPY, DGEQP3, DLABAD, DLAIC1, & - DLASCL, DLASET, DORMQR, DORMRZ, DTRSM, DTZRZF, & + EXTERNAL :: DCOPY, DGEQP3, DLABAD, DLAIC1, & + DLASCL, DLASET, DORMQR, DORMRZ, DTRSM, DTZRZF, & XERBLA INTRINSIC :: ABS, MAX, MIN mn = MIN(m, n) @@ -1734,7 +1734,7 @@ SUBROUTINE DGEQP3(m, n, a, lda, jpvt, tau, work, lwork, info) LOGICAL :: lquery INTEGER(ip_) :: fjb, iws, j, jb, lwkopt, minmn, minws, na, nb, & nbmin, nfxd, nx, sm, sminmn, sn, topbmn - EXTERNAL :: DGEQRF, DLAQP2, DLAQPS, DORMQR, & + EXTERNAL :: DGEQRF, DLAQP2, DLAQPS, DORMQR, & DSWAP, XERBLA INTEGER(ip_) :: ILAENV REAL(r8_) :: DNRM2 @@ -1968,8 +1968,8 @@ SUBROUTINE DGESVD(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, & lwork_dorglq_n, lwork_dorglq_m REAL(r8_) :: anrm, bignum, eps, smlnum REAL(r8_) :: dum(1) - EXTERNAL :: DBDSQR, DGEBRD, DGELQF, DGEMM, & - DGEQRF, DLACPY, DLASCL, DLASET, DORGBR, DORGLQ, & + EXTERNAL :: DBDSQR, DGEBRD, DGELQF, DGEMM, & + DGEQRF, DLACPY, DLASCL, DLASET, DORGBR, DORGLQ, & DORGQR, DORMBR, XERBLA LOGICAL :: LSAME INTEGER(ip_) :: ILAENV @@ -3683,7 +3683,7 @@ SUBROUTINE DHSEQR(job, compz, n, ilo, ihi, h, ldh, wr, wi, z, ldz, & INTEGER(ip_) :: ILAENV LOGICAL :: LSAME EXTERNAL :: ILAENV, LSAME - EXTERNAL :: DLACPY, DLAHQR, DLAQR0, DLASET, & + EXTERNAL :: DLACPY, DLAHQR, DLAQR0, DLASET, & XERBLA INTRINSIC :: DBLE, MAX, MIN wantt = LSAME(job, 'S') @@ -4331,7 +4331,7 @@ SUBROUTINE DLAEXC(wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info) REAL(r8_) :: d(ldd, 4_ip_), u(3), u1(3), u2(3), x(ldx, 2_ip_) REAL(r8_) :: DLAMCH, DLANGE EXTERNAL :: DLAMCH, DLANGE - EXTERNAL :: DLACPY, DLANV2, DLARFG, DLARFX, & + EXTERNAL :: DLACPY, DLANV2, DLARFG, DLARFX, & DLARTG, DLASY2, DROT INTRINSIC :: ABS, MAX info = 0 @@ -4698,7 +4698,7 @@ SUBROUTINE DLAHR2(n, k, nb, a, lda, tau, t, ldt, y, ldy) PARAMETER (zero=0.0_r8_, one=1.0_r8_) INTEGER(ip_) :: i REAL(r8_) :: ei - EXTERNAL :: DAXPY, DCOPY, DGEMM, DGEMV, DLACPY, & + EXTERNAL :: DAXPY, DCOPY, DGEMM, DGEMV, DLACPY, & DLARFG, DSCAL, DTRMM, DTRMV INTRINSIC :: MIN IF (n<=1) RETURN @@ -4945,7 +4945,7 @@ SUBROUTINE DLALS0(icompq, nl, nr, sqre, nrhs, b, ldb, bx, ldbx, & PARAMETER (one=1.0_r8_, zero=0.0_r8_, negone=-1.0_r8_) INTEGER(ip_) :: i, j, m, n, nlp1 REAL(r8_) :: diflj, difrj, dj, dsigj, dsigjp, temp - EXTERNAL :: DCOPY, DGEMV, DLACPY, DLASCL, DROT, & + EXTERNAL :: DCOPY, DGEMV, DLACPY, DLASCL, DROT, & DSCAL, XERBLA REAL(r8_) :: DLAMC3, DNRM2 EXTERNAL :: DLAMC3, DNRM2 @@ -5248,8 +5248,8 @@ SUBROUTINE DLALSD(uplo, smlsiz, n, nrhs, d, e, b, ldb, rcond, rank, & INTEGER(ip_) :: IDAMAX REAL(r8_) :: DLAMCH, DLANST EXTERNAL :: IDAMAX, DLAMCH, DLANST - EXTERNAL :: DCOPY, DGEMM, DLACPY, DLALSA, DLARTG, & - DLASCL, DLASDA, DLASDQ, DLASET, DLASRT, DROT, & + EXTERNAL :: DCOPY, DGEMM, DLACPY, DLALSA, DLARTG,& + DLASCL, DLASDA, DLASDQ, DLASET, DLASRT, DROT, & XERBLA INTRINSIC :: ABS, DBLE, INT, LOG, SIGN info = 0 @@ -6131,7 +6131,7 @@ SUBROUTINE DLAQR0(wantt, wantz, n, ilo, ihi, h, ldh, wr, wi, iloz, & INTEGER(ip_) :: ILAENV EXTERNAL :: ILAENV REAL(r8_) :: zdum(1, 1_ip_) - EXTERNAL :: DLACPY, DLAHQR, DLANV2, DLAQR3, & + EXTERNAL :: DLACPY, DLAHQR, DLANV2, DLAQR3, & DLAQR4, DLAQR5 INTRINSIC :: ABS, DBLE, INT, MAX, MIN, MOD info = 0 @@ -6395,8 +6395,8 @@ SUBROUTINE DLAQR2(wantt, wantz, n, ktop, kbot, nw, h, ldh, iloz, & LOGICAL :: bulge, sorted REAL(r8_) :: DLAMCH EXTERNAL :: DLAMCH - EXTERNAL :: DCOPY, DGEHRD, DGEMM, DLABAD, DLACPY, & - DLAHQR, DLANV2, DLARF, DLARFG, DLASET, DORMHR, & + EXTERNAL :: DCOPY, DGEHRD, DGEMM, DLABAD, DLACPY,& + DLAHQR, DLANV2, DLARF, DLARFG, DLASET, DORMHR, & DTREXC INTRINSIC :: ABS, DBLE, INT, MAX, MIN, SQRT jw = MIN(nw, kbot-ktop+1) @@ -6640,8 +6640,8 @@ SUBROUTINE DLAQR3(wantt, wantz, n, ktop, kbot, nw, h, ldh, iloz, & REAL(r8_) :: DLAMCH INTEGER(ip_) :: ILAENV EXTERNAL :: DLAMCH, ILAENV - EXTERNAL :: DCOPY, DGEHRD, DGEMM, DLABAD, DLACPY, & - DLAHQR, DLANV2, DLAQR4, DLARF, DLARFG, DLASET, & + EXTERNAL :: DCOPY, DGEHRD, DGEMM, DLABAD, DLACPY,& + DLAHQR, DLANV2, DLAQR4, DLARF, DLARFG, DLASET, & DORMHR, DTREXC INTRINSIC :: ABS, DBLE, INT, MAX, MIN, SQRT jw = MIN(nw, kbot-ktop+1) @@ -6900,7 +6900,7 @@ SUBROUTINE DLAQR4(wantt, wantz, n, ilo, ihi, h, ldh, wr, wi, iloz, & INTEGER(ip_) :: ILAENV EXTERNAL :: ILAENV REAL(r8_) :: zdum(1, 1_ip_) - EXTERNAL :: DLACPY, DLAHQR, DLANV2, DLAQR2, & + EXTERNAL :: DLACPY, DLAHQR, DLANV2, DLAQR2, & DLAQR5 INTRINSIC :: ABS, DBLE, INT, MAX, MIN, MOD info = 0 @@ -7122,7 +7122,7 @@ SUBROUTINE DLAQR5(wantt, wantz, kacc22, n, ktop, kbot, nshfts, sr, & EXTERNAL :: DLAMCH INTRINSIC :: ABS, DBLE, MAX, MIN, MOD REAL(r8_) :: vt(3) - EXTERNAL :: DGEMM, DLABAD, DLACPY, DLAQR1, & + EXTERNAL :: DGEMM, DLABAD, DLACPY, DLAQR1, & DLARFG, DLASET, DTRMM IF (nshfts<2) RETURN IF (ktop>=kbot) RETURN @@ -9379,7 +9379,7 @@ SUBROUTINE DLASD6(icompq, nl, nr, sqre, d, vf, vl, alpha, beta, & INTEGER(ip_) :: i, idx, idxc, idxp, isigma, ivfw, ivlw, iw, m, n, & n1, n2 REAL(r8_) :: orgnrm - EXTERNAL :: DCOPY, DLAMRG, DLASCL, DLASD7, & + EXTERNAL :: DCOPY, DLAMRG, DLASCL, DLASD7, & DLASD8, XERBLA INTRINSIC :: ABS, MAX info = 0 @@ -9741,7 +9741,7 @@ SUBROUTINE DLASDA(icompq, smlsiz, n, sqre, d, e, u, ldu, vt, k, & nlp1, nlvl, nr, nrf, nrp1, nru, nwork1, nwork2, smlszp, sqrei, & vf, vfi, vl, vli REAL(r8_) :: alpha, beta - EXTERNAL :: DCOPY, DLASD6, DLASDQ, DLASDT, & + EXTERNAL :: DCOPY, DLASD6, DLASDQ, DLASDT, & DLASET, XERBLA info = 0 IF ((icompq<0) .OR. (icompq>1)) THEN @@ -10115,7 +10115,7 @@ SUBROUTINE DLASQ1(n, d, e, work, info) PARAMETER (zero=0.0_r8_) INTEGER(ip_) :: i, iinfo REAL(r8_) :: eps, scale, safmin, sigmn, sigmx - EXTERNAL :: DCOPY, DLAS2, DLASCL, DLASQ2, DLASRT, & + EXTERNAL :: DCOPY, DLAS2, DLASCL, DLASQ2, DLASRT,& XERBLA REAL(r8_) :: DLAMCH EXTERNAL :: DLAMCH @@ -13708,7 +13708,7 @@ SUBROUTINE DPBTRF(uplo, n, kd, ab, ldab, info) LOGICAL :: LSAME INTEGER(ip_) :: ILAENV EXTERNAL :: LSAME, ILAENV - EXTERNAL :: DGEMM, DPBTF2, DPOTF2, DSYRK, DTRSM, & + EXTERNAL :: DGEMM, DPBTF2, DPOTF2, DSYRK, DTRSM, & XERBLA INTRINSIC :: MIN info = 0 @@ -14300,7 +14300,7 @@ SUBROUTINE DSTEQR(compz, n, d, e, z, ldz, work, info) LOGICAL :: LSAME REAL(r8_) :: DLAMCH, DLANST, DLAPY2 EXTERNAL :: LSAME, DLAMCH, DLANST, DLAPY2 - EXTERNAL :: DLAE2, DLAEV2, DLARTG, DLASCL, & + EXTERNAL :: DLAE2, DLAEV2, DLARTG, DLASCL, & DLASET, DLASR, DLASRT, DSWAP, XERBLA INTRINSIC :: ABS, MAX, SIGN, SQRT info = 0 @@ -14779,7 +14779,7 @@ SUBROUTINE DSYEV(jobz, uplo, n, a, lda, w, work, lwork, info) INTEGER(ip_) :: ILAENV REAL(r8_) :: DLAMCH, DLANSY EXTERNAL :: LSAME, ILAENV, DLAMCH, DLANSY - EXTERNAL :: DLASCL, DORGTR, DSCAL, DSTEQR, & + EXTERNAL :: DLASCL, DORGTR, DSCAL, DSTEQR, & DSTERF, DSYTRD, XERBLA INTRINSIC :: MAX, SQRT wantz = LSAME(jobz, 'V') @@ -14868,7 +14868,7 @@ SUBROUTINE DSYGS2(itype, uplo, n, a, lda, b, ldb, info) LOGICAL :: upper INTEGER(ip_) :: k REAL(r8_) :: akk, bkk, ct - EXTERNAL :: DAXPY, DSCAL, DSYR2, DTRMV, DTRSV, & + EXTERNAL :: DAXPY, DSCAL, DSYR2, DTRMV, DTRSV, & XERBLA INTRINSIC :: MAX LOGICAL :: LSAME @@ -14969,7 +14969,7 @@ SUBROUTINE DSYGST(itype, uplo, n, a, lda, b, ldb, info) PARAMETER (one=1.0_r8_, half=0.5_r8_) LOGICAL :: upper INTEGER(ip_) :: k, kb, nb - EXTERNAL :: DSYGS2, DSYMM, DSYR2K, DTRMM, DTRSM, & + EXTERNAL :: DSYGS2, DSYMM, DSYR2K, DTRMM, DTRSM, & XERBLA INTRINSIC :: MAX, MIN LOGICAL :: LSAME @@ -15088,7 +15088,7 @@ SUBROUTINE DSYGV(itype, jobz, uplo, n, a, lda, b, ldb, w, work, & LOGICAL :: LSAME INTEGER(ip_) :: ILAENV EXTERNAL :: LSAME, ILAENV - EXTERNAL :: DPOTRF, DSYEV, DSYGST, DTRMM, DTRSM, & + EXTERNAL :: DPOTRF, DSYEV, DSYGST, DTRMM, DTRSM, & XERBLA INTRINSIC :: MAX wantz = LSAME(jobz, 'V') @@ -16736,7 +16736,7 @@ SUBROUTINE SBDSQR(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, & LOGICAL :: LSAME REAL(r4_) :: SLAMCH EXTERNAL :: LSAME, SLAMCH - EXTERNAL :: SLARTG, SLAS2, SLASQ1, SLASR, SLASV2, & + EXTERNAL :: SLARTG, SLAS2, SLASQ1, SLASR, SLASV2,& SROT, SSCAL, SSWAP, XERBLA INTRINSIC :: ABS, MAX, MIN, REAL, SIGN, SQRT info = 0 @@ -17292,7 +17292,7 @@ SUBROUTINE SGEHRD(n, ilo, ihi, a, lda, tau, work, lwork, info) INTEGER(ip_) :: i, ib, iinfo, iwt, j, ldwork, lwkopt, nb, nbmin, & nh, nx REAL(r4_) :: ei - EXTERNAL :: SAXPY, SGEHD2, SGEMM, SLAHR2, SLARFB, & + EXTERNAL :: SAXPY, SGEHD2, SGEMM, SLAHR2, SLARFB,& STRMM, XERBLA INTRINSIC :: MAX, MIN INTEGER(ip_) :: ILAENV @@ -17502,7 +17502,7 @@ SUBROUTINE SGELS(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, & INTEGER(ip_) :: ILAENV REAL(r4_) :: SLAMCH, SLANGE EXTERNAL :: LSAME, ILAENV, SLAMCH, SLANGE - EXTERNAL :: SGELQF, SGEQRF, SLABAD, SLASCL, & + EXTERNAL :: SGELQF, SGEQRF, SLABAD, SLASCL, & SLASET, SORMLQ, SORMQR, STRTRS, XERBLA INTRINSIC :: MAX, MIN, REAL info = 0 @@ -17670,8 +17670,8 @@ SUBROUTINE SGELSD(m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, & liwork, maxmn, maxwrk, minmn, minwrk, mm, mnthr, nlvl, nwork, & smlsiz, wlalsd REAL(r4_) :: anrm, bignum, bnrm, eps, sfmin, smlnum - EXTERNAL :: SGEBRD, SGELQF, SGEQRF, SLABAD, & - SLACPY, SLALSD, SLASCL, SLASET, SORMBR, SORMLQ, & + EXTERNAL :: SGEBRD, SGELQF, SGEQRF, SLABAD, & + SLACPY, SLALSD, SLASCL, SLASET, SORMBR, SORMLQ, & SORMQR, XERBLA INTEGER(ip_) :: ILAENV REAL(r4_) :: SLAMCH, SLANGE @@ -17923,8 +17923,8 @@ SUBROUTINE SGELSS(m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, & lwork_sormbr, lwork_sorgbr, lwork_sormlq REAL(r4_) :: anrm, bignum, bnrm, eps, sfmin, smlnum, thr REAL(r4_) :: dum(1) - EXTERNAL :: SBDSQR, SCOPY, SGEBRD, SGELQF, SGEMM, & - SGEMV, SGEQRF, SLABAD, SLACPY, SLASCL, SLASET, & + EXTERNAL :: SBDSQR, SCOPY, SGEBRD, SGELQF, SGEMM,& + SGEMV, SGEQRF, SLABAD, SLACPY, SLASCL, SLASET, & SORGBR, SORMBR, SORMLQ, SORMQR, SRSCL, XERBLA INTEGER(ip_) :: ILAENV REAL(r4_) :: SLAMCH, SLANGE @@ -18271,8 +18271,8 @@ SUBROUTINE SGELSY(m, n, nrhs, a, lda, b, ldb, jpvt, rcond, rank, & INTEGER(ip_) :: ILAENV REAL(r4_) :: SLAMCH, SLANGE EXTERNAL :: ILAENV, SLAMCH, SLANGE - EXTERNAL :: SCOPY, SGEQP3, SLABAD, SLAIC1, & - SLASCL, SLASET, SORMQR, SORMRZ, STRSM, STZRZF, & + EXTERNAL :: SCOPY, SGEQP3, SLABAD, SLAIC1, & + SLASCL, SLASET, SORMQR, SORMRZ, STRSM, STZRZF, & XERBLA INTRINSIC :: ABS, MAX, MIN mn = MIN(m, n) @@ -18437,7 +18437,7 @@ SUBROUTINE SGEQP3(m, n, a, lda, jpvt, tau, work, lwork, info) LOGICAL :: lquery INTEGER(ip_) :: fjb, iws, j, jb, lwkopt, minmn, minws, na, nb, & nbmin, nfxd, nx, sm, sminmn, sn, topbmn - EXTERNAL :: SGEQRF, SLAQP2, SLAQPS, SORMQR, & + EXTERNAL :: SGEQRF, SLAQP2, SLAQPS, SORMQR, & SSWAP, XERBLA INTEGER(ip_) :: ILAENV REAL(r4_) :: SNRM2 @@ -18671,8 +18671,8 @@ SUBROUTINE SGESVD(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, & lwork_sorglq_n, lwork_sorglq_m REAL(r4_) :: anrm, bignum, eps, smlnum REAL(r4_) :: dum(1) - EXTERNAL :: SBDSQR, SGEBRD, SGELQF, SGEMM, & - SGEQRF, SLACPY, SLASCL, SLASET, SORGBR, SORGLQ, & + EXTERNAL :: SBDSQR, SGEBRD, SGELQF, SGEMM, & + SGEQRF, SLACPY, SLASCL, SLASET, SORGBR, SORGLQ, & SORGQR, SORMBR, XERBLA LOGICAL :: LSAME INTEGER(ip_) :: ILAENV @@ -20387,7 +20387,7 @@ SUBROUTINE SHSEQR(job, compz, n, ilo, ihi, h, ldh, wr, wi, z, ldz, & INTEGER(ip_) :: ILAENV LOGICAL :: LSAME EXTERNAL :: ILAENV, LSAME - EXTERNAL :: SLACPY, SLAHQR, SLAQR0, SLASET, & + EXTERNAL :: SLACPY, SLAHQR, SLAQR0, SLASET, & XERBLA INTRINSIC :: MAX, MIN, REAL wantt = LSAME(job, 'S') @@ -20944,7 +20944,7 @@ SUBROUTINE SLAEXC(wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info) REAL(r4_) :: d(ldd, 4_ip_), u(3), u1(3), u2(3), x(ldx, 2_ip_) REAL(r4_) :: SLAMCH, SLANGE EXTERNAL :: SLAMCH, SLANGE - EXTERNAL :: SLACPY, SLANV2, SLARFG, SLARFX, & + EXTERNAL :: SLACPY, SLANV2, SLARFG, SLARFX, & SLARTG, SLASY2, SROT INTRINSIC :: ABS, MAX info = 0 @@ -21310,7 +21310,7 @@ SUBROUTINE SLAHR2(n, k, nb, a, lda, tau, t, ldt, y, ldy) PARAMETER (zero=0.0_r4_, one=1.0_r4_) INTEGER(ip_) :: i REAL(r4_) :: ei - EXTERNAL :: SAXPY, SCOPY, SGEMM, SGEMV, SLACPY, & + EXTERNAL :: SAXPY, SCOPY, SGEMM, SGEMV, SLACPY, & SLARFG, SSCAL, STRMM, STRMV INTRINSIC :: MIN IF (n<=1) RETURN @@ -21557,7 +21557,7 @@ SUBROUTINE SLALS0(icompq, nl, nr, sqre, nrhs, b, ldb, bx, ldbx, & PARAMETER (one=1.0_r4_, zero=0.0_r4_, negone=-1.0_r4_) INTEGER(ip_) :: i, j, m, n, nlp1 REAL(r4_) :: diflj, difrj, dj, dsigj, dsigjp, temp - EXTERNAL :: SCOPY, SGEMV, SLACPY, SLASCL, SROT, & + EXTERNAL :: SCOPY, SGEMV, SLACPY, SLASCL, SROT, & SSCAL, XERBLA REAL(r4_) :: SLAMC3, SNRM2 EXTERNAL :: SLAMC3, SNRM2 @@ -21860,8 +21860,8 @@ SUBROUTINE SLALSD(uplo, smlsiz, n, nrhs, d, e, b, ldb, rcond, rank, & INTEGER(ip_) :: ISAMAX REAL(r4_) :: SLAMCH, SLANST EXTERNAL :: ISAMAX, SLAMCH, SLANST - EXTERNAL :: SCOPY, SGEMM, SLACPY, SLALSA, SLARTG, & - SLASCL, SLASDA, SLASDQ, SLASET, SLASRT, SROT, & + EXTERNAL :: SCOPY, SGEMM, SLACPY, SLALSA, SLARTG,& + SLASCL, SLASDA, SLASDQ, SLASET, SLASRT, SROT, & XERBLA INTRINSIC :: ABS, INT, LOG, REAL, SIGN info = 0 @@ -22724,7 +22724,7 @@ SUBROUTINE SLAQR0(wantt, wantz, n, ilo, ihi, h, ldh, wr, wi, iloz, & INTEGER(ip_) :: ILAENV EXTERNAL :: ILAENV REAL(r4_) :: zdum(1, 1_ip_) - EXTERNAL :: SLACPY, SLAHQR, SLANV2, SLAQR3, & + EXTERNAL :: SLACPY, SLAHQR, SLANV2, SLAQR3, & SLAQR4, SLAQR5 INTRINSIC :: ABS, INT, MAX, MIN, MOD, REAL info = 0 @@ -22988,8 +22988,8 @@ SUBROUTINE SLAQR2(wantt, wantz, n, ktop, kbot, nw, h, ldh, iloz, & LOGICAL :: bulge, sorted REAL(r4_) :: SLAMCH EXTERNAL :: SLAMCH - EXTERNAL :: SCOPY, SGEHRD, SGEMM, SLABAD, SLACPY, & - SLAHQR, SLANV2, SLARF, SLARFG, SLASET, SORMHR, & + EXTERNAL :: SCOPY, SGEHRD, SGEMM, SLABAD, SLACPY,& + SLAHQR, SLANV2, SLARF, SLARFG, SLASET, SORMHR, & STREXC INTRINSIC :: ABS, INT, MAX, MIN, REAL, SQRT jw = MIN(nw, kbot-ktop+1) @@ -23233,8 +23233,8 @@ SUBROUTINE SLAQR3(wantt, wantz, n, ktop, kbot, nw, h, ldh, iloz, & REAL(r4_) :: SLAMCH INTEGER(ip_) :: ILAENV EXTERNAL :: SLAMCH, ILAENV - EXTERNAL :: SCOPY, SGEHRD, SGEMM, SLABAD, SLACPY, & - SLAHQR, SLANV2, SLAQR4, SLARF, SLARFG, SLASET, & + EXTERNAL :: SCOPY, SGEHRD, SGEMM, SLABAD, SLACPY,& + SLAHQR, SLANV2, SLAQR4, SLARF, SLARFG, SLASET, & SORMHR, STREXC INTRINSIC :: ABS, INT, MAX, MIN, REAL, SQRT jw = MIN(nw, kbot-ktop+1) @@ -23493,7 +23493,7 @@ SUBROUTINE SLAQR4(wantt, wantz, n, ilo, ihi, h, ldh, wr, wi, iloz, & INTEGER(ip_) :: ILAENV EXTERNAL :: ILAENV REAL(r4_) :: zdum(1, 1_ip_) - EXTERNAL :: SLACPY, SLAHQR, SLANV2, SLAQR2, & + EXTERNAL :: SLACPY, SLAHQR, SLANV2, SLAQR2, & SLAQR5 INTRINSIC :: ABS, INT, MAX, MIN, MOD, REAL info = 0 @@ -23715,7 +23715,7 @@ SUBROUTINE SLAQR5(wantt, wantz, kacc22, n, ktop, kbot, nshfts, sr, & EXTERNAL :: SLAMCH INTRINSIC :: ABS, MAX, MIN, MOD, REAL REAL(r4_) :: vt(3) - EXTERNAL :: SGEMM, SLABAD, SLACPY, SLAQR1, & + EXTERNAL :: SGEMM, SLABAD, SLACPY, SLAQR1, & SLARFG, SLASET, STRMM IF (nshfts<2) RETURN IF (ktop>=kbot) RETURN @@ -25971,7 +25971,7 @@ SUBROUTINE SLASD6(icompq, nl, nr, sqre, d, vf, vl, alpha, beta, & INTEGER(ip_) :: i, idx, idxc, idxp, isigma, ivfw, ivlw, iw, m, n, & n1, n2 REAL(r4_) :: orgnrm - EXTERNAL :: SCOPY, SLAMRG, SLASCL, SLASD7, & + EXTERNAL :: SCOPY, SLAMRG, SLASCL, SLASD7, & SLASD8, XERBLA INTRINSIC :: ABS, MAX info = 0 @@ -26333,7 +26333,7 @@ SUBROUTINE SLASDA(icompq, smlsiz, n, sqre, d, e, u, ldu, vt, k, & nlp1, nlvl, nr, nrf, nrp1, nru, nwork1, nwork2, smlszp, sqrei, & vf, vfi, vl, vli REAL(r4_) :: alpha, beta - EXTERNAL :: SCOPY, SLASD6, SLASDQ, SLASDT, & + EXTERNAL :: SCOPY, SLASD6, SLASDQ, SLASDT, & SLASET, XERBLA info = 0 IF ((icompq<0) .OR. (icompq>1)) THEN @@ -26707,7 +26707,7 @@ SUBROUTINE SLASQ1(n, d, e, work, info) PARAMETER (zero=0.0_r4_) INTEGER(ip_) :: i, iinfo REAL(r4_) :: eps, scale, safmin, sigmn, sigmx - EXTERNAL :: SCOPY, SLAS2, SLASCL, SLASQ2, SLASRT, & + EXTERNAL :: SCOPY, SLAS2, SLASCL, SLASQ2, SLASRT,& XERBLA REAL(r4_) :: SLAMCH EXTERNAL :: SLAMCH @@ -30300,7 +30300,7 @@ SUBROUTINE SPBTRF(uplo, n, kd, ab, ldab, info) LOGICAL :: LSAME INTEGER(ip_) :: ILAENV EXTERNAL :: LSAME, ILAENV - EXTERNAL :: SGEMM, SPBTF2, SPOTF2, SSYRK, STRSM, & + EXTERNAL :: SGEMM, SPBTF2, SPOTF2, SSYRK, STRSM, & XERBLA INTRINSIC :: MIN info = 0 @@ -30892,7 +30892,7 @@ SUBROUTINE SSTEQR(compz, n, d, e, z, ldz, work, info) LOGICAL :: LSAME REAL(r4_) :: SLAMCH, SLANST, SLAPY2 EXTERNAL :: LSAME, SLAMCH, SLANST, SLAPY2 - EXTERNAL :: SLAE2, SLAEV2, SLARTG, SLASCL, & + EXTERNAL :: SLAE2, SLAEV2, SLARTG, SLASCL, & SLASET, SLASR, SLASRT, SSWAP, XERBLA INTRINSIC :: ABS, MAX, SIGN, SQRT info = 0 @@ -31369,7 +31369,7 @@ SUBROUTINE SSYEV(jobz, uplo, n, a, lda, w, work, lwork, info) INTEGER(ip_) :: ILAENV REAL(r4_) :: SLAMCH, SLANSY EXTERNAL :: ILAENV, LSAME, SLAMCH, SLANSY - EXTERNAL :: SLASCL, SORGTR, SSCAL, SSTEQR, & + EXTERNAL :: SLASCL, SORGTR, SSCAL, SSTEQR, & SSTERF, SSYTRD, XERBLA INTRINSIC :: MAX, SQRT wantz = LSAME(jobz, 'V') @@ -31458,7 +31458,7 @@ SUBROUTINE SSYGS2(itype, uplo, n, a, lda, b, ldb, info) LOGICAL :: upper INTEGER(ip_) :: k REAL(r4_) :: akk, bkk, ct - EXTERNAL :: SAXPY, SSCAL, SSYR2, STRMV, STRSV, & + EXTERNAL :: SAXPY, SSCAL, SSYR2, STRMV, STRSV, & XERBLA INTRINSIC :: MAX LOGICAL :: LSAME @@ -31559,7 +31559,7 @@ SUBROUTINE SSYGST(itype, uplo, n, a, lda, b, ldb, info) PARAMETER (one=1.0, half=0.5) LOGICAL :: upper INTEGER(ip_) :: k, kb, nb - EXTERNAL :: SSYGS2, SSYMM, SSYR2K, STRMM, STRSM, & + EXTERNAL :: SSYGS2, SSYMM, SSYR2K, STRMM, STRSM, & XERBLA INTRINSIC :: MAX, MIN LOGICAL :: LSAME @@ -31678,7 +31678,7 @@ SUBROUTINE SSYGV(itype, jobz, uplo, n, a, lda, b, ldb, w, work, & LOGICAL :: LSAME INTEGER(ip_) :: ILAENV EXTERNAL :: ILAENV, LSAME - EXTERNAL :: SPOTRF, SSYEV, SSYGST, STRMM, STRSM, & + EXTERNAL :: SPOTRF, SSYEV, SSYGST, STRMM, STRSM, & XERBLA INTRINSIC :: MAX wantz = LSAME(jobz, 'V') diff --git a/src/lapack/rebuild.F90 b/src/lapack/rebuild.F90 index 914081742c..60c58065e0 100644 --- a/src/lapack/rebuild.F90 +++ b/src/lapack/rebuild.F90 @@ -1,4 +1,4 @@ -! THIS VERSION: GALAHAD 4.3 - 2024-01-20 AT 10:00 GMT. +! THIS VERSION: GALAHAD 4.3 - 2024-01-29 AT 09:45 GMT. ! read a file containg a subset of the reference blas, lapack, etc ! written in fortran 77, and output a multi-precision version capable @@ -215,13 +215,29 @@ PROGRAM BUILD ! transform the line to accommodate multi-precision symbols, and ! to replace archaic fortran 77 functions +! TODO: replace +! '= dum(1)' '=INT(dum(1),KIND=ip_)' +! '= isgn' '= REAL(isgn,KIND=KIND(sgn)_)' +! '= iws' '= REAL(iws,KIND=KIND(work(1))) +! '= lwkopt' '= REAL(lwkopt,KIND=KIND(work(1))) +! '= maxwrk' '= REAL(maxwrk,KIND=KIND(work(1))) +! '= ws' '= REAL(ws,KIND=KIND(work(1))) +! 'lwkopt = work(1)' 'lwkopt = INT(work(1),KIND=ip_)' +! +! and modify +! IF (tol>=zero .AND. n*tol*(sminl/smax)<=MAX(eps,hndrth*tol)) THEN +! thresh = MAX(ABS(tol)*smax, maxitr*(n*(n*unfl))) +! thresh = MAX(tol*sminoa, maxitr*(n*(n*unfl))) +! wsize = MAX(wsize, 2*mn+work(2*mn+1)) +! wsize = mn + work(mn+1) +! z(2*n+5) = hundrd*nfail/REAL(iter) + line = REPEAT( ' ', max_line ) k = 1 ; l_next = 0 DO l = 1, l_end IF ( in_line( l : l ) /= ' ' .AND. nz < 0 ) nz = l IF ( l < l_next ) CYCLE IF ( in_line( l : l + 7 ) == 'EXTERNAL' ) external_line = .TRUE. - IF ( in_line( l : l + 12 ) == 'MAX(0, ILAENV' ) THEN line( k : k + 9 ) = 'MAX(0_ip_, ' l_next = l + 6 ; k = k + 10 @@ -552,7 +568,6 @@ PROGRAM BUILD IF ( external_line ) THEN line_max = max_chars - nz - 16 - IF ( line( l_end : l_end ) /= '&' ) external_line = .FALSE. ELSE line_max = max_chars - nz END IF @@ -572,13 +587,23 @@ PROGRAM BUILD IF ( ( line( k : k ) == ' ' .AND. line( k-1 : k-1 ) /= "'" ) .OR. & line( k : k ) == ',' ) THEN IF ( line( k : k ) == ',' ) THEN - WRITE( out, "( A, A, A, '&' )" ) & - REPEAT( ' ', nz ), TRIM( line( 1 : k ) ), & - REPEAT( ' ', max_chars + 2 - nz - k ) + IF ( external_line ) THEN + WRITE( out, "( A, A, '& ' )" ) & + REPEAT( ' ', nz ), TRIM( line( 1 : k ) ) + ELSE + WRITE( out, "( A, A, A, '&' )" ) & + REPEAT( ' ', nz ), TRIM( line( 1 : k ) ), & + REPEAT( ' ', max_chars + 2 - nz - k ) + END IF ELSE - WRITE( out, "( A, A, A, '&' )" ) & - REPEAT( ' ', nz ), TRIM( line( 1 : k ) ), & - REPEAT( ' ', max_chars + 2 - nz - k ) + IF ( external_line ) THEN + WRITE( out, "( A, A, ' &' )" ) & + REPEAT( ' ', nz ), TRIM( line( 1 : k ) ) + ELSE + WRITE( out, "( A, A, A, '&' )" ) & + REPEAT( ' ', nz ), TRIM( line( 1 : k ) ), & + REPEAT( ' ', max_chars + 2 - nz - k ) + END IF END IF nz = MIN( nz + 2, nz2 ) EXIT @@ -589,6 +614,7 @@ PROGRAM BUILD l_end = LEN_TRIM( line ) END IF END DO + external_line = .FALSE. ! if a procedure line ends in a closing bracket, add a USE statement diff --git a/src/lms/lms.F90 b/src/lms/lms.F90 index 0e7a92937f..c28953aa36 100644 --- a/src/lms/lms.F90 +++ b/src/lms/lms.F90 @@ -1,4 +1,4 @@ -! THIS VERSION: GALAHAD 4.3 - 2024-01-27 AT 07:00 GMT. +! THIS VERSION: GALAHAD 4.3 - 2024-01-29 AT 08:40 GMT. #include "galahad_modules.h" @@ -293,7 +293,6 @@ SUBROUTINE LMS_setup( n, data, control, inform ) REAL ( KIND = rp_ ) :: clock_start, clock_now CHARACTER ( LEN = 6 ) :: method CHARACTER ( LEN = 80 ) :: array_name - INTEGER ( KIND = ip_ ) :: LAENV ! prefix for all output diff --git a/src/oblivion/trimsqp/trimsqp.F90 b/src/oblivion/trimsqp/trimsqp.F90 index 8e6609c63a..0745df3b97 100644 --- a/src/oblivion/trimsqp/trimsqp.F90 +++ b/src/oblivion/trimsqp/trimsqp.F90 @@ -1,4 +1,4 @@ -! THIS VERSION: GALAHAD 4.3 - 2024-01-04 AT 09:00 GMT. +! THIS VERSION: GALAHAD 4.3 - 2024-01-29 AT 09:00 GMT. #include "galahad_modules.h" @@ -2728,8 +2728,8 @@ END SUBROUTINE eval_HL ! the Cauchy step s_c. - data%alpha_c = min( one, data%alpha_c ) ! DPR: this should always be true. - data%s_c = data%alpha_c * data%s_p + data%alpha_c = min( one, data%alpha_c ) ! DPR: this should always be true. + data%s_c = data%alpha_c * data%s_p data%inf_norm_s_c = data%alpha_c * data%inf_norm_s_p if ( data%control%print_level >= GALAHAD_DEBUG ) then @@ -2852,7 +2852,8 @@ END SUBROUTINE eval_HL go to 999 end if - data%iterates_sqp = inform%QPseqp_inform%cg_iter ! Are these really iterations? ???? DPR + data%iterates_sqp = inform%QPseqp_inform%cg_iter + ! Are these really iterations? ???? DPR ! The FULL length seqp step and multipliers. @@ -3239,7 +3240,8 @@ END SUBROUTINE eval_HL if ( data%NM%active ) then if ( data%NM%num_fail == 0 ) then data%NM%decreaseH = data%decreaseH_full - data%NM%merit_best = data%merit ! this may be different than data%revert%merit_revert. B/c penalt changes? + data%NM%merit_best = data%merit + ! this may be different than data%revert%merit_revert. B/c penalty changes? end if data%ratio = data%NM%merit_best - data%merit_new data%ratio = data%ratio / data%NM%decreaseH @@ -3733,9 +3735,9 @@ END SUBROUTINE eval_HL ! ' sigma nv TR y_model gmts', & ! ' merit imp' ) -2000 format(1x, '** ERROR : allocation error in subroutine TRIMSQP_solve.', & +2000 format(1x, '** ERROR : allocation error in subroutine TRIMSQP_solve.', & ' error= ', I0, ' status= ', I0, '.') -2001 format(1x, '** ERROR : de-allocation error in subroutine TRIMSQP_solve.', & +2001 format(1x, '** ERROR : de-allocation error in subroutine TRIMSQP_solve.', & ' error= ', I0, ' status= ', I0, '.') !3000 format(1x, (65('*')), / ) !3001 format(1x, (65('*')), /, & @@ -3782,7 +3784,7 @@ END SUBROUTINE eval_HL !!$3014 format( /, 2x, ' QPsiqp%m = ', I5, ' QPsiqp%n = ', I5, ' QPsiqp%f = ', ES16.9 ) !3015 format( 1x, 'Merit function is first-order optimal', & ! ' - turning non-monotone off.', /) -3016 format( 1x, ' NM%active = T : saving model decrease for possible revert', / ) +3016 format( 1x, ' NM%active = T : saving model decrease for possible revert',/) !3015 format( /, '---------------------------------------------------------------',/,& ! 1x,'BFGS is being used, the following data has been computed',/ & ! 10x, 'd', 15x, 'Bs', 11x, 'gradLxnew', 10x, 'gradLx', / & @@ -4613,7 +4615,8 @@ SUBROUTINE build_QPpred( nlp, QPpred, inform, data ) ! L o c a l V a r i a b l e s !----------------------------------------------- - integer ( kind = ip_ ) :: len, Ane, tally, i, j, out, error, m, n, m_a, L!, Hne, Bne + integer ( kind = ip_ ) :: len, Ane, tally, i, j, out, error + integer ( kind = ip_ ) :: m, n, m_a, L !, Hne, Bne integer ( kind = ip_ ) :: B_type, Bind, Aind, I_Bind, I_Aind, Ltn, np2m character, allocatable, dimension( : ) :: store_type @@ -5103,7 +5106,8 @@ SUBROUTINE build_QPsiqp( nlp, QPsiqp, inform, data ) elseif ( nlp%m_a > 0 ) then call SMT_put( store_type, SMT_get( nlp%A%type ), inform%status ) else - call SMT_put( store_type, 'COORDINATE', inform%status ) ! dummy value DPR: maybe dense for descent constraint. + call SMT_put( store_type, 'COORDINATE', inform%status ) + ! dummy value DPR: maybe dense for descent constraint. end if SELECT CASE ( SMT_get( store_type ) ) @@ -6027,7 +6031,8 @@ SUBROUTINE fill_QPsteer( nlp, QPsteer, inform, control, data ) CASE ('DENSE') do i = 1, nlp%m_a - QPsteer%A%val( 1+(i-1)*nlp%n : i*nlp%n ) = nlp%A%val( 1+(i-1)*nlp%n : i*nlp%n ) + QPsteer%A%val( 1+(i-1)*nlp%n : i*nlp%n ) & + = nlp%A%val( 1+(i-1)*nlp%n : i*nlp%n ) QPsteer%A%row( 1+(i-1)*nlp%n : i*nlp%n ) = i do j = 1, nlp%n QPsteer%A%col( (i-1)*nlp%n + j ) = j @@ -6684,7 +6689,8 @@ SUBROUTINE fill_QPpred( nlp, QPpred, inform, data ) if ( data%control%print_level >= GALAHAD_DEBUG ) then write( out, 1017 ) write( out, '(4(2x, ES15.8))') & - ( data%BFGS%d(i), data%BFGS%BS(i), data%BFGS%gradLx(i), data%BFGS%gradLx_new(i), i = 1, n ) + ( data%BFGS%d(i), data%BFGS%BS(i), data%BFGS%gradLx(i), & + data%BFGS%gradLx_new(i), i = 1, n ) write( out, 1016 ) data%BFGS%std, stBs end if @@ -6803,8 +6809,8 @@ SUBROUTINE fill_QPsiqp( nlp, QPsiqp, inform, data ) ! Fill constants. !**************** - ! F - QPsiqp%f = zero !Irrelavant, but actually f_k + g_k^T s_c + half s_c ^T H_k s_c + ! F - irrelavant, but actually f_k + g_k^T s_c + half s_c ^T H_k s_c + QPsiqp%f = zero ! Fill vectors. !**************** @@ -7217,8 +7223,8 @@ SUBROUTINE fill_QPsiqp( nlp, QPsiqp, inform, data ) ! Format statements -1000 FORMAT(1X, '** ERROR : unrecognized storage type in subroutine fill_QPsiqp.') - +1000 FORMAT(1X, '** ERROR : unrecognized storage type in subroutine', & + ' fill_QPsiqp.') END SUBROUTINE fill_QPsiqp @@ -9354,7 +9360,7 @@ SUBROUTINE get_cauchy_step( m, C_type, f, g_s, s_hs, s_norm, rho_g, & ! of accuracy, so the line derivative should be recomputed. IF ( ABS( slope ) < - epsqrt * slope_old ) THEN - IF ( print_debug ) & + IF ( print_debug ) & WRITE( out, "( ' recompute line derivative ... ' )" ) CALL cauchy_get_val_and_slope( m, C_type, f, g_s, s_hs, rho_g, & RES_l, RES_u, A_s, t_break, & @@ -9362,7 +9368,7 @@ SUBROUTINE get_cauchy_step( m, C_type, f, g_s, s_hs, s_norm, rho_g, & val, slope, exact ) gradient = slope + t_break * curv - IF ( print_debug ) & + IF ( print_debug ) & WRITE( out, "( ' val, slope ', 2ES22.14 )" ) val, slope ENDIF @@ -9533,7 +9539,7 @@ SUBROUTINE get_cauchy_step( m, C_type, f, g_s, s_hs, s_norm, rho_g, & "( 3X, I7, ES12.4, A14, 3ES12.4 )" ) & iter, t_min, ' - -', fun, zero, curv IF ( print_debug ) THEN - exact_val = cauchy_get_val( m, C_type, f, g_s, s_hs, rho_g, & + exact_val = cauchy_get_val( m, C_type, f, g_s, s_hs, rho_g, & RES_l, RES_u, A_s, t_min, too_small ) WRITE( out, 2010 ) ' val', fun, exact_val diff --git a/src/qpp/qpps.f90 b/src/qpp/qpps.f90 index a6c071f166..1802de4f5b 100644 --- a/src/qpp/qpps.f90 +++ b/src/qpp/qpps.f90 @@ -86,7 +86,8 @@ PROGRAM GALAHAD_QPP_EXAMPLE '