Silverfrost Forums

Welcome to our forums

Fortran equivalent to linspace

22 Dec 2023 8:28 #30886

Hello

Is there an efficient method to generate linearly-spaced values, i.e. using start, end and number of required values? An example would be start=0, end=100, number of values=1000

This works but not very elegant:

program main
  implicit none
  real,allocatable,dimension(:) :: vec
  real                          :: a,inc
  integer                       :: n ,i
  a = 0.    ! initial value
  inc = 0.5 ! increment value
  n = 100   ! number of values  
  allocate(vec(n))
  vec = [(a + (i-1) * inc, i=1,n)]  ! array constructor
  write(*,'(11f7.2)') vec
end program main

A simple function like: linspace(start, end, number_of_values) would be great!

Lester

Please login to reply.