!--------------------------------------------------------------------------- !--------------------------------------------------------------------------- !--------------------------------------------------------------------------- subroutine var_bookkeeper(this_var, ring, orb) use cesrv_struct use cesrv_interface use bookkeeper_mod implicit none type (var_struct) :: this_var type (lat_struct) :: ring type (coord_struct) :: orb(0:) real(rp), pointer :: a_ptr integer ie, key logical err_flag ! if (.not. this_var%exists) return if (this_var%makeup_method == no_makeup$) return if (this_var%ix_attrib == 0) return ! EG: init_orb ie = this_var%ix_ele call pointer_to_indexed_attribute(ring%ele(ie), this_var%ix_attrib, .true., a_ptr, err_flag) call set_flags_for_changed_attribute (ring%ele(ie), a_ptr) if (this_var%makeup_method == normal_makeup$) then key = ring%ele(ie)%key if (key == overlay_lord$ .or. key == group_lord$) then call control_bookkeeper (ring, ring%ele(ie)) endif endif call lat_make_mat6 (ring, ie, orb) end subroutine