31 &(x, a,b,tb,cfg,infogr,mesh,aux)
73 TYPE(slvcfg),
INTENT(INOUT) :: CFG
77 TYPE(bief_obj),
TARGET,
INTENT(INOUT) :: X,B
78 TYPE(bief_obj),
INTENT(INOUT) :: TB
82 TYPE(bief_obj),
INTENT(INOUT) :: A,AUX
84 LOGICAL,
INTENT(IN) :: INFOGR
88 TYPE(bief_mesh),
INTENT(INOUT) :: MESH
91 #if defined COMPAD_SYMBOLIC_LINSOLVE 95 TYPE(bief_obj) :: A0, B0, XS
96 TYPE(bief_obj) :: A1, B1, X1A, X1B
98 TYPE(bief_obj) :: A00, B00
102 INTEGER,
PARAMETER :: NIX = 0, val=0, drv=1, all=-1
104 #endif /* COMPAD_SYMBOLIC_LINSOLVE */ 105 INTEGER,
SAVE :: CNT = 0
112 #ifndef COMPAD_SYMBOLIC_LINSOLVE 121 #if defined AD_BIEF_OBJ_PRINT 133 CALL solve(x,a,b,tb,cfg,infogr,mesh,aux)
142 #if defined COMPAD_SYMBOLIC_LINSOLVE && COMPAD 144 WRITE(
lu,*)
' AD_SOLVE SYMBOLIC LINEAR SOLVER (', cnt,
168 #if defined AD_BIEF_OBJ_PRINT 171 #if defined AD_BIEF_OBJ_DIFF_PRINT 189 #if defined AD_BIEF_OBJ_DIFF_PRINT 199 CALL solve(xs,a0,b0,tb,cfg,infogr,mesh,aux)
201 #if defined AD_BIEF_OBJ_DIFF_PRINT 206 #if defined AD_BIEF_OBJ_DIFF_PRINT 212 #if defined AD_BIEF_OBJ_DIFF_PRINT 231 #if defined AD_BIEF_OBJ_DIFF_PRINT 233 & cnt,1,
'VAL(B1) <--> T1S(B) ',
'' )
236 CALL solve(x1b,a1,b1,tb,cfg,infogr,mesh,aux)
252 CALL matrbl(
'X=X+CAY ', x=b1 , a=a1, y=xs, c=-1.d0, mesh=mesh )
258 CALL solve(x1a,a1,b1,tb,cfg,infogr,mesh,aux)
281 CALL os(
'X=X+Y ' , x=x1b, y=x1a )
293 & ( tgt, twhat, src, swhat, reclvl )
305 TYPE(bief_obj),
INTENT(INOUT) :: TGT
306 TYPE(bief_obj),
INTENT(IN) :: SRC
307 INTEGER ,
INTENT(IN) :: TWHAT, SWHAT, RECLVL
315 IF (
ASSOCIATED( tgt%R ) )
THEN 316 IF ( swhat .EQ. 0 )
THEN 317 CALL dco_t1s_set( tgt%R,dco_t1s_get_value(src%R),twhat)
318 ELSEIF ( swhat .EQ. 1 )
THEN 319 CALL dco_t1s_set( tgt%R,dco_t1s_get_derivative(src%R),twhat)
325 IF ( tgt%TYPE .EQ. 3 )
THEN 327 IF (
ASSOCIATED( tgt%D ) )
THEN 329 & ( tgt%D, twhat, src%D, swhat, reclvl+1 )
332 IF (
ASSOCIATED( tgt%X ) )
THEN 334 & ( tgt%X, twhat, src%X, swhat, reclvl+1 )
341 IF (
ASSOCIATED( tgt%ADR ) )
THEN 344 & ( tgt%ADR(i)%P, twhat, src%ADR(i)%P, swhat, reclvl+1 )
353 & ( tgt, what, val, reclvl )
365 TYPE(bief_obj),
INTENT(INOUT) :: TGT
366 INTEGER ,
INTENT(IN) :: VAL, WHAT, RECLVL
374 IF (
ASSOCIATED( tgt%R ) )
THEN 375 CALL dco_t1s_set( tgt%R, val, what)
380 IF ( tgt%TYPE .EQ. 3 )
THEN 382 IF (
ASSOCIATED( tgt%D ) )
THEN 386 IF (
ASSOCIATED( tgt%X ) )
THEN 394 IF (
ASSOCIATED( tgt%ADR ) )
THEN 397 & ( tgt%ADR(i)%P, what, val, reclvl+1 )
406 & ( tgt, src, scnt, reclvl )
416 TYPE(bief_obj),
INTENT(INOUT) :: TGT
417 TYPE(bief_obj),
INTENT(IN) :: SRC
418 INTEGER ,
INTENT(IN) :: SCNT, RECLVL
428 tgt%FATHER = src%NAME
429 tgt%NAME =
'c'//src%NAME
437 tgt%MAXDIM1 = src%MAXDIM1
439 tgt%MAXDIM2 = src%MAXDIM2
440 tgt%DIMDISC = src%DIMDISC
441 tgt%STATUS = src%STATUS
447 IF (
ASSOCIATED( src%R ) )
THEN 448 ALLOCATE( tgt%R(
SIZE(src%R) ) )
455 IF (
ASSOCIATED( src%I ) )
THEN 456 ALLOCATE( tgt%I(
SIZE(src%I) ) )
464 tgt%ELMLIN = src%ELMLIN
465 tgt%ELMCOL = src%ELMCOL
466 tgt%TYPDIA = src%TYPDIA
467 tgt%TYPEXT = src%TYPEXT
471 IF ( src%TYPE .EQ. 3 )
THEN 472 IF (
ASSOCIATED( src%D ) )
THEN 480 IF ( src%TYPE .EQ. 3 )
THEN 481 IF (
ASSOCIATED( src%X ) )
THEN 491 tgt%MAXBLOCK = src%MAXBLOCK
493 IF (
ASSOCIATED( src%ADR ) )
THEN 494 ALLOCATE( tgt%ADR( tgt%MAXBLOCK ) )
496 ALLOCATE( tgt%ADR(i)%P )
500 DO i = tgt%N+1, tgt%MAXBLOCK
501 NULLIFY( tgt%ADR(i)%P )
510 & ( tgt, scnt, reclvl, msg, fil )
520 TYPE(bief_obj),
INTENT(IN) :: TGT
521 INTEGER ,
INTENT(IN) :: SCNT, RECLVL
522 CHARACTER(LEN=*) :: MSG, FIL
527 INTEGER,
SAVE :: CNT = 0
529 CHARACTER(LEN=2*RECLVL+2) :: SPC
530 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: TMPA
536 IF( reclvl .EQ. 1 )
THEN 540 &
'======================== START ',scnt,
'::',cnt,
' ===' 541 WRITE(
lu,*)
' AD_PRINT_BIEF_OBJ :: ', msg
542 WRITE(
lu,*)
'=======================================' 547 WRITE(
lu,*) spc,
'(G)',
' KEY ',tgt%KEY,
' TYPE ',tgt%TYPE,
548 &
' FATHER::',tgt%FATHER,
':: NAME::',tgt%NAME,
'::' 552 WRITE(
lu,*) spc,
'(V)',
' NAT', tgt%NAT,
' ELM',tgt%ELM,
553 &
' DIM1',tgt%DIM1,
' MAXDIM1', tgt%MAXDIM1,
554 &
' DIM2', tgt%DIM2,
' MAXDIM2', tgt%MAXDIM2,
555 &
' DIMDISC', tgt%DIMDISC,
' STATUS ', tgt%STATUS
556 IF (
ASSOCIATED(tgt%R) .AND. tgt%TYPE .EQ. 2 )
THEN 557 #ifndef COMPAD_DCO_T1S 559 WRITE(
lu,*) spc,
' (V)',i,
':', tgt%R(i)
562 ALLOCATE( tmpa(
SIZE(tgt%R)))
563 CALL dco_t1s_get( tgt%R, tmpa, 1 )
565 WRITE(
lu,*) spc,
' (V)',i,
':', tgt%R(i),
' T1S', tmpa(i)
573 WRITE(
lu,*) spc,
'(M)',
' STO', tgt%STO,
' STOX', tgt%STOX,
574 &
' ELMLIN', tgt%ELMLIN,
' ELMCOL', tgt%ELMCOL
575 IF ( tgt%TYPE .EQ. 3 )
THEN 576 IF (
ASSOCIATED(tgt%D) )
THEN 579 IF (
ASSOCIATED(tgt%X) )
THEN 586 WRITE(
lu,*) spc,
'(B)',
' N', tgt%N,
' MAXBLOCK', tgt%MAXBLOCK
587 IF ( tgt%TYPE .EQ. 4 )
THEN 588 IF (
ASSOCIATED(tgt%ADR) )
THEN 595 IF ( reclvl.EQ.1 )
THEN 597 &
'======================= END ',scnt,
'::',cnt,
' ===' 605 & ( tgta,whta, pval, scnt, reclvl, msg, fil )
615 TYPE(bief_obj),
INTENT(IN) :: TGTA
616 INTEGER ,
INTENT(IN) :: WHTA, PVAL, SCNT, RECLVL
617 CHARACTER(LEN=*) :: MSG, FIL
622 INTEGER,
SAVE :: CNT = 0
624 CHARACTER(LEN=2*RECLVL+2) :: SPC
625 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: TMPA, TMPB
632 IF( reclvl .EQ. 1)
THEN 636 &
'======================== START ',scnt,
'::', cnt,
' ===' 637 WRITE(
lu,*)
' AD_DIFF_INT_PRINT_BIEF_OBJ :: ', msg
638 WRITE(
lu,*)
' COMPARING :: ', tgta%NAME,
' with value ',
639 & pval,
' what: ', whta
640 WRITE(
lu,*)
'=======================================' 645 WRITE(
lu,*) spc,
'(G) TGTA',
' KEY ',tgta%KEY,
646 &
' TYPE ',tgta%TYPE,
' FATHER::',tgta%FATHER,
647 &
':: NAME::',tgta%NAME,
'::' 651 WRITE(
lu,*) spc,
'(V) TGTA ',
' NAT', tgta%NAT,
653 &
' DIM1',tgta%DIM1,
' MAXDIM1', tgta%MAXDIM1,
654 &
' DIM2', tgta%DIM2,
' MAXDIM2', tgta%MAXDIM2,
655 &
' DIMDISC', tgta%DIMDISC,
' STATUS ', tgta%STATUS
656 IF (
ASSOCIATED(tgta%R) .AND. 2 == tgta%TYPE)
THEN 657 #ifndef COMPAD_DCO_T1S 659 IF ( tgta%R(i) .NE. pval )
660 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
661 &
' BIEFDIFF VALUE:',tgta%R(i),
' <--> ', pval
664 ALLOCATE( tmpa(
SIZE(tgta%R)) )
665 CALL dco_t1s_get( tgta%R, tmpa, 1 )
667 IF ( whta .EQ. 0 )
THEN 668 IF ( tgta%R(i) .NE. pval )
669 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
670 &
' BIEFDIFF VAL/PVAL :',tgta%R(i),
' <--> ', pval
671 ELSEIF ( whta .EQ. 1 )
THEN 672 IF ( tmpa(i) .NE. pval )
673 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
674 &
' BIEFDIFF T1S/PVAL :',tmpa(i),
' <--> ', pval
676 IF ( tgta%R(i) .NE. pval )
677 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
678 &
' BIEFDIFF VAL/PVAL :',tgta%R(i),
' <--> ', pval
687 WRITE(
lu,*) spc,
'(M) TGTA',
' STO', tgta%STO,
688 &
' STOX', tgta%STOX,
689 &
' ELMLIN', tgta%ELMLIN,
' ELMCOL', tgta%ELMCOL
690 IF ( tgta%TYPE .EQ. 3 )
THEN 691 IF (
ASSOCIATED(tgta%D) )
THEN 693 & scnt, reclvl+1,msg,fil )
695 IF (
ASSOCIATED(tgta%X) )
THEN 697 & scnt, reclvl+1,msg,fil )
703 WRITE(
lu,*) spc,
'(B) TGTA',
' N', tgta%N,
704 &
' MAX BLOCK', tgta%MAXBLOCK
705 IF ( tgta%TYPE .EQ. 4 )
THEN 706 IF (
ASSOCIATED(tgta%ADR) )
THEN 709 & whta,scnt, reclvl+1,msg,fil )
714 IF ( reclvl .EQ. 1 )
THEN 715 WRITE(
lu,*)
'======================= END ',
716 & scnt,
'::', cnt,
' ===' 724 & ( tgta, whta, tgtb, whtb, scnt, reclvl, msg, fil )
734 TYPE(bief_obj),
INTENT(IN) :: TGTA, TGTB
735 INTEGER ,
INTENT(IN) :: WHTA, WHTB, SCNT, RECLVL
736 CHARACTER(LEN=*) :: MSG, FIL
741 INTEGER,
SAVE :: CNT = 0
743 CHARACTER(LEN=2*RECLVL+2) :: SPC
744 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: TMPA, TMPB
751 IF( reclvl .EQ. 1 )
THEN 755 &
'======================== START ',scnt,
'::', cnt,
' ===' 756 WRITE(
lu,*)
' AD_DIFF_PRINT_BIEF_OBJ :: ', msg
757 WRITE(
lu,*)
' COMPARING :: ', tgta%NAME,
' with ',
758 & tgtb%NAME,
' what: ', whta, whtb
759 WRITE(
lu,*)
'=======================================' 764 WRITE(
lu,*) spc,
'(G) TGTA',
' KEY ',tgta%KEY,
765 &
' TYPE ',tgta%TYPE,
766 &
' FATHER::',tgta%FATHER,
':: NAME::',tgta%NAME,
'::' 767 WRITE(
lu,*) spc,
'(G) TGTB',
' KEY ',tgtb%KEY,
768 &
' TYPE ',tgtb%TYPE,
769 &
' FATHER::',tgtb%FATHER,
':: NAME::',tgtb%NAME,
'::' 770 WRITE(
lu,
'(1x,A,A)',advance=
'NO') spc,
'(G) CHECK ::: ' 771 IF ( tgta%KEY .NE. tgtb%KEY )
772 &
WRITE(
lu,
'(A)',advance=
'NO')
'KEY' 773 IF ( tgta%TYPE .NE. tgtb%TYPE )
774 &
WRITE(
lu,
'(A)',advance=
'NO')
'TYPE' 775 diff = tgta%KEY .NE. tgtb%KEY
776 diff = diff .AND. ( tgta%TYPE .NE. tgtb%TYPE )
777 IF ( diff )
WRITE(
lu,*)
' BIEFDIFF' 782 WRITE(
lu,*) spc,
'(V) TGTA ',
' NAT', tgta%NAT,
784 &
' DIM1',tgta%DIM1,
' MAXDIM1', tgta%MAXDIM1,
785 &
' DIM2', tgta%DIM2,
' MAXDIM2', tgta%MAXDIM2,
786 &
' DIMDISC', tgta%DIMDISC,
' STATUS ', tgta%STATUS
787 WRITE(
lu,*) spc,
'(V) TGTB ',
' NAT', tgtb%NAT,
789 &
' DIM1',tgtb%DIM1,
' MAXDIM1', tgtb%MAXDIM1,
790 &
' DIM2', tgtb%DIM2,
' MAXDIM2', tgtb%MAXDIM2,
791 &
' DIMDISC', tgtb%DIMDISC,
' STATUS ', tgtb%STATUS
792 WRITE(
lu,
'(1x,A,A)',advance=
'NO') spc,
'(V) CHECK ::: ' 793 IF ( tgta%NAT .NE. tgtb%NAT )
794 &
WRITE(
lu,
'(A)',advance=
'NO')
' NAT ' 795 IF ( tgta%ELM .NE. tgtb%ELM )
796 &
WRITE(
lu,
'(A)',advance=
'NO')
' ELM ' 797 IF ( tgta%DIM1 .NE. tgtb%DIM1 )
798 &
WRITE(
lu,
'(A)',advance=
'NO')
' DIM1 ' 799 IF ( tgta%MAXDIM1 .NE. tgtb%MAXDIM1 )
800 &
WRITE(
lu,
'(A)',advance=
'NO')
' MAXDIM1 ' 801 IF ( tgta%DIM2 .NE. tgtb%DIM2 )
802 &
WRITE(
lu,
'(A)',advance=
'NO')
' DIM2 ' 803 IF ( tgta%MAXDIM2 .NE. tgtb%MAXDIM2 )
804 &
WRITE(
lu,
'(A)',advance=
'NO')
' MAXDIM2 ' 805 IF ( tgta%DIMDISC .NE. tgtb%DIMDISC )
806 &
WRITE(
lu,
'(A)',advance=
'NO')
' DIMDISC ' 807 IF ( tgta%STATUS .NE. tgtb%STATUS )
808 &
WRITE(
lu,
'(A)',advance=
'NO')
' STATUS ' 809 IF ( tgta%TYPR .NE. tgtb%TYPR )
810 &
WRITE(
lu,
'(A)',advance=
'NO')
' TYPR ' 811 IF ( tgta%TYPI .NE. tgtb%TYPI )
812 &
WRITE(
lu,
'(A)',advance=
'NO')
' TYPI ' 813 diff = tgta%ELM .NE. tgtb%ELM
814 diff = diff .AND. ( tgta%DIM1 .NE. tgtb%DIM1 )
815 diff = diff .AND. ( tgta%MAXDIM1 .NE. tgtb%MAXDIM1 )
816 diff = diff .AND. ( tgta%DIM2 .NE. tgtb%DIM2 )
817 diff = diff .AND. ( tgta%MAXDIM2 .NE. tgtb%MAXDIM2 )
818 diff = diff .AND. ( tgta%DIMDISC .NE. tgtb%DIMDISC )
819 diff = diff .AND. ( tgta%STATUS .NE. tgtb%STATUS )
820 diff = diff .AND. ( tgta%TYPR .NE. tgtb%TYPR )
821 diff = diff .AND. ( tgta%TYPI .NE. tgtb%TYPI )
822 IF ( diff )
WRITE(
lu,*)
' BIEFDIFF' 825 IF (
ASSOCIATED(tgta%R) .AND. 2 == tgta%TYPE)
THEN 826 #ifndef COMPAD_DCO_T1S 828 IF ( tgta%R(i) .NE. tgtb%R(i) )
829 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
830 &
' BIEFDIFF VALUE:', tgta%R(i),
' <--> ', tgtb%R(i)
833 ALLOCATE( tmpa(
SIZE(tgta%R)), tmpb(
SIZE(tgtb%R)) )
834 CALL dco_t1s_get( tgta%R, tmpa, 1 )
835 CALL dco_t1s_get( tgtb%R, tmpb, 1 )
837 IF ( whta .EQ. 0 .AND. whtb .EQ. 0 )
THEN 838 IF ( tgta%R(i) .NE. tgtb%R(i) )
839 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
840 &
' BIEFDIFF VAL/VAL :',tgta%R(i),
' <--> ',tgtb%R(i)
841 ELSEIF ( whta .EQ. 0 .AND. whtb .EQ. 1 )
THEN 842 IF ( tgta%R(i) .NE. tmpb(i) )
843 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
844 &
' BIEFDIFF VAL/T1S :',tgta%R(i),
' <--> ',tmpb(i)
845 ELSEIF ( whta .EQ. 1 .AND. whtb .EQ. 0 )
THEN 846 IF ( tmpa(i) .NE. tgtb%R(i) )
847 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
848 &
' BIEFDIFF T1S/VAL :',tmpa(i),
' <--> ',tgtb%R(i)
849 ELSEIF ( whta .EQ. 1 .AND. whtb .EQ. 1 )
THEN 850 IF ( tmpa(i) .NE. tmpb(i) )
851 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
852 &
' BIEFDIFF T1S/T1S :',tmpa(i),
' <--> ',tgtb%R(i)
854 IF ( tgta%R(i) .NE. tgtb%R(i) )
855 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
856 &
' BIEFDIFF VAL/VAL :',tgta%R(i),
' <--> ',tgtb%R(i)
857 IF ( tmpa(i) .NE. tmpb(i) )
858 &
WRITE(
lu,*) spc,
' (V)',i,
'(',msg,
',',scnt,
')',
859 &
' BIEFDIFF T1S :',tmpa(i),
' <--> ',tmpb(i)
862 DEALLOCATE(tmpa,tmpb)
868 WRITE(
lu,*) spc,
'(M) TGTA',
' STO', tgta%STO,
869 &
' STOX', tgta%STOX,
870 &
' ELMLIN', tgta%ELMLIN,
' ELMCOL', tgta%ELMCOL
871 WRITE(
lu,*) spc,
'(M) TGTB',
' STO', tgtb%STO,
872 &
' STOX', tgtb%STOX,
873 &
' ELMLIN', tgtb%ELMLIN,
' ELMCOL', tgtb%ELMCOL
874 WRITE(
lu,
'(1x,A,A)',advance=
'NO') spc,
'(M) CHECK ::: ' 875 IF ( tgta%STO .NE. tgtb%STO )
876 &
WRITE(
lu,
'(A)',advance=
'NO')
' STO ' 877 IF ( tgta%STOX .NE. tgtb%STOX )
878 &
WRITE(
lu,
'(A)',advance=
'NO')
' STOX ' 879 IF ( tgta%ELMLIN .NE. tgtb%ELMLIN )
880 &
WRITE(
lu,
'(A)',advance=
'NO')
' ELMLIN ' 881 IF ( tgta%ELMCOL .NE. tgtb%ELMCOL )
882 &
WRITE(
lu,
'(A)',advance=
'NO')
' ELMCOL ' 883 IF ( tgta%TYPDIA .NE. tgtb%TYPDIA )
884 &
WRITE(
lu,
'(A)',advance=
'NO')
' TYPDIA ' 885 IF ( tgta%TYPEXT .NE. tgtb%TYPEXT )
886 &
WRITE(
lu,
'(A)',advance=
'NO')
' TYPEXT ' 888 diff = tgta%STO .NE. tgtb%STO
889 diff = diff .AND. ( tgta%STOX .NE. tgtb%STOX )
890 diff = diff .AND. ( tgta%ELMLIN.NE. tgtb%ELMLIN)
891 diff = diff .AND. ( tgta%ELMCOL.NE. tgtb%ELMCOL)
892 diff = diff .AND. ( tgta%DIM2 .NE. tgtb%DIM2 )
893 diff = diff .AND. ( tgta%TYPDIA.NE. tgtb%TYPDIA)
894 diff = diff .AND. ( tgta%TYPEXT.NE. tgtb%TYPEXT )
895 IF ( diff )
WRITE(
lu,*)
' BIEFDIFF' 896 IF ( tgta%TYPE .EQ. 3 )
THEN 897 IF (
ASSOCIATED(tgta%D) )
THEN 898 WRITE(
lu,*) spc,
'(M) DIFFING NOW TGTA%D TGTB%D' 900 & scnt, reclvl+1,msg,fil )
902 IF (
ASSOCIATED(tgta%X) )
THEN 903 WRITE(
lu,*) spc,
'(M) DIFFING NOW TGTA%X TGTB%X' 905 & scnt, reclvl+1,msg,fil )
911 WRITE(
lu,*) spc,
'(B) TGTA',
' N', tgta%N,
912 &
' MAX BLOCK', tgta%MAXBLOCK
913 WRITE(
lu,*) spc,
'(B) TGTB',
' N', tgtb%N,
914 &
' MAXBLOCK', tgtb%MAXBLOCK
915 WRITE(
lu,
'(1x,A,A)',advance=
'NO') spc,
'(B) CHECK ::: ' 916 IF ( tgta%N .NE. tgtb%N )
WRITE(
lu,
'(A)',advance=
'NO')
' N ' 917 IF ( tgta%MAXBLOCK .NE. tgtb%MAXBLOCK )
918 &
WRITE(
lu,
'(A)',advance=
'NO')
' MAXBLOCK ' 919 diff = tgta%N .NE. tgtb%N
920 diff = diff .AND. ( tgta%MAXBLOCK.NE.tgtb%MAXBLOCK )
921 IF ( diff )
WRITE(
lu,*)
' BIEFDIFF' 923 IF ( tgta%TYPE .EQ. 4 )
THEN 924 IF (
ASSOCIATED(tgta%ADR) )
THEN 926 WRITE(
lu,*) spc,
'(M) DIFFING NOW BLOCKS ',
927 &
'TGTA%ADR(',i,
')%P TGTB%ADR(',i,
')%P' 929 & tgtb%ADR(i)%P, whtb, scnt, reclvl+1,msg,fil )
934 IF ( 1 .EQ. reclvl )
THEN 936 &
'======================= END ',scnt,
'::', cnt,
' ===' 941 #endif /* COMPAD_SYMBOLIC_LINSOLVE .AND. COMPAD */ recursive subroutine ad_deep_copy_bief_obj(TGT, SRC, SCNT, RECLVL)
subroutine ad_solve(X, A, B, TB, CFG, INFOGR, MESH, AUX)
recursive subroutine ad_t1x_set_bief_obj(TGT, TWHAT, SRC, SWHAT, RECLVL)
recursive subroutine ad_t1x_set_int_bief_obj(TGT, WHAT, VAL, RECLVL)
subroutine solve(X, A, B, TB, CFG, INFOGR, MESH, AUX)
recursive subroutine ad_diff_int_print_bief_obj(TGTA, WHTA, PVAL, SCNT, RECLVL, MSG, FIL)
logical ad_linsolv_resetderiv
recursive subroutine ad_print_bief_obj(TGT, SCNT, RECLVL, MSG, FIL)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine matrbl(OP, X, A, Y, C, MESH)
recursive subroutine ad_diff_print_bief_obj(TGTA, WHTA, TGTB, WHTB, SCNT, RECLVL, MSG, FIL)
logical ad_linsolv_derivative_convergence