diff --git a/src/io/io.f90 b/src/io/io.f90 index 8d0b624cc..e00310a1b 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -164,7 +164,7 @@ module subroutine io_dump_particle_info_base(self, param, idx) integer(I4B) :: i character(STRMAX) :: errmsg - !if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then + if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then if (lfirst) then select case(param%out_stat) case('APPEND') @@ -200,15 +200,14 @@ module subroutine io_dump_particle_info_base(self, param, idx) end select close(unit = LUN, err = 667, iomsg = errmsg) - !else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then - if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then call self%write_particle_info(param%nciu) end if return 667 continue - write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + write(*,*) "Error writing particle information file: " // trim(adjustl(errmsg)) call util_exit(FAILURE) end subroutine io_dump_particle_info_base @@ -286,6 +285,8 @@ module subroutine io_dump_system(self, param) else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then dump_param%outfile = trim(adjustl(DUMP_NC_FILE(idx))) dump_param%in_type = NETCDF_DOUBLE_TYPE + dump_param%nciu%id_chunk = self%pl%nbody + self%tp%nbody + dump_param%nciu%time_chunk = 1 end if dump_param%T0 = param%t dump_param%ioutput = 0 @@ -734,7 +735,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) iostat = -1 return end if - if ((param%in_type /= REAL8_TYPE) .and. (param%in_type /= "ASCII")) then + if ((param%in_type /= REAL8_TYPE) .and. (param%in_type /= "ASCII") .and. (param%in_type /= NETCDF_FLOAT_TYPE) .and. (param%in_type /= NETCDF_DOUBLE_TYPE)) then write(iomsg,*) 'Invalid input file type:',trim(adjustl(param%in_type)) iostat = -1 return @@ -947,7 +948,9 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) call io_param_writer_one("OUT_FORM", param%out_form, unit) call io_param_writer_one("OUT_STAT", "APPEND", unit) end if - call io_param_writer_one("PARTICLE_OUT", param%particle_out, unit) + if ((param%out_type /= REAL4_TYPE) .and. (param%out_type /= REAL8_TYPE)) then + call io_param_writer_one("PARTICLE_OUT", param%particle_out, unit) + end if if (param%enc_out /= "") then call io_param_writer_one("ENC_OUT", param%enc_out, unit) end if @@ -1625,7 +1628,7 @@ module function io_read_frame_cb(self, iu, param) result(ierr) return 667 continue - write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + write(*,*) "Error reading central body frame: " // trim(adjustl(errmsg)) call util_exit(FAILURE) end function io_read_frame_cb @@ -1796,6 +1799,8 @@ module subroutine io_read_particle_info_system(self, param) character(STRMAX) :: errmsg type(swiftest_particle_info), allocatable :: tmpinfo + if (.not.((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE))) return ! This subroutine is only necessary for classic binary input files + open(unit = LUN, file = param%particle_out, status = 'OLD', form = 'UNFORMATTED', err = 667, iomsg = errmsg) allocate(tmpinfo, mold=self%cb%info) @@ -2109,6 +2114,8 @@ module subroutine io_write_frame_system(self, param) end if else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + param%nciu%id_chunk = pl%nbody + tp%nbody + param%nciu%time_chunk = param%istep_out / param%istep_dump if (lfirst) then inquire(file=param%outfile, exist=fileExists) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index e49895433..f44193164 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -76,6 +76,8 @@ module swiftest_classes integer(I4B) :: discard_vhy_varid !! NetCDF ID for the heliocentric velocity of the body at the time of discard y variable integer(I4B) :: discard_vhz_varid !! NetCDF ID for the heliocentric velocity of the body at the time of discard z variable integer(I4B) :: discard_body_id_varid !! NetCDF ID for the id of the other body involved in the discard + integer(I4B) :: id_chunk !! Chunk size for the id dimension variables + integer(I4B) :: time_chunk !! Chunk size for the time dimension variables contains procedure :: close => netcdf_close !! Closes an open NetCDF file procedure :: flush => netcdf_flush !! Flushes the current buffer to disk by closing and re-opening the file. diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 2c6a57288..339a652e6 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -99,14 +99,10 @@ module subroutine netcdf_initialize_output(self, param) logical :: fileExists character(len=STRMAX) :: errmsg integer(I4B) :: storage, ndims, i - integer(I4B) :: time_chunk, id_chunk dfill = ieee_value(dfill, IEEE_QUIET_NAN) sfill = ieee_value(sfill, IEEE_QUIET_NAN) - time_chunk = param%istep_out / param%istep_dump - id_chunk = param%maxid - ! Check if the file exists, and if it does, delete it inquire(file=param%outfile, exist=fileExists) if (fileExists) then @@ -130,146 +126,146 @@ module subroutine netcdf_initialize_output(self, param) !! Define the variables call check( nf90_def_var(self%ncid, TIME_DIMNAME, self%out_type, self%time_dimid, self%time_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%time_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%time_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, ID_DIMNAME, NF90_INT, self%id_dimid, self%id_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%id_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%id_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, NPL_VARNAME, NF90_INT, self%time_dimid, self%npl_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%npl_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%npl_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, NTP_VARNAME, NF90_INT, self%time_dimid, self%ntp_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%ntp_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%ntp_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%name_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%name_varid, NF90_CHUNKED, [NAMELEN, id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%name_varid, NF90_CHUNKED, [NAMELEN, self%id_chunk]) ) call check( nf90_def_var(self%ncid, PTYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%ptype_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%ptype_varid, NF90_CHUNKED, [NAMELEN, id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%ptype_varid, NF90_CHUNKED, [NAMELEN, self%id_chunk]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%xhx_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%xhx_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhy_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%xhy_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%xhy_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, XHZ_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%xhz_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%xhz_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, VHX_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%vhx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%vhx_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%vhx_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, VHY_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%vhy_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%vhy_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%vhy_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, VHZ_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%vhz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%vhz_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%vhz_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) end if if ((param%out_form == EL) .or. (param%out_form == XVEL)) then call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%a_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%a_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%a_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%e_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%e_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%e_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%inc_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%inc_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%inc_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%capom_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%capom_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%capom_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%omega_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%omega_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%omega_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%capm_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%capm_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%capm_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) end if call check( nf90_def_var(self%ncid, GMASS_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Gmass_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%Gmass_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%Gmass_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) if (param%lrhill_present) then call check( nf90_def_var(self%ncid, RHILL_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%rhill_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%rhill_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%rhill_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) end if if (param%lclose) then call check( nf90_def_var(self%ncid, RADIUS_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%radius_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%radius_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%radius_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) end if if (param%lrotation) then call check( nf90_def_var(self%ncid, IP1_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Ip1_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%Ip1_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%Ip1_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Ip2_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%Ip2_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%Ip2_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, IP3_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Ip3_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%Ip3_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%Ip3_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, ROTX_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%rotx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%rotx_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%rotx_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, ROTY_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%roty_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%roty_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%roty_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, ROTZ_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%rotz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%rotz_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%rotz_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) end if if (param%ltides) then call check( nf90_def_var(self%ncid, K2_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%k2_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%k2_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%k2_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) call check( nf90_def_var(self%ncid, Q_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Q_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%Q_varid, NF90_CHUNKED, [id_chunk, time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%Q_varid, NF90_CHUNKED, [self%id_chunk, self%time_chunk]) ) end if if (param%lenergy) then call check( nf90_def_var(self%ncid, KE_ORB_VARNAME, self%out_type, self%time_dimid, self%KE_orb_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%KE_orb_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%KE_orb_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, KE_SPIN_VARNAME, self%out_type, self%time_dimid, self%KE_spin_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%KE_spin_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%KE_spin_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, PE_VARNAME, self%out_type, self%time_dimid, self%PE_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%PE_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%PE_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_ORBX_VARNAME, self%out_type, self%time_dimid, self%L_orbx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_orbx_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_orbx_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_ORBY_VARNAME, self%out_type, self%time_dimid, self%L_orby_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_orby_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_orby_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_ORBZ_VARNAME, self%out_type, self%time_dimid, self%L_orbz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_orbz_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_orbz_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_SPINX_VARNAME, self%out_type, self%time_dimid, self%L_spinx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_spinx_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_spinx_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_SPINY_VARNAME, self%out_type, self%time_dimid, self%L_spiny_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_spiny_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_spiny_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_SPINZ_VARNAME, self%out_type, self%time_dimid, self%L_spinz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_spinz_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_spinz_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_ESCAPEX_VARNAME, self%out_type, self%time_dimid, self%L_escapex_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_escapex_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_escapex_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_ESCAPEY_VARNAME, self%out_type, self%time_dimid, self%L_escapey_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_escapey_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_escapey_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, L_ESCAPEZ_VARNAME, self%out_type, self%time_dimid, self%L_escapez_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%L_escapez_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%L_escapez_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, ECOLLISIONS_VARNAME, self%out_type, self%time_dimid, self%Ecollisions_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%Ecollisions_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%Ecollisions_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, EUNTRACKED_VARNAME, self%out_type, self%time_dimid, self%Euntracked_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%Euntracked_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%Euntracked_varid, NF90_CHUNKED, [self%time_chunk]) ) call check( nf90_def_var(self%ncid, GMESCAPE_VARNAME, self%out_type, self%time_dimid, self%GMescape_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%GMescape_varid, NF90_CHUNKED, [time_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%GMescape_varid, NF90_CHUNKED, [self%time_chunk]) ) end if call check( nf90_def_var(self%ncid, STATUS_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%status_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%status_varid, NF90_CHUNKED, [NAMELEN, id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%status_varid, NF90_CHUNKED, [NAMELEN, self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_TYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%origin_type_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_type_varid, NF90_CHUNKED, [NAMELEN, id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_type_varid, NF90_CHUNKED, [NAMELEN, self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_TIME_VARNAME, self%out_type, self%id_dimid, self%origin_time_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_time_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_time_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, COLLISION_ID_VARNAME, self%out_type, self%id_dimid, self%collision_id_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%collision_id_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%collision_id_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_XHX_VARNAME, self%out_type, self%id_dimid, self%origin_xhx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_xhx_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_xhx_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_XHY_VARNAME, self%out_type, self%id_dimid, self%origin_xhy_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_xhy_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_xhy_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_XHZ_VARNAME, self%out_type, self%id_dimid, self%origin_xhz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_xhz_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_xhz_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_VHX_VARNAME, self%out_type, self%id_dimid, self%origin_vhx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_vhx_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_vhx_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_VHY_VARNAME, self%out_type, self%id_dimid, self%origin_vhy_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_vhy_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_vhy_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, ORIGIN_VHZ_VARNAME, self%out_type, self%id_dimid, self%origin_vhz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%origin_vhz_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%origin_vhz_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_TIME_VARNAME, self%out_type, self%id_dimid, self%discard_time_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_time_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_time_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_XHX_VARNAME, self%out_type, self%id_dimid, self%discard_xhx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_xhx_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_xhx_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_XHY_VARNAME, self%out_type, self%id_dimid, self%discard_xhy_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_xhy_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_xhy_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_XHZ_VARNAME, self%out_type, self%id_dimid, self%discard_xhz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_xhz_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_xhz_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_VHX_VARNAME, self%out_type, self%id_dimid, self%discard_vhx_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_vhx_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_vhx_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_VHY_VARNAME, self%out_type, self%id_dimid, self%discard_vhy_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_vhy_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_vhy_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_VHZ_VARNAME, self%out_type, self%id_dimid, self%discard_vhz_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_vhz_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_vhz_varid, NF90_CHUNKED, [self%id_chunk]) ) call check( nf90_def_var(self%ncid, DISCARD_BODY_ID_VARNAME, NF90_INT, self%id_dimid, self%discard_body_id_varid) ) - call check( nf90_def_var_chunking(self%ncid, self%discard_body_id_varid, NF90_CHUNKED, [id_chunk]) ) + call check( nf90_def_var_chunking(self%ncid, self%discard_body_id_varid, NF90_CHUNKED, [self%id_chunk]) ) ! Set fill mode to NaN for all variables call check( nf90_inquire(self%ncid, nVariables=nvar) )