terminat0r
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: use netcdf character (len = *), parameter :: td_file_name = "calculation_state_td.nc" integer :: td_file_id integer :: nz_dimid integer :: nx_dimid integer :: nr_dimid real(rdp) :: time_t integer :: zero_dimid integer :: dimids(3) complex(cdp), dimension(nz,nx,nr) :: phi real(rdp), dimension(nz,nx,nr) :: phir,phim nf90_create(td_file_name, nf90_clobber, td_file_id) ! Define the dimensions. NetCDF will hand back an ID for each. nf90_def_dim(td_file_id, "nz", nz, nz_dimid) nf90_def_dim(td_file_id, "nx", nx, nx_dimid) nf90_def_dim(td_file_id, "nr", nr, nr_dimid) nf90_def_dim(td_file_id, "zero", 0, zero_dimid) dimids = [ nz_dimid, nx_dimid , nr_dimid ] !phi nf90_def_var(td_file_id, "phi_re", NF90_DOUBLE, dimids, phi_re_varid) nf90_def_var(td_file_id, "phi_im", NF90_DOUBLE, dimids, phi_im_varid) !time_t nf90_def_var(td_file_id, "time_t", NF90_DOUBLE, zero_dimid, time_t_varid) nf90_enddef(td_file_id) nf90_put_var(td_file_id, phi_re_varid, real(phi,kind=rdp)) nf90_put_var(td_file_id, phi_im_varid, aimag(phi)) nf90_put_var(td_file_id, time_t_varid, time_t) nf90_close(td_file_id) write(*,*) "done!" | читаю Код: nf90_open(td_file_name, nf90_nowrite, td_file_id),"load_td_calculation_state, nf90_open" ) nf90_inq_varid(td_file_id, "phir", phi_re_varid) nf90_inq_varid(td_file_id, "phim", phi_im_varid) nf90_inq_varid(td_file_id, "time_t", time_t_varid) ! Read the data. Use tempo aux arrays phir phim for re and im parts of phi nf90_get_var(td_file_id, phi_re_varid, phir) nf90_get_var(td_file_id, phi_im_varid, phim) phi=cmplx(phir,phim, kind=cdp) | |