!------------------------------------------------------------------------ !------------------------------------------------------------------------ !------------------------------------------------------------------------ subroutine register_var (var_type, gvar, units, var, n1, n2, n_last) use cesrv_struct use cesrv_interface implicit none integer :: n1, n2, n_last, n, var_type, n_off, n_next, units type (var_struct) :: var(:) type (v1_var_struct), target :: gvar ! gvar%units = units n_next = n_last + n2 - n1 + 1 call var_ptr_set (gvar%v, var(n_last+1:n_next), n1) n_off = n_last + 1 - n1 do n = n1, n2 var(n+n_off)%v1 => gvar var(n+n_off)%ix_index = n enddo gvar%type = var_type gvar%ix_var = n_off n_last = n_next if (n_last > n_var_maxx) then print *, 'ERROR IN REGISTER_VAR: VAR ARRAY OVERFLOW!' call err_exit endif end subroutine