example2 Program

Uses

  • program~~example2~~UsesGraph program~example2 example2 module~example2_model example2_model program~example2->module~example2_model module~odrpack odrpack program~example2->module~odrpack module~odrpack_kinds odrpack_kinds program~example2->module~odrpack_kinds module~example2_model->module~odrpack_kinds module~odrpack->module~odrpack_kinds iso_fortran_env iso_fortran_env module~odrpack->iso_fortran_env module~odrpack_kinds->iso_fortran_env

Implicit ODR job.


Calls

program~~example2~~CallsGraph program~example2 example2 proc~odr odr program~example2->proc~odr interface~ddot ddot proc~odr->interface~ddot proc~access_workspace access_workspace proc~odr->proc~access_workspace proc~check_inputs check_inputs proc~odr->proc~check_inputs proc~check_jac check_jac proc~odr->proc~check_jac proc~derstep derstep proc~odr->proc~derstep proc~eta_fcn eta_fcn proc~odr->proc~eta_fcn proc~eval_jac eval_jac proc~odr->proc~eval_jac proc~fctrw fctrw proc~odr->proc~fctrw proc~init_work init_work proc~odr->proc~init_work proc~loc_iwork loc_iwork proc~odr->proc~loc_iwork proc~loc_rwork loc_rwork proc~odr->proc~loc_rwork proc~move_beta move_beta proc~odr->proc~move_beta proc~pack_vec pack_vec proc~odr->proc~pack_vec proc~print_error_inputs print_error_inputs proc~odr->proc~print_error_inputs proc~print_errors print_errors proc~odr->proc~print_errors proc~print_header print_header proc~odr->proc~print_header proc~print_reports print_reports proc~odr->proc~print_reports proc~scale_mat scale_mat proc~odr->proc~scale_mat proc~select_row select_row proc~odr->proc~select_row proc~set_flags set_flags proc~odr->proc~set_flags proc~trust_region trust_region proc~odr->proc~trust_region proc~unpack_vec unpack_vec proc~odr->proc~unpack_vec proc~vcv_beta vcv_beta proc~odr->proc~vcv_beta proc~workspace_dimensions workspace_dimensions proc~odr->proc~workspace_dimensions proc~access_workspace->proc~loc_iwork proc~access_workspace->proc~loc_rwork proc~check_jac_value check_jac_value proc~check_jac->proc~check_jac_value proc~hstep hstep proc~check_jac->proc~hstep proc~derstep->proc~hstep proc~eval_jac->proc~scale_mat proc~eval_jac->proc~unpack_vec proc~jac_cdiff jac_cdiff proc~eval_jac->proc~jac_cdiff proc~jac_fwdiff jac_fwdiff proc~eval_jac->proc~jac_fwdiff proc~set_ifix set_ifix proc~eval_jac->proc~set_ifix proc~fctr fctr proc~fctrw->proc~fctr proc~init_work->proc~set_flags proc~scale_beta scale_beta proc~init_work->proc~scale_beta proc~scale_delta scale_delta proc~init_work->proc~scale_delta proc~move_beta->proc~hstep proc~print_errors->proc~print_error_inputs proc~print_errors->proc~print_header proc~print_error_derivative print_error_derivative proc~print_errors->proc~print_error_derivative proc~print_error_fcn print_error_fcn proc~print_errors->proc~print_error_fcn proc~print_reports->proc~print_header proc~print_reports->proc~set_flags proc~print_report_final print_report_final proc~print_reports->proc~print_report_final proc~print_report_initial print_report_initial proc~print_reports->proc~print_report_initial proc~print_report_iter print_report_iter proc~print_reports->proc~print_report_iter proc~trust_region->proc~scale_mat proc~lcstep lcstep proc~trust_region->proc~lcstep proc~scale_vec scale_vec proc~trust_region->proc~scale_vec dpodi dpodi proc~vcv_beta->dpodi proc~vcv_beta->proc~lcstep proc~check_jac_curv check_jac_curv proc~check_jac_value->proc~check_jac_curv proc~check_jac_zero check_jac_zero proc~check_jac_value->proc~check_jac_zero proc~fpvb fpvb proc~check_jac_value->proc~fpvb proc~fpvd fpvd proc~check_jac_value->proc~fpvd proc~jac_cdiff->proc~derstep proc~jac_cdiff->proc~hstep proc~jac_fwdiff->proc~derstep proc~jac_fwdiff->proc~hstep proc~lcstep->proc~scale_mat proc~lcstep->proc~fctr dchex dchex proc~lcstep->dchex dqrdc dqrdc proc~lcstep->dqrdc dqrsl dqrsl proc~lcstep->dqrsl dtrco dtrco proc~lcstep->dtrco dtrsl dtrsl proc~lcstep->dtrsl interface~drot drot proc~lcstep->interface~drot interface~drotg drotg proc~lcstep->interface~drotg proc~esubi esubi proc~lcstep->proc~esubi proc~solve_trl solve_trl proc~lcstep->proc~solve_trl proc~vevtr vevtr proc~lcstep->proc~vevtr proc~ppf_tstudent ppf_tstudent proc~print_report_final->proc~ppf_tstudent proc~print_report_initial->proc~hstep proc~check_jac_curv->proc~fpvb proc~check_jac_curv->proc~fpvd proc~check_jac_fp check_jac_fp proc~check_jac_curv->proc~check_jac_fp proc~check_jac_zero->proc~fpvb proc~check_jac_zero->proc~fpvd proc~ppf_normal ppf_normal proc~ppf_tstudent->proc~ppf_normal proc~vevtr->proc~solve_trl proc~check_jac_fp->proc~fpvb proc~check_jac_fp->proc~fpvd

Variables

Type Attributes Name Initial
integer :: i
integer :: iprint
integer :: j
integer :: job
integer :: lundata
integer :: lunrpt
integer :: m
integer :: n
integer :: np
integer :: q
real(kind=wp), allocatable :: beta(:)
real(kind=wp), allocatable :: x(:,:)
real(kind=wp), allocatable :: y(:,:)

Source Code

program example2
   !! Implicit ODR job.

   use odrpack, only: odr
   use odrpack_kinds, only: wp
   use example2_model, only: fcn
   implicit none

   ! Variable declarations
   integer :: i, iprint, j, job, lundata, lunrpt, m, n, np, q
   real(kind=wp), allocatable :: beta(:), x(:, :), y(:, :)

   ! Set up report files
   open (newunit=lunrpt, file='./example/report2.dat')

   ! Read problem dimensions
   open (newunit=lundata, file='./example/data2.dat')
   read (lundata, fmt=*) n, m, np, q

   ! Allocate arrays
   allocate (beta(np), x(n, m), y(n, q))

   ! Read problem data
   read (lundata, fmt=*) (beta(i), i=1, np)
   do i = 1, n
      read (lundata, fmt=*) (x(i, j), j=1, m)
   end do
   close (lundata)

   ! Specify task: Implicit orthogonal distance regression
   !       With forward finite difference derivatives
   !       Covariance matrix constructed with recomputed derivatives
   !       DELTA initialized to zero
   !       Not a restart
   job = 00001
   iprint = 2002

   ! Compute solution
   call odr(fcn, n, m, q, np, beta, y, x, &
            job=job, lunerr=lunrpt, lunrpt=lunrpt, iprint=iprint)

   close (lunrpt)

end program example2