Commit 698bfed7978cca17de80435bb75d458f9b2c5638
1 parent
36bf795453
Exists in
master
and in
3 other branches
git-svn-id: https://lxsd.femto-st.fr/svn/fvn@34 b657c933-2333-4658-acf2-d3c7c2708721
Showing 1 changed file with 26 additions and 12 deletions Side-by-side Diff
fvnlib.f90
| ... | ... | @@ -2510,21 +2510,25 @@ |
| 2510 | 2510 | double precision, external :: f |
| 2511 | 2511 | double precision, intent(in) :: a,b,epsabs,epsrel |
| 2512 | 2512 | integer, intent(in) :: key |
| 2513 | -integer, intent(in) :: limit | |
| 2513 | +integer, intent(in),optional :: limit | |
| 2514 | 2514 | double precision, intent(out) :: res,abserr |
| 2515 | 2515 | integer, intent(out) :: ier |
| 2516 | 2516 | |
| 2517 | 2517 | double precision, allocatable :: work(:) |
| 2518 | 2518 | integer, allocatable :: iwork(:) |
| 2519 | 2519 | integer :: lenw,neval,last |
| 2520 | +integer :: limitw | |
| 2520 | 2521 | |
| 2521 | 2522 | ! imsl value for limit is 500 |
| 2522 | -lenw=limit*4 | |
| 2523 | +limitw=500 | |
| 2524 | +if (present(limit)) limitw=limit | |
| 2523 | 2525 | |
| 2524 | -allocate(iwork(limit)) | |
| 2526 | +lenw=limitw*4 | |
| 2527 | + | |
| 2528 | +allocate(iwork(limitw)) | |
| 2525 | 2529 | allocate(work(lenw)) |
| 2526 | 2530 | |
| 2527 | -call dqag(f,a,b,epsabs,epsrel,key,res,abserr,neval,ier,limit,lenw,last,iwork,work) | |
| 2531 | +call dqag(f,a,b,epsabs,epsrel,key,res,abserr,neval,ier,limitw,lenw,last,iwork,work) | |
| 2528 | 2532 | |
| 2529 | 2533 | deallocate(work) |
| 2530 | 2534 | deallocate(iwork) |
| 2531 | 2535 | |
| 2532 | 2536 | |
| 2533 | 2537 | |
| 2534 | 2538 | |
| ... | ... | @@ -2597,21 +2601,26 @@ |
| 2597 | 2601 | implicit none |
| 2598 | 2602 | double precision, external:: f,g,h |
| 2599 | 2603 | double precision, intent(in) :: a,b,epsabs,epsrel |
| 2600 | -integer, intent(in) :: key,limit | |
| 2604 | +integer, intent(in) :: key | |
| 2605 | +integer, intent(in), optional :: limit | |
| 2601 | 2606 | integer, intent(out) :: ier |
| 2602 | 2607 | double precision, intent(out) :: res,abserr |
| 2603 | 2608 | |
| 2604 | 2609 | |
| 2605 | 2610 | double precision, allocatable :: work(:) |
| 2611 | +integer :: limitw | |
| 2606 | 2612 | integer, allocatable :: iwork(:) |
| 2607 | 2613 | integer :: lenw,neval,last |
| 2608 | 2614 | |
| 2609 | 2615 | ! imsl value for limit is 500 |
| 2610 | -lenw=limit*4 | |
| 2616 | +limitw=500 | |
| 2617 | +if (present(limit)) limitw=limit | |
| 2618 | + | |
| 2619 | +lenw=limitw*4 | |
| 2611 | 2620 | allocate(work(lenw)) |
| 2612 | -allocate(iwork(limit)) | |
| 2621 | +allocate(iwork(limitw)) | |
| 2613 | 2622 | |
| 2614 | -call dqag_2d_outer(f,a,b,g,h,epsabs,epsrel,key,res,abserr,neval,ier,limit,lenw,last,iwork,work) | |
| 2623 | +call dqag_2d_outer(f,a,b,g,h,epsabs,epsrel,key,res,abserr,neval,ier,limitw,lenw,last,iwork,work) | |
| 2615 | 2624 | |
| 2616 | 2625 | deallocate(iwork) |
| 2617 | 2626 | deallocate(work) |
| 2618 | 2627 | |
| 2619 | 2628 | |
| 2620 | 2629 | |
| 2621 | 2630 | |
| ... | ... | @@ -2685,21 +2694,26 @@ |
| 2685 | 2694 | implicit none |
| 2686 | 2695 | double precision, external:: f |
| 2687 | 2696 | double precision, intent(in) :: x,a,b,epsabs,epsrel |
| 2688 | -integer, intent(in) :: key,limit | |
| 2697 | +integer, intent(in) :: key | |
| 2698 | +integer, intent(in),optional :: limit | |
| 2689 | 2699 | integer, intent(out) :: ier |
| 2690 | 2700 | double precision, intent(out) :: res,abserr |
| 2691 | 2701 | |
| 2692 | 2702 | |
| 2693 | 2703 | double precision, allocatable :: work(:) |
| 2704 | +integer :: limitw | |
| 2694 | 2705 | integer, allocatable :: iwork(:) |
| 2695 | 2706 | integer :: lenw,neval,last |
| 2696 | 2707 | |
| 2697 | 2708 | ! imsl value for limit is 500 |
| 2698 | -lenw=limit*4 | |
| 2709 | +limitw=500 | |
| 2710 | +if (present(limit)) limitw=limit | |
| 2711 | + | |
| 2712 | +lenw=limitw*4 | |
| 2699 | 2713 | allocate(work(lenw)) |
| 2700 | -allocate(iwork(limit)) | |
| 2714 | +allocate(iwork(limitw)) | |
| 2701 | 2715 | |
| 2702 | -call dqag_2d_inner(f,x,a,b,epsabs,epsrel,key,res,abserr,neval,ier,limit,lenw,last,iwork,work) | |
| 2716 | +call dqag_2d_inner(f,x,a,b,epsabs,epsrel,key,res,abserr,neval,ier,limitw,lenw,last,iwork,work) | |
| 2703 | 2717 | |
| 2704 | 2718 | deallocate(iwork) |
| 2705 | 2719 | deallocate(work) |