ນີ້ແມ່ນຄໍາສັ່ງ ncgen3 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
ncgen3 - ຈາກໄຟລ໌ CDL ສ້າງ netCDF classic ຫຼື 64 bit classicfile, ໂປຣແກຣມ C, ຫຼື
ໂຄງການ Fortran
ສະຫຼຸບສັງລວມ
ncgen3 [-b] [-c] [-f] [-k kind_of_file] [-x] [-n] [-o netcdf_filename] input_file
ລາຍລະອຽດ
ncgen3 ສ້າງໄຟລ໌ netCDF, ຫຼືລະຫັດແຫຼ່ງ C ຫຼື Fortran ເພື່ອສ້າງ netCDF
ໄຟລ໌. ການປ້ອນຂໍ້ມູນໃສ່ ncgen3 ແມ່ນຄໍາອະທິບາຍຂອງໄຟລ໌ netCDF ໃນພາສາຂະຫນາດນ້ອຍທີ່ເອີ້ນວ່າ
CDL (ພາສາແບບຟອມຂໍ້ມູນທົ່ວໄປຂອງເຄືອຂ່າຍ), ອະທິບາຍຂ້າງລຸ່ມນີ້. ຖ້າບໍ່ມີທາງເລືອກທີ່ລະບຸໄວ້ໃນ
ການຮຽກຮ້ອງ ncgen3, ມັນພຽງແຕ່ກວດເບິ່ງ syntax ຂອງໄຟລ໌ CDL ວັດສະດຸປ້ອນ, ການຜະລິດຄວາມຜິດພາດ
ຂໍ້ຄວາມສໍາລັບການລະເມີດໃດໆຂອງ syntax CDL. ທາງເລືອກອື່ນສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງ
ໄຟລ໌ netCDF ທີ່ສອດຄ້ອງກັນ, ເພື່ອສ້າງໂຄງການ C ທີ່ໃຊ້ອິນເຕີເຟດ netCDF C
ສ້າງໄຟລ໌ netCDF, ຫຼືເພື່ອສ້າງໂຄງການ Fortran ທີ່ໃຊ້ netCDF Fortran
ການໂຕ້ຕອບເພື່ອສ້າງໄຟລ໌ netCDF ດຽວກັນ.
ncgen3 ອາດຈະຖືກນໍາໃຊ້ກັບໂຄງການຄູ່ ncdump ເພື່ອປະຕິບັດບາງການດໍາເນີນງານງ່າຍດາຍກ່ຽວກັບ
ໄຟລ໌ netCDF. ຕົວຢ່າງ, ເພື່ອປ່ຽນຊື່ມິຕິໃນໄຟລ໌ netCDF, ໃຫ້ໃຊ້ ncdump ເພື່ອໃຫ້ໄດ້ຮັບ
ສະບັບ CDL ຂອງໄຟລ໌ netCDF, ແກ້ໄຂໄຟລ໌ CDL ເພື່ອປ່ຽນຊື່ຂອງຂະຫນາດ,
ແລະນໍາໃຊ້ ncgen3 ເພື່ອສ້າງໄຟລ໌ netCDF ທີ່ສອດຄ້ອງກັນຈາກໄຟລ໌ CDL ທີ່ຖືກດັດແກ້.
OPTIONS
-b ສ້າງໄຟລ໌ (binary) netCDF. ຖ້າ -o ທາງເລືອກແມ່ນບໍ່ມີ, ຊື່ໄຟລ໌ເລີ່ມຕົ້ນ
ຈະຖືກສ້າງຈາກຊື່ netCDF (ລະບຸໄວ້ຫຼັງຈາກ netcdf ຄໍາສໍາຄັນໃນ
input) ໂດຍການໃສ່ສ່ວນຂະຫຍາຍ `.nc'. ຖ້າໄຟລ໌ມີຢູ່ແລ້ວກັບ
ຊື່ທີ່ລະບຸ, ມັນຈະຖືກຂຽນທັບ.
-c ສ້າງ C ລະຫັດແຫຼ່ງທີ່ຈະສ້າງໄຟລ໌ netCDF ທີ່ກົງກັບ netCDF
ສະເພາະ. ລະຫັດແຫຼ່ງ C ຖືກຂຽນເປັນຜົນຜະລິດມາດຕະຖານ.
-f ສ້າງ ຟໍຣັນ ລະຫັດແຫຼ່ງທີ່ຈະສ້າງໄຟລ໌ netCDF ທີ່ກົງກັບ netCDF
ສະເພາະ. ລະຫັດແຫຼ່ງ Fortran ຖືກຂຽນເປັນຜົນຜະລິດມາດຕະຖານ.
-o netcdf_file
ຊື່ສໍາລັບໄຟລ໌ netCDF binary ສ້າງ. ຖ້າຕົວເລືອກນີ້ຖືກກໍານົດ, ມັນຫມາຍຄວາມວ່າ
ໄດ້ "-b" ທາງເລືອກ. (ທາງເລືອກນີ້ແມ່ນມີຄວາມຈໍາເປັນເພາະວ່າໄຟລ໌ netCDF ບໍ່ສາມາດຂຽນໄດ້
ໂດຍກົງກັບຜົນຜະລິດມາດຕະຖານ, ເນື່ອງຈາກວ່າຜົນຜະລິດມາດຕະຖານແມ່ນບໍ່ສາມາດຊອກຫາໄດ້.)
-k kind_of_file
ການນໍາໃຊ້ -k2 ຫຼື -k "64-bit offset" ກໍານົດວ່າໄຟລ໌ທີ່ສ້າງຂຶ້ນ (ຫຼືໂຄງການ) ຄວນ
ໃຊ້ເວີຊັນ 2 ຂອງຮູບແບບທີ່ນຳໃຊ້ການຊົດເຊີຍໄຟລ໌ 64-bit. ຄ່າເລີ່ມຕົ້ນແມ່ນໃຊ້
ຮຸ່ນ 1 ("ຄລາສສິກ") ຮູບແບບທີ່ມີການຊົດເຊີຍໄຟລ໌ 32-bit, ເຖິງແມ່ນວ່ານີ້ຈໍາກັດ
ຂະຫນາດຂອງໄຟລ໌ netCDF, ຕົວແປ, ແລະບັນທຶກກັບຂະຫນາດທີ່ສະຫນັບສະຫນູນໂດຍ
ຮູບແບບຄລາສສິກ. (NetCDF-4 ຈະສະຫນັບສະຫນູນປະເພດເພີ່ມເຕີມຂອງໄຟລ໌ netCDF,
"netCDF-4" ແລະ "netCDF-4 ແບບຄລາສສິກ".) ຫມາຍເຫດ: -v ຍັງຖືກຍອມຮັບເພື່ອຫມາຍຄວາມວ່າ.
ສິ່ງດຽວກັນກັບ -k ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບຄືນໄປບ່ອນ, ແຕ່ -k ແມ່ນມັກ, ເພື່ອໃຫ້ກົງກັບ
ທາງເລືອກ ncdump ທີ່ສອດຄ້ອງກັນ.
-x ຢ່າເລີ່ມຕົ້ນຂໍ້ມູນດ້ວຍຄ່າຕື່ມ. ນີ້ສາມາດເລັ່ງການສ້າງ netCDF ຂະຫນາດໃຫຍ່
ໄຟລ໌ຢ່າງຫຼວງຫຼາຍ, ແຕ່ຕໍ່ມາພະຍາຍາມອ່ານຂໍ້ມູນທີ່ບໍ່ໄດ້ຂຽນຈາກໄຟລ໌ທີ່ສ້າງຂຶ້ນ
ຈະບໍ່ຖືກກວດພົບໄດ້ງ່າຍ.
ຕົວຢ່າງ
ກວດເບິ່ງ syntax ຂອງໄຟລ໌ CDL `foo.cdl':
ncgen3 foo.cdl
ຈາກໄຟລ໌ CDL `foo.cdl', ສ້າງໄຟລ໌ netCDF binary ທຽບເທົ່າທີ່ມີຊື່ວ່າ `x.nc':
ncgen3 -o x.nc foo.cdl
ຈາກໄຟລ໌ CDL `foo.cdl', ສ້າງໂຄງການ C ທີ່ມີຟັງຊັນ netCDF
ການຮຽກຮ້ອງທີ່ຈໍາເປັນເພື່ອສ້າງໄຟລ໌ netCDF binary ທຽບເທົ່າທີ່ມີຊື່ວ່າ `x.nc':
ncgen3 -c -o x.nc foo.cdl
ການນໍາໃຊ້
CDL syntax Summary
ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງ syntax CDL, ອະທິບາຍໄຟລ໌ netCDF ທີ່ມີຂະຫນາດທີ່ມີຊື່ຫຼາຍ.
(lat, lon, ແລະເວລາ), ຕົວແປ (Z, t, p, rh, lat, lon, ເວລາ), ຄຸນລັກສະນະຂອງຕົວແປ (units,
long_name, valid_range, _FillValue), ແລະບາງຂໍ້ມູນ. ຄໍາສໍາຄັນ CDL ຢູ່ໃນຕົວພິມໃຫຍ່. (ນີ້
ຕົວຢ່າງແມ່ນມີຈຸດປະສົງເພື່ອສະແດງໃຫ້ເຫັນ syntax; ໄຟລ໌ CDL ທີ່ແທ້ຈິງຈະມີຄວາມສົມບູນກວ່າ
ກໍານົດຄຸນລັກສະນະເພື່ອໃຫ້ຂໍ້ມູນສາມາດອະທິບາຍຕົນເອງຢ່າງສົມບູນ.)
netcdf foo { // ຕົວຢ່າງ netCDF specification ໃນ CDL
ຂະຫນາດ:
lat = 10, ລອນ = 5, ເວລາ = ບໍ່ຈໍາກັດ ;
ຕົວແປ:
ຍາວ lat(lat), lon(lon), ເວລາ(ເວລາ);
float Z(ເວລາ,lat,lon), t(ເວລາ,lat,lon);
double p(ເວລາ,lat,lon);
ຍາວ rh(ເວລາ,lat,lon);
// ຄຸນລັກສະນະທີ່ປ່ຽນແປງໄດ້
lat:long_name = "latitude";
lat:units = "degrees_north";
lon:long_name = "ເສັ້ນແວງ";
lon:units = "degrees_east";
time:units = "ວິນາທີນັບຕັ້ງແຕ່ 1992-1-1 00:00:00";
Z:units = "ເຄື່ອງວັດແທກພູມສາດ";
Z:valid_range = 0., 5000.;
p:_FillValue = -9999.;
rh:_FillValue = -1;
ຂໍ້ມູນ:
lat = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90;
lon = −140, −118, −96, −84, −52;
}
ຖະແຫຼງການ CDL ທັງໝົດຖືກຢຸດໂດຍເຄື່ອງໝາຍຈຸດ. ສາມາດໃຊ້ຊ່ອງຫວ່າງ, ແຖບ ແລະແຖວໃໝ່ໄດ້
freely ສໍາລັບການອ່ານໄດ້. ຄຳເຫັນອາດຈະປະຕິບັດຕາມຕົວອັກສອນ `//' ໃນແຖວໃດນຶ່ງ.
ຄໍາອະທິບາຍ CDL ປະກອບດ້ວຍສາມສ່ວນທາງເລືອກ: ຂະຫນາດ, ຕົວແປ, ແລະ ຂໍ້ມູນ,
ເລີ່ມຕົ້ນດ້ວຍຄໍາສໍາຄັນ ຂະ ໜາດ:, ຕົວແປ:, ແລະ ຂໍ້ມູນ, ຕາມລໍາດັບ. ຕົວແປ
ພາກສ່ວນອາດຈະປະກອບດ້ວຍ ຕົວແປ ການປະກາດ ແລະ ຄຸນລັກສະນະ ວຽກມອບ ໝາຍ.
netCDF dimension ຖືກນໍາໃຊ້ເພື່ອກໍານົດຮູບຮ່າງຂອງຫນຶ່ງຫຼືຫຼາຍຂອງ multidimensional
ຕົວແປທີ່ມີຢູ່ໃນໄຟລ໌ netCDF. ຂະຫນາດ netCDF ມີຊື່ແລະຂະຫນາດ. ທີ່
ຫນຶ່ງໃນຂະຫນາດສ່ວນໃຫຍ່ໃນໄຟລ໌ netCDF ສາມາດມີ ບໍ່ຈໍາກັດ ຂະຫນາດ, ຊຶ່ງຫມາຍຄວາມວ່າຕົວແປ
ການນໍາໃຊ້ຂະຫນາດນີ້ສາມາດຂະຫຍາຍຕົວກັບຄວາມຍາວໃດ (ເຊັ່ນ: ຈໍານວນບັນທຶກໃນໄຟລ໌).
A ຕົວແປ ເປັນຕົວແທນຂອງອະເຣຫຼາຍມິຕິຂອງຄ່າຂອງປະເພດດຽວກັນ. ຕົວແປມີ
ຊື່, ປະເພດຂໍ້ມູນ ແລະຮູບຮ່າງທີ່ອະທິບາຍໂດຍລາຍການຂະໜາດຂອງມັນ. ແຕ່ລະຕົວແປອາດຈະ
ຍັງມີຄວາມກ່ຽວຂ້ອງ attributes (ເບິ່ງຂ້າງລຸ່ມນີ້) ເຊັ່ນດຽວກັນກັບຄ່າຂໍ້ມູນ. ຊື່, ປະເພດຂໍ້ມູນ,
ແລະຮູບຮ່າງຂອງຕົວແປແມ່ນລະບຸໂດຍການປະກາດຂອງມັນຢູ່ໃນ ຕົວແປ ພາກສ່ວນຂອງ CDL
ລາຍລະອຽດ. ຕົວແປອາດມີຊື່ດຽວກັນກັບມິຕິ; ໂດຍສົນທິສັນຍາດັ່ງກ່າວ
ຕົວແປແມ່ນໜຶ່ງມິຕິ ແລະປະກອບດ້ວຍຈຸດປະສານງານຂອງມິຕິທີ່ມັນຕັ້ງຊື່.
ຂະຫນາດບໍ່ຈໍາເປັນຕ້ອງມີຕົວແປທີ່ສອດຄ້ອງກັນ.
netCDF ຄຸນລັກສະນະ ມີຂໍ້ມູນກ່ຽວກັບຕົວແປ netCDF ຫຼືກ່ຽວກັບ netCDF ທັງໝົດ
ຊຸດຂໍ້ມູນ. ຄຸນລັກສະນະໄດ້ຖືກນໍາໃຊ້ເພື່ອລະບຸຄຸນສົມບັດເຊັ່ນຫົວຫນ່ວຍ, ຄຸນຄ່າພິເສດ, ສູງສຸດ
ແລະຄ່າຕ່ໍາສຸດທີ່ຖືກຕ້ອງ, ປັດໄຈການຂະຫຍາຍ, ການຊົດເຊີຍ, ແລະພາລາມິເຕີ. ຂໍ້ມູນຄຸນສົມບັດ
ແມ່ນສະແດງໂດຍຄ່າດຽວ ຫຼື array ຂອງຄ່າ. ຕົວຢ່າງ, "ຫົວໜ່ວຍ" ແມ່ນຄຸນລັກສະນະ
ສະແດງໂດຍ array ຕົວອັກສອນເຊັ່ນ "celsius". ຄຸນສົມບັດມີສ່ວນກ່ຽວຂ້ອງ
ຕົວແປ, ຊື່, ປະເພດຂໍ້ມູນ, ຄວາມຍາວ, ແລະຄ່າ. ກົງກັນຂ້າມກັບຕົວແປທີ່ເປັນ
ຈຸດປະສົງສໍາລັບຂໍ້ມູນ, ຄຸນລັກສະນະແມ່ນມີຈຸດປະສົງສໍາລັບ metadata (ຂໍ້ມູນກ່ຽວກັບຂໍ້ມູນ).
ໃນ CDL, ຄຸນລັກສະນະແມ່ນຖືກກໍານົດໂດຍຕົວແປແລະຊື່ຄຸນລັກສະນະ, ແຍກໂດຍ `:'. ມັນ
ເປັນໄປໄດ້ທີ່ຈະກໍານົດ ທົ່ວໂລກ ຄຸນລັກສະນະທີ່ບໍ່ໄດ້ກ່ຽວຂ້ອງກັບຕົວແປໃດໆກັບ netCDF ເປັນ
ທັງໝົດໂດຍໃຊ້ `:' ກ່ອນຊື່ຄຸນລັກສະນະ. ປະເພດຂໍ້ມູນຂອງຄຸນລັກສະນະໃນ CDL ແມ່ນ
ໄດ້ມາຈາກປະເພດຂອງຄ່າທີ່ມອບໃຫ້ມັນ. ຄວາມຍາວຂອງຄຸນລັກສະນະແມ່ນ
ຈໍານວນຂອງຄ່າຂໍ້ມູນທີ່ໄດ້ກໍານົດໃຫ້ມັນ, ຫຼືຈໍານວນຂອງຕົວອັກສອນໃນຕົວອັກສອນ
ມອບຫມາຍໃຫ້ມັນ. ຫຼາຍຄ່າຖືກມອບໝາຍໃຫ້ກັບຄຸນລັກສະນະທີ່ບໍ່ແມ່ນຕົວອັກສອນໂດຍການແຍກອອກ
ຄ່າທີ່ມີເຄື່ອງໝາຍຈຸດ. ຄ່າທັງໝົດທີ່ກຳນົດໃຫ້ກັບຄຸນສົມບັດຈະຕ້ອງເປັນປະເພດດຽວກັນ.
ຊື່ສໍາລັບຂະຫນາດ CDL, ຕົວແປ, ແລະຄຸນລັກສະນະຕ້ອງເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ
ຕົວອັກສອນ ຫຼື `_', ແລະຕົວອັກສອນຕໍ່ໆມາອາດເປັນຕົວເລກ ຫຼື `_' ຫຼື `-'.
ທາງເລືອກ ຂໍ້ມູນ ພາກສ່ວນຂອງສະເພາະ CDL ແມ່ນບ່ອນທີ່ຕົວແປ netCDF ອາດຈະເປັນ
ເລີ່ມຕົ້ນ. syntax ຂອງການເລີ່ມຕົ້ນແມ່ນງ່າຍດາຍ: ຊື່ຕົວແປ, ເຄື່ອງຫມາຍເທົ່າກັບ,
ແລະລາຍຊື່ຄົງທີ່ທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ (ອາດຈະຖືກແຍກອອກດ້ວຍຍະຫວ່າງ, ແຖບ ແລະແຖວໃໝ່)
ສິ້ນສຸດດ້ວຍ semicolon. ສໍາລັບອະເຣຫຼາຍມິຕິ, ມິຕິສຸດທ້າຍແຕກຕ່າງກັນ
ໄວທີ່ສຸດ. ດັ່ງນັ້ນຄໍາສັ່ງແຖວແທນທີ່ຈະເປັນລໍາດັບຖັນແມ່ນໃຊ້ສໍາລັບ matrices. ຖ້າຄ່າຫນ້ອຍລົງ
ໄດ້ຖືກສະຫນອງຫຼາຍກ່ວາຄວາມຈໍາເປັນເພື່ອຕື່ມຂໍ້ມູນໃສ່ຕົວແປ, ມັນຖືກຂະຫຍາຍດ້ວຍປະເພດຂຶ້ນກັບ
'ຄ່າຕື່ມ', ເຊິ່ງສາມາດຖືກລົບລ້າງໂດຍການສະຫນອງຄ່າສໍາລັບຕົວແປທີ່ໂດດເດັ່ນ
ຄຸນລັກສະນະທີ່ມີຊື່ວ່າ `_FillValue'. ປະເພດຂອງຄ່າຄົງທີ່ບໍ່ຈໍາເປັນຕ້ອງກົງກັບປະເພດທີ່ປະກາດໄວ້
ຕົວແປ; ການບີບບັງຄັບແມ່ນເຮັດເພື່ອປ່ຽນຈຳນວນເຕັມເປັນຈຸດລອຍ, ຕົວຢ່າງ. ໄດ້
ຄົງທີ່ `_' ສາມາດຖືກໃຊ້ເພື່ອກຳນົດຄ່າຕື່ມສຳລັບຕົວແປ.
Primitive ຂໍ້ມູນ ປະເພດ
char ລັກສະນະ
byte ຂໍ້ມູນ 8-bit
ສັ້ນ ຈຳນວນເຕັມທີ່ເຊັນ 16-bit
ຍາວ ຈຳນວນເຕັມທີ່ເຊັນ 32-bit
int (ຄໍາສັບຄ້າຍຄື ຍາວ)
float IEEE ຈຸດເລື່ອນຄວາມແມ່ນຍໍາດຽວ (32 ບິດ)
ທີ່ແທ້ຈິງ (ຄໍາສັບຄ້າຍຄື float)
double IEEE ຈຸດເລື່ອນຄວາມແມ່ນຍໍາສອງເທົ່າ (64 ບິດ)
ຍົກເວັ້ນປະເພດຂໍ້ມູນເພີ່ມ byte ແລະການຂາດການ ລົງນາມ, CDL ສະຫນັບສະຫນູນດຽວກັນ
ປະເພດຂໍ້ມູນ primitive ເປັນ C. ຊື່ສໍາລັບປະເພດຂໍ້ມູນເບື້ອງຕົ້ນແມ່ນຄໍາທີ່ສະຫງວນໄວ້ໃນ
CDL, ດັ່ງນັ້ນຊື່ຂອງຕົວແປ, ຂະຫນາດ, ແລະຄຸນລັກສະນະຕ້ອງບໍ່ແມ່ນຊື່ປະເພດ. ໃນ
ການປະກາດ, ຊື່ປະເພດອາດຈະຖືກລະບຸໄວ້ໃນຕົວພິມໃຫຍ່ຫຼືຕ່ໍາ.
Bytes ແຕກຕ່າງຈາກຕົວອັກສອນທີ່ພວກມັນມີຈຸດປະສົງເພື່ອເກັບຂໍ້ມູນເຕັມແປດບິດ,
ແລະ zero byte ບໍ່ມີຄວາມສໍາຄັນພິເສດ, ຍ້ອນວ່າມັນເຮັດສໍາລັບຂໍ້ມູນຕົວອັກສອນ. ncgen3
ປ່ຽນແປງ byte ປະກາດຫາ char ປະກາດໃນລະຫັດ C ຜົນຜະລິດແລະກັບ
ບໍ່ເປັນປົກກະຕິ ບໍລິສັດ BYTE ການປະກາດໃນລະຫັດ Fortran ຜົນຜະລິດ.
ສັ້ນສາມາດຖືຄ່າລະຫວ່າງ -32768 ແລະ 32767. ncgen3 ປ່ຽນແປງ ສັ້ນ ປະກາດຫາ
ສັ້ນ ການປະກາດໃນລະຫັດ C ຜົນຜະລິດແລະບໍ່ໄດ້ມາດຕະຖານ INTEger*2 ຖະແຫຼງການໃນ
ອອກລະຫັດ Fortran.
Longs ສາມາດຖືຄ່າລະຫວ່າງ -2147483648 ແລະ 2147483647. ncgen3 ປ່ຽນແປງ ຍາວ
ປະກາດຫາ ຍາວ ປະກາດໃນລະຫັດ C ຜົນຜະລິດແລະເພື່ອ ບໍລິສັດ INTEGER ຖະແຫຼງການໃນ
ອອກລະຫັດ Fortran. int ແລະ integer ຖືກຍອມຮັບເປັນຄໍາສັບຄ້າຍຄື ຍາວ ໃນ CDL
ຖະແຫຼງການ. ໃນປັດຈຸບັນທີ່ມີເວທີທີ່ມີການສະແດງ 64-bit ສໍາລັບ C longs, ມັນ
ອາດຈະດີກວ່າທີ່ຈະໃຊ້ int ຄໍາສັບຄ້າຍຄືເພື່ອຫຼີກເວັ້ນການສັບສົນ.
Floats ສາມາດເກັບຄ່າລະຫວ່າງປະມານ -3.4+38 ແລະ 3.4+38. ການເປັນຕົວແທນພາຍນອກຂອງພວກເຂົາແມ່ນ
ເປັນ 32-bit IEEE ປົກກະຕິຕົວເລກຈຸດລອຍຕົວແບບດຽວ. ncgen3 ປ່ຽນແປງ float
ປະກາດຫາ float ປະກາດໃນລະຫັດ C ຜົນຜະລິດແລະເພື່ອ REAL ຖະແຫຼງການໃນຜົນຜະລິດ
ລະຫັດ Fortran. ທີ່ແທ້ຈິງ ຖືກຍອມຮັບເປັນຄໍາສັບຄ້າຍຄື float ໃນການປະກາດ CDL.
Doubles ສາມາດຖືຄ່າລະຫວ່າງປະມານ -1.7+308 ແລະ 1.7+308. ການເປັນຕົວແທນພາຍນອກຂອງພວກເຂົາ
ແມ່ນເປັນ 64-bit IEEE ມາດຕະຖານປົກກະຕິຕົວເລກຈຸດເລື່ອນຄວາມຊັດເຈນສອງເທົ່າ. ncgen3
ປ່ຽນແປງ double ປະກາດຫາ double ປະກາດໃນລະຫັດ C ຜົນຜະລິດແລະເພື່ອ DOUBLE
PRECISION ການປະກາດໃນຜົນຜະລິດລະຫັດ Fortran.
CDL ຄົງທີ່
ຄົງທີ່ມອບໝາຍໃຫ້ກັບຄຸນລັກສະນະ ຫຼືຕົວແປອາດເປັນປະເພດ netCDF ພື້ນຖານໃດນຶ່ງ.
syntax ສໍາລັບຄ່າຄົງທີ່ແມ່ນຄ້າຍຄືກັນກັບ syntax C, ຍົກເວັ້ນປະເພດນັ້ນຕ້ອງເປັນ suffixes
ຕື່ມໃສ່ກັບສັ້ນແລະລອຍເພື່ອຈໍາແນກພວກເຂົາຈາກຍາວແລະຄູ່.
A byte ຄົງທີ່ແມ່ນສະແດງໂດຍຕົວລະຄອນດຽວ ຫຼື ລຳດັບການຫລົບໜີຂອງຕົວອັກສອນຫຼາຍຕົວ
ຫຸ້ມຢູ່ໃນວົງຢືມດຽວ. ຍົກຕົວຢ່າງ,
'a' // ASCII `a'
'\0' // a zero byte
'\n' // ASCII ຕົວອັກສອນແຖວໃໝ່
'\33' // ຕົວອັກສອນ escape ASCII (33 octal)
'\x2b' // ASCII ບວກ (2b hex)
'\377' // 377 ເລກແປດ = 255 ທົດສະນິຍົມ, ບໍ່ແມ່ນ ASCII
ການຄົງຕົວຂອງຕົວອັກສອນຖືກຫຸ້ມຢູ່ໃນວົງຢືມຄູ່. array ຕົວອັກສອນອາດຈະເປັນຕົວແທນ
ເປັນສະຕຣິງທີ່ອ້ອມຮອບດ້ວຍວົງຢືມຄູ່. ສົນທິສັນຍາ C string escape ປົກກະຕິແມ່ນເປັນກຽດ.
ຍົກຕົວຢ່າງ
"a" // ASCII `a'
"ສອງ\nແຖວ\n" // ສະຕຣິງ 10 ຕົວອັກສອນທີ່ມີສອງແຖວໃໝ່ທີ່ຝັງໄວ້
"a bell:\007" // ສະຕຣິງທີ່ມີກະດິ່ງ ASCII
ໃຫ້ສັງເກດວ່າ array ຕົວອັກສອນ netCDF "a" ຈະເຫມາະກັບຕົວແປຫນຶ່ງອົງປະກອບ, ເນື່ອງຈາກວ່າບໍ່ມີ.
ຖືວ່າການສິ້ນສຸດຕົວອັກສອນ NULL. ແນວໃດກໍ່ຕາມ, XNUMX byte ໃນ array ຕົວອັກສອນແມ່ນ
ຕີລາຄາເປັນການສິ້ນສຸດຂອງລັກສະນະທີ່ສໍາຄັນໂດຍ ncdump ໂຄງການ, ປະຕິບັດຕາມ
ສົນທິສັນຍາ C. ດັ່ງນັ້ນ, NULL byte ບໍ່ຄວນຖືກຝັງຢູ່ໃນສະຕຣິງຕົວອັກສອນເວັ້ນເສຍແຕ່
ໃນຕອນທ້າຍ: ໃຊ້ byte ປະເພດຂໍ້ມູນແທນສໍາລັບ byte arrays ທີ່ມີສູນ byte.
NetCDF ແລະ CDL ບໍ່ມີປະເພດສະຕຣິງ, ແຕ່ມີພຽງແຕ່ array ຕົວອັກສອນທີ່ມີຄວາມຍາວຄົງທີ່, ເຊິ່ງອາດຈະເປັນ.
ຫຼາຍມິຕິລະດັບ.
ສັ້ນ ຈໍານວນຄົງທີ່ແມ່ນມີຈຸດປະສົງເພື່ອສະແດງປະລິມານລົງລາຍເຊັນ 16-bit. ແບບຟອມ
ຂອງ ສັ້ນ ຄົງທີ່ແມ່ນຕົວເລກຄົງທີ່ທີ່ມີ `s' ຫຼື `S' ຕື່ມໃສ່. ຖ້າ ກ ສັ້ນ
ຄົງທີ່ເລີ່ມຕົ້ນດ້ວຍ '0', ມັນຈະຖືກຕີຄວາມໝາຍເປັນເລກແປດ, ຍົກເວັ້ນຖ້າມັນເລີ່ມຕົ້ນດ້ວຍ '0x',
ມັນໄດ້ຖືກຕີຄວາມວ່າເປັນຄ່າຄົງທີ່ຂອງເລກຖານສິບຫົກ. ຍົກຕົວຢ່າງ:
-2s // ສັ້ນ -2
0123s // ເລກແປດ
0x7ffs // ເລກຖານສິບຫົກ
Long ຈໍານວນຄົງທີ່ແມ່ນມີຈຸດປະສົງເພື່ອສະແດງປະລິມານລົງລາຍເຊັນ 32-bit. ແບບຟອມ
ຂອງ ຍາວ ຄົງທີ່ແມ່ນຄ່າຄົງທີ່ຈຳນວນເຕັມທຳມະດາ, ເຖິງແມ່ນວ່າມັນເປັນທີ່ຍອມຮັບໄດ້ທີ່ຈະຕື່ມໃສ່
ທາງເລືອກ `l' ຫຼື `L'. ຖ້າ ກ ຍາວ ຄົງທີ່ເລີ່ມຕົ້ນດ້ວຍ '0', ມັນຈະຖືກຕີຄວາມໝາຍເປັນເລກແປດ,
ຍົກເວັ້ນແຕ່ວ່າຖ້າຫາກວ່າມັນເລີ່ມຕົ້ນດ້ວຍ '0x', ມັນຖືກຕີລາຄາເປັນຄົງທີ່ເລກສິບຫົກ. ຕົວຢ່າງ
ຖືກຕ້ອງ ຍາວ ຄົງທີ່ປະກອບມີ:
-2
1234567890L
0123 // ເລກແປດ
0x7ff // ເລກຖານສິບຫົກ
ຈຸດຄົງທີ່ຂອງປະເພດ float ແມ່ນເຫມາະສົມສໍາລັບການເປັນຕົວແທນຂອງຈຸດລອຍ
ຂໍ້ມູນທີ່ມີຄວາມຊັດເຈນປະມານເຈັດຕົວເລກທີ່ສໍາຄັນ. ຮູບແບບຂອງ ກ float ຄົງທີ່
ຄືກັນກັບຈຸດຄົງທີ່ C ທີ່ມີ `f' ຫຼື `F' ຕໍ່ທ້າຍ. ສໍາລັບການຍົກຕົວຢ່າງ
ຕໍ່ໄປນີ້ແມ່ນຍອມຮັບທັງຫມົດ float ຄົງທີ່:
-2.0f
3.14159265358979f // ຈະຖືກຕັດໃຫ້ມີຄວາມຊັດເຈນໜ້ອຍລົງ
1.f
ຈຸດຄົງທີ່ຂອງປະເພດ double ແມ່ນເຫມາະສົມສໍາລັບການເປັນຕົວແທນຂອງຈຸດລອຍ
ຂໍ້ມູນທີ່ມີປະມານສິບຫົກຕົວເລກທີ່ມີຄວາມແມ່ນຍໍາ. ຮູບແບບຂອງ ກ double ຄົງທີ່
ຄືກັນກັບຄ່າຄົງທີ່ຂອງຈຸດລອຍ. ທາງເລືອກ `d' ຫຼື `D' ອາດຈະຖືກຕໍ່ທ້າຍ. ສໍາລັບ
ຕົວຢ່າງຕໍ່ໄປນີ້ແມ່ນຍອມຮັບທັງຫມົດ double ຄົງທີ່:
-2.0
3.141592653589793
1.0e-20
1. ງ
ໃຊ້ ncgen3 ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net