Commit 0e2af95a authored by Zolnierczuk, Piotr's avatar Zolnierczuk, Piotr
Browse files

remove redundant code from instrument_config

more informative error messages
parent 93b74ac0
Loading
Loading
Loading
Loading
+11 −46
Original line number Diff line number Diff line
@@ -111,62 +111,27 @@ contains
    !! from new_com to drspine
    subroutine get_instrument_vars
        !
        logical          :: lnew
        integer :: old_id, ierr

        ! instrument change
        call extract_intval("i.instrument    ", instrument_parameters%id, lnew)
        if (lnew) then
        old_id = instrument_parameters%id
        call extract("i.instrument    ", instrument_parameters%id, ierr)
        if (ierr==0 .and. old_id/=instrument_parameters%id) then
            call configure_instrument_defaults(instrument_parameters%id)
            call msg_info('instrument_config',&
                'new instrument '//trim(instrument_name(instrument_parameters%id)))
        end if

        ! normalization counter
        call extract_intval("i.norm_counter  ", instrument_parameters%norm_counter)
        call extract("i.norm_counter  ", instrument_parameters%norm_counter, ierr)

        ! detector configuration
        call extract_dblval("i.det.src       ", instrument_parameters%source%distance%value, lnew)
        call extract_dblval("i.det.sam       ", instrument_parameters%detector%distance%value, lnew)
        call extract_dblval("i.det.size_x    ", instrument_parameters%detector%detsize%size_x, lnew)
        call extract_dblval("i.det.size_y    ", instrument_parameters%detector%detsize%size_y, lnew)
        call extract_dblval("i.det.center_x  ", instrument_parameters%detector%detsize%center_x, lnew)
        call extract_dblval("i.det.center_y  ", instrument_parameters%detector%detsize%center_y, lnew)
        call extract("i.det.src       ", instrument_parameters%source%distance%value, ierr)
        call extract("i.det.sam       ", instrument_parameters%detector%distance%value, ierr)
        call extract("i.det.size_x    ", instrument_parameters%detector%detsize%size_x, ierr)
        call extract("i.det.size_y    ", instrument_parameters%detector%detsize%size_y, ierr)
        call extract("i.det.center_x  ", instrument_parameters%detector%detsize%center_x, ierr)
        call extract("i.det.center_y  ", instrument_parameters%detector%detsize%center_y, ierr)
    end subroutine get_instrument_vars

    subroutine extract_dblval(cname, dval, inew)
        character(len=*), intent(in)     :: cname
        real(kind=DBL), intent(inout)    :: dval
        logical, intent(inout), optional :: inew
        !
        real(kind=DBL) :: newval
        integer :: ier
        !
        if (present(inew)) inew=.false.
        call extract(cname, newval, ier)
        if (ier==0) then
            if (present(inew)) then
                inew = (newval /= dval)
            end if
            dval = newval
        end if
    end subroutine extract_dblval

    subroutine extract_intval(cname, ival, inew)
        character(len=*), intent(in)     :: cname
        integer, intent(inout)           :: ival
        logical, intent(inout), optional :: inew
        !
        real(kind=DBL) :: newval
        integer :: ier
        !
        if (present(inew)) inew=.false.
        call extract(cname, newval, ier)
        if (ier==0) then
            if (present(inew)) then
                inew = (int(newval) /= ival)
            end if
            ival = int(newval)
        end if
    end subroutine extract_intval

end module instrument_config
+1 −1
Original line number Diff line number Diff line
@@ -468,7 +468,7 @@ contains

    select case (errcode)
    case (990)
       call msg_error('readdatErrHandler', 'wrong instrument', ERROR_DATA_READ)
       call msg_error('readdatErrHandler', 'wrong instrument selected', ERROR_DATA_READ)

    case (991)
       call msg_error('readdatErrHandler', 'while trying to open file', ERROR_FILE_ACCESS)