title: Fortran runtime warning: temporary array
body: <p>I get the fortran runtime warning "An array temporary was created" when running my code (compiled with gfortran) and I would like to know if there is a better way to solve this warning.</p>
  
  <p>My original code is something like this:</p>
  
  <pre><code>allocate(flx_est(lsign,3))
  allocate(flx_err(lsign,3))
  do i=1,lsign
  call combflx_calc(flx_est(i,:),flx_err(i,:))
  enddo
  </code></pre>
  
  <p>Inside the subroutine I define the variables like this:</p>
  
  <pre><code>subroutine combflx_calc(flx_est,flx_err)
  use,intrinsic              :: ISO_Fortran_env, only: real64
  implicit none
  real(real64),intent(inout) :: flx_est(3),flx_err(3)
  </code></pre>
  
  <p><code>flux_est</code> and <code>flx_err</code> vectors may change inside the subroutine depending on several conditions and I need to update their values accordingly.</p>
  
  <p>Fortran does not seem to like this structure. I can solve it defining temporary variables:</p>
  
  <pre><code>tmp_flx_est=flx_est(i,:)
  tmp_flx_err=flx_err(i,:)
  call combflx_calc(tmp_flx_est,tmp_flx_err)
  flx_est(i,:)=tmp_flx_est
  flx_err(i,:)=tmp_flx_err
  </code></pre>
  
  <p>But it seems to me quite a silly way to fix it.</p>
  
  <p>As you may see I'm not an expert with Fortran, so any help is more than welcome.</p>