subroutine write_phase (file_name, u) use cesrv_struct use cesrv_interface implicit none type (universe_struct), target :: u character(140) :: file_name character(20) date_str character(130) comment, comment_out integer i integer save_set ! call date_and_time_stamp(date_str) open (unit=1, file = file_name) !---------------------------------------------------------------------------- ! write file header write (1, *) '&DATA_PARAMETERS' write (1, *) ' file_type = ', "'ALL DATA'" write (1, *) ' lattice = ', "'", trim(logic%lattice), "'" write (1, *) ' data_date = ', "'", date_str, "'" write (1, *) ' comment = ', "'From file: ", trim(file_name), "'" write (1, *) '/END' write (1, *) write (1, *) '&PHASE_PARAMETERS' write (1, *) ' species = 1' write (1, *) ' horiz_freq = ', u%tune%x%d(1)%model/twopi write (1, *) ' vert_freq = ', u%tune%y%d(1)%model/twopi write (1, *) '/END' write (1, *) !---------------------------------------------------------------------------- ! Write data base values to the file write (1, *) write (1, '(a)') '&data_base' call write_this_db (u%db%csr_quad_cur, u%quad_k1) call write_this_db (u%db%csr_qadd_cur, u%quad_k1) call write_this_db (u%db%csr_sext_cur, u%sex_k2) call write_this_db (u%db%csr_sqewquad, u%skew_quad_k1) call write_this_db (u%db%csr_horz_cur, u%hsteer_kick) call write_this_db (u%db%csr_hbnd_cur, u%hsteer_kick) call write_this_db (u%db%und_cntg_cur, u%hsteer_kick) call write_this_db (u%db%und_cntgtrim, u%hsteer_kick) call write_this_db (u%db%csr_vert_cur, u%vsteer_kick) call write_this_db (u%db%und_vert_cur, u%vsteer_kick) write (1, '(a)') '/' !---------------------------------------------------------------------------- ! write data to file write (1, *) write (1, '(a)') '&all_data' do i = 0, ubound(u%orbit%x%d, 1) if (.not. u%orbit%x%d(i)%exists) cycle write (1, '(a, i3, a, 2f14.7, l5)') 'orbit(', i, ') =', & u%orbit%x%d(i)%model, u%orbit%y%d(i)%model, u%orbit%x%d(i)%good_user enddo write (1, *) do i = 0, ubound(u%phase%x%d, 1) if (.not. u%phase%x%d(i)%exists) cycle write (1, '(a, i3, a, 2f14.4, l5)') 'phase(', i, ') =', & u%phase%x%d(i)%model, u%phase%y%d(i)%model, u%phase%x%d(i)%good_user enddo write (1, *) do i = 0, ubound(u%cbar%m11%d, 1) if (.not. u%cbar%m11%d(i)%exists) cycle write (1, '(a, i3, a, f14.7, l5)') 'cbar11(', i, ') =', & u%cbar%m11%d(i)%model, u%cbar%m11%d(i)%good_user write (1, '(a, i3, a, f14.7, l5)') 'cbar12(', i, ') =', & u%cbar%m12%d(i)%model, u%cbar%m12%d(i)%good_user write (1, '(a, i3, a, f14.7, l5)') 'cbar22(', i, ') =', & u%cbar%m22%d(i)%model, u%cbar%m22%d(i)%good_user enddo write (1, '(a)') '/' close (unit = 1) !----------------------------------------------------------------------------- contains subroutine write_this_db (db_ele, v1) type (db_element_struct) db_ele(:) type (v1_var_struct) v1 integer ix, j, vnumbr character(12) name ! name = db_ele(1)%db_node_name db_ele%cu_now = 0 do j = lbound(v1%v, 1), ubound(v1%v, 1) if (.not. v1%v(j)%exists) cycle if (v1%v(j)%dvar_dcu == 0) cycle if (v1%v(j)%db_node_name /= name) cycle ix = v1%v(j)%ix_db db_ele(ix)%cu_now = v1%v(j)%cu_design + (v1%v(j)%model - v1%v(j)%design) / v1%v(j)%dvar_dcu enddo call str_substitute (name, ' ', '_') write (1, '(3x, 2a)') name, ' = ' write (1, '((6x, 10i7))') (db_ele(j)%cu_now, j = 1, vnumbr(db_ele(1)%db_node_name)) end subroutine end subroutine