check_indexing Subroutine

public subroutine check_indexing(indexing, strict_mode, use_ij_indexing, use_xy_indexing)

Arguments

Type IntentOptional Attributes Name
type(meshgrid_indexing), intent(in), optional :: indexing
logical, intent(in), optional :: strict_mode
logical, intent(out) :: use_ij_indexing
logical, intent(out) :: use_xy_indexing

Source Code

    subroutine check_indexing(indexing, strict_mode, use_ij_indexing, use_xy_indexing)
        type(meshgrid_indexing), optional, intent(in) :: indexing
        logical, optional, intent(in) :: strict_mode
        logical, intent(out) :: use_ij_indexing, use_xy_indexing
        logical :: is_strict

        is_strict = .false.
        if (present(strict_mode)) is_strict = strict_mode

        use_ij_indexing = .false.
        use_xy_indexing = .false.
        if (present(indexing)) then
            if (indexing%id == INDEXING_IJ%id) then
                use_ij_indexing = .true.
            else if (indexing%id == INDEXING_XY%id) then
                use_xy_indexing = .true.
            else
                if (is_strict) then
                    error stop "Error: Unknown indexing%id in meshgrid"
                else
                    use_ij_indexing = .true.
                end if
            end if
        else
            use_ij_indexing = .true.
        end if
    end subroutine check_indexing