loc_iwork Subroutine

public pure subroutine loc_iwork(m, q, np, msgbi, msgdi, ifix2i, istopi, nnzwi, nppi, idfi, jobi, iprinti, lunerri, lunrpti, nrowi, ntoli, netai, maxiti, niteri, nfevi, njevi, int2i, iranki, ldtti, boundi, liwkmin)

Get storage locations within integer work space.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: m

Number of columns of data in the independent variable.

integer, intent(in) :: q

Number of responses per observation.

integer, intent(in) :: np

Number of function parameters.

integer, intent(out) :: msgbi

Starting location in array iwork of array msgb.

integer, intent(out) :: msgdi

Starting location in array iwork of array msgd.

integer, intent(out) :: ifix2i

Starting location in array iwork of array ifix2.

integer, intent(out) :: istopi

Location in array iwork of variable istop.

integer, intent(out) :: nnzwi

Location in array iwork of variable nnzw.

integer, intent(out) :: nppi

Location in array iwork of variable npp.

integer, intent(out) :: idfi

Location in array iwork of variable idf.

integer, intent(out) :: jobi

Location in array iwork of variable job.

integer, intent(out) :: iprinti

Location in array iwork of variable iprint.

integer, intent(out) :: lunerri

Location in array iwork of variable lunerr.

integer, intent(out) :: lunrpti

Location in array iwork of variable lunrpt.

integer, intent(out) :: nrowi

Location in array iwork of variable nrow.

integer, intent(out) :: ntoli

Location in array iwork of variable ntol.

integer, intent(out) :: netai

Location in array iwork of variable neta.

integer, intent(out) :: maxiti

Location in array iwork of variable maxit.

integer, intent(out) :: niteri

Location in array iwork of variable niter.

integer, intent(out) :: nfevi

Location in array iwork of variable nfev.

integer, intent(out) :: njevi

Location in array iwork of variable njev.

integer, intent(out) :: int2i

Location in array iwork of variable int2.

integer, intent(out) :: iranki

Location in array iwork of variable irank.

integer, intent(out) :: ldtti

Location in array iwork of variable ldtt.

integer, intent(out) :: boundi

Location in array iwork of variable bound.

integer, intent(out) :: liwkmin

Minimum acceptable length of array iwork.


Called by

proc~~loc_iwork~~CalledByGraph proc~loc_iwork loc_iwork proc~access_workspace access_workspace proc~access_workspace->proc~loc_iwork proc~loc_iwork_c loc_iwork_c proc~loc_iwork_c->proc~loc_iwork proc~odr odr proc~odr->proc~loc_iwork proc~odr->proc~access_workspace proc~odr_long_c odr_long_c proc~odr_long_c->proc~odr proc~odr_medium_c odr_medium_c proc~odr_medium_c->proc~odr proc~odr_short_c odr_short_c proc~odr_short_c->proc~odr program~example1 example1 program~example1->proc~odr program~example2 example2 program~example2->proc~odr program~example3 example3 program~example3->proc~odr program~example4 example4 program~example4->proc~odr program~example5 example5 program~example5->proc~odr

Source Code

   pure subroutine loc_iwork &
      (m, q, np, &
       msgbi, msgdi, ifix2i, istopi, &
       nnzwi, nppi, idfi, &
       jobi, iprinti, lunerri, lunrpti, &
       nrowi, ntoli, netai, &
       maxiti, niteri, nfevi, njevi, int2i, iranki, ldtti, &
       boundi, &
       liwkmin)
   !! Get storage locations within integer work space.

      integer, intent(in) :: m
         !! Number of columns of data in the independent variable.
      integer, intent(in) :: q
         !! Number of responses per observation.
      integer, intent(in) :: np
         !! Number of function parameters.
      integer, intent(out) :: msgbi
         !! Starting location in array `iwork` of array `msgb`.
      integer, intent(out) :: msgdi
         !! Starting location in array `iwork` of array `msgd`.
      integer, intent(out) :: ifix2i
         !! Starting location in array `iwork` of array `ifix2`.
      integer, intent(out) :: istopi
         !! Location in array `iwork` of variable `istop`.
      integer, intent(out) :: nnzwi
         !! Location in array `iwork` of variable `nnzw`.
      integer, intent(out) :: nppi
         !! Location in array `iwork` of variable `npp`.
      integer, intent(out) :: idfi
         !! Location in array `iwork` of variable `idf`.
      integer, intent(out) :: jobi
         !! Location in array `iwork` of variable `job`.
      integer, intent(out) :: iprinti
         !! Location in array `iwork` of variable `iprint`.
      integer, intent(out) :: lunerri
         !! Location in array `iwork` of variable `lunerr`.
      integer, intent(out) :: lunrpti
         !! Location in array `iwork` of variable `lunrpt`.
      integer, intent(out) :: nrowi
         !! Location in array `iwork` of variable `nrow`.
      integer, intent(out) :: ntoli
         !! Location in array `iwork` of variable `ntol`.
      integer, intent(out) :: netai
         !! Location in array `iwork` of variable `neta`.
      integer, intent(out) :: maxiti
         !! Location in array `iwork` of variable `maxit`.
      integer, intent(out) :: niteri
         !! Location in array `iwork` of variable `niter`.
      integer, intent(out) :: nfevi
         !! Location in array `iwork` of variable `nfev`.
      integer, intent(out) :: njevi
         !! Location in array `iwork` of variable `njev`.
      integer, intent(out) :: int2i
         !! Location in array `iwork` of variable `int2`.
      integer, intent(out) :: iranki
         !! Location in array `iwork` of variable `irank`.
      integer, intent(out) :: ldtti
         !! Location in array `iwork` of variable `ldtt`.
      integer, intent(out) :: boundi
         !! Location in array `iwork` of variable `bound`.
      integer, intent(out) :: liwkmin
         !! Minimum acceptable length of array `iwork`.

      if (np >= 1 .and. m >= 1) then
         msgbi = 1
         msgdi = msgbi + q*np + 1
         ifix2i = msgdi + q*m + 1
         istopi = ifix2i + np
         nnzwi = istopi + 1
         nppi = nnzwi + 1
         idfi = nppi + 1
         jobi = idfi + 1
         iprinti = jobi + 1
         lunerri = iprinti + 1
         lunrpti = lunerri + 1
         nrowi = lunrpti + 1
         ntoli = nrowi + 1
         netai = ntoli + 1
         maxiti = netai + 1
         niteri = maxiti + 1
         nfevi = niteri + 1
         njevi = nfevi + 1
         int2i = njevi + 1
         iranki = int2i + 1
         ldtti = iranki + 1
         boundi = ldtti + 1
         liwkmin = boundi + np - 1
      else
         msgbi = 1
         msgdi = 1
         ifix2i = 1
         istopi = 1
         nnzwi = 1
         nppi = 1
         idfi = 1
         jobi = 1
         iprinti = 1
         lunerri = 1
         lunrpti = 1
         nrowi = 1
         ntoli = 1
         netai = 1
         maxiti = 1
         niteri = 1
         nfevi = 1
         njevi = 1
         int2i = 1
         iranki = 1
         ldtti = 1
         boundi = 1
         liwkmin = 1
      end if

   end subroutine loc_iwork