Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • vtk/vtk
  • brad.king/vtk
  • allisonvacanti/vtk
  • chuck.atkins/vtk
  • shawn.waldon/vtk
  • robertmaynard/vtk
  • gcasey/vtk
  • danlipsa/vtk
  • sankhesh/vtk
  • nix/vtk
  • utkarsh.ayachit/vtk
  • seanm/vtk
  • amaclean/vtk
  • lorensen/vtk
  • dgobbi/vtk
  • jpouderoux/vtk
  • ken-martin/vtk
  • ben.boeckel/vtk
  • karsten.tausche/vtk
  • jbeezley/vtk
  • demarle/vtk
  • karasevpa/vtk
  • sebastien.jourdain/vtk
  • will.schroeder/vtk
  • pixelstime/vtk
  • sujin.philip/vtk
  • acbauer/vtk
  • berkgeveci/vtk
  • cory.quammen/vtk
  • john.tourtellott/vtk
  • jcfr/vtk
  • tcoulange/vtk
  • finetjul/vtk
  • aashish-chaudhary/vtk
  • tadeu/vtk
  • bxa/vtk
  • clinton/vtk
  • cjh1/vtk
  • alextsui05/vtk
  • jorge.suit/vtk
  • mwestphal/vtk
  • arnaudgelas/vtk
  • splines/vtk
  • dcthomp/spline-vtk
  • Lin.Ma/vtk-spline
  • matt-mccormick/vtk
  • ndfabian/vtk
  • scott.wittenburg/vtk
  • bill-hoffman/vtk
  • dlrdave/vtk
  • ethanb/vtk
  • johan-andruejol/vtk
  • ashray/vtk
  • Toki/vtk
  • kimbaol/vtk
  • toster/vtk
  • applekey/vtk
  • quantumsteve/vtk
  • a_neeman/vtk
  • biddisco/vtk
  • mhanwell/vtk
  • jjomier/vtk
  • dkuegler/vtk
  • bobifx/vtk
  • yordan_kyosev/vtk
  • schuyler.kylstra/vtk
  • ilya-five/vtk
  • JimCosby/vtk
  • Geng/vtk
  • blessley/vtk
  • davisb/vtk
  • iMSTK/vtk
  • chunmingchen/vtk
  • danlugli/vtk
  • chaffra/vtk
  • tjcorona/vtk
  • mennodeij1/vtk
  • thehummingbird/vtk
  • prabhuramachandran/vtk
  • chiranjibsur/vtk
  • jwilliz/vtk
  • wydesenej/vtk
  • msmolens/vtk
  • Lin.Ma/vtk
  • joseph.g.hennessey2.ctr/vtk
  • Wu/vtk
  • rogerkint/vtk
  • Xabi/vtk
  • timt/vtk
  • dcthomp/vtk
  • carson/vtk
  • Niels_Dekker/vtk
  • dmsurti/vtk
  • shreejan/vtk
  • brudfors/vtk
  • yumin/vtk
  • bob.obara/vtk
  • cousin_it/vtk
  • fstrati/vtk
  • dzenanz/vtk
  • cdeepakroy/vtk
  • LucasGandelKitware/vtk
  • alexis-girault/vtk
  • sreekanth-arikatla/vtk
  • SumedhaSingla/vtk
  • ricardo-ortiz/vtk
  • yboumenir/vtk
  • alvaro.sanchez/vtk
  • jgoizueta/vtk
  • bloring/vtk
  • akhilsurabhi/vtk
  • appstonic/vtk
  • waldyrious/vtk
  • lenlen/vtk
  • romangrothausmann/vtk
  • NevilX/vtk
  • natorious1990/vtk
  • ktsumura/vtk
  • radix-vinni/vtk
  • saumyabhadani/vtk
  • starius/vtk
  • mgenet/vtk
  • dhanannjay-deo/vtk
  • fabian.wenzel/vtk
  • stephenshamilton/vtk
  • axkibe/vtk
  • grlee77/vtk
  • lisa-avila/vtk
  • martyngigg/vtk
  • asmith/vtk
  • opoplawski/vtk
  • maxoox/vtk
  • estan/vtk
  • awehrfritz/vtk
  • dsgruss/vtk
  • abheekg/vtk
  • jfavre/vtk
  • updega2/vtk
  • dgraves/vtk
  • zaherabdulazeez/vtk
  • lisphacker/vtk
  • BillMcGrory/vtk
  • Yang/vtk
  • dumontal/vtk
  • DVigneault/vtk
  • xyjin213/vtk
  • cpatrick/vtk
  • isohatalaj/vtk
  • rete/vtk
  • polycorn/vtk
  • Promayon/vtk
  • karthik/vtk
  • betsy.mcphail/vtk
  • nschloe/vtk
  • kmorel/vtk
  • aniqah/vtk
  • rupertnash/vtk
  • iMichka/vtk
  • shru13448/vtk
  • aeslaughter/vtk
  • QuadmasterXLII1/vtk
  • QuadmasterXLII/vtk
  • haocheng.liu/vtk
  • LouisBergmann/vtk
  • alouis/vtk
  • bjacquet/vtk
  • pieper/vtk
  • Ychuan1115/vtk
  • srikanthnagella/vtk
  • SeunOdutola/vtk
  • jborck/vtk
  • sidd23295/vtk
  • besoft/vtk
  • imikejackson/vtk
  • tttanichka333/vtk
  • vromerocano/vtk
  • fogleman/vtk
  • hinashah/vtk
  • abhishekns/vtk
  • mpkh/vtk
  • borisb/vtk
  • eg/vtk
  • technic/vtk
  • chet.nieter/vtk
  • maleike/vtk
  • emmenlau/vtk
  • florianlink1/vtk
  • teracamo/vtk
  • ole.v.solberg/vtk
  • greenjava/vtk
  • snorrikris/vtk
  • HaipengY/vtk
  • hina/vtk
  • jhlegarreta/vtk
  • diorcety/vtk
  • taketwo/vtk
  • mnucci32/vtk
  • gnzlbg/vtk
  • dfroger/vtk
  • WimK/vtk
  • luciemacron/vtk
  • kd7uns/vtk
  • dgkf/vtk
  • gocarlos/vtk
  • jayas121/vtk
  • olesen/vtk
  • Jon_Garner/vtk
  • cschmitz/vtk
  • Paul/vtk
  • kaaalid/vtk
  • neiltwist/vtk
  • Hertz1239/vtk
  • jupiterben/vtk
  • pierre.guilbert/vtk
  • matthew-woehlke/vtk
  • xantares/vtk
  • mayeul.chassagnard/vtk
  • t-ikegami/vtk
  • gbivins4/vtk
  • jacob/vtk
  • sarahjelinek/vtk
  • nicolas.vuaille/vtk
  • art/vtk
  • Levinaz69/vtk
  • aron.helser/vtk
  • yohey/vtk
  • alex-novinski/vtk
  • jacob-becker/vtk
  • robbie_lxw/vtk
  • burhan14031/vtk
  • thewtex/vtk
  • ML/vtk
  • bilke/vtk
  • bvanelli/vtk
  • Juliano/vtk
  • luliag/vtk
  • muellni/vtk
  • barkinet/vtk
  • kvankooten/vtk
  • Moonypoony/vtk
  • derino/vtk
  • wendy/vtk
  • kekivelez/vtk
  • Archeks/vtk
  • claireguilbaud/vtk
  • lassoan/vtk
  • brunbennett/vtk
  • hcwiley/vtk
  • jie.cheng/vtk
  • kghandi/vtk
  • michalhabera/vtk
  • francis.giraldeau/vtk
  • GG1991/vtk
  • ugiwgh/vtk
  • benjaminjeliot/vtk
  • locuscaeruleus/vtk
  • marcelotrevisani/vtk
  • Punzo/vtk
  • pavelpokutnev/vtk
  • sylmarien/vtk
  • jbvimort/vtk
  • athius/vtk
  • aowen87/vtk
  • StefanBruens/vtk
  • nocnokneo/vtk
  • mds/vtk
  • forrest.li/vtk
  • rcfwgithub/vtk
  • Guenoleh/vtk
  • drmateo/vtk
  • ahota/vtk
  • nishanthkarthik/vtk
  • pdhahn/vtk
  • dyoll/vtk
  • todoooo/vtk
  • Rhodanos/vtk
  • bjoernthiel/vtk
  • pink2/vtk
  • thudacko/vtk
  • qwofford/vtk
  • michael.migliore/vtk
  • mohamedAhmedIsmailAhmed/vtk
  • m-chaturvedi/vtk
  • Shoepon/vtk
  • ricardomorello/vtk
  • ktsai/vtk
  • hjmjohnson/vtk
  • daseven/vtk
  • federico.miorelli/vtk
  • jianfulin/vtk
  • ihnorton/vtk
  • handrake0724/vtk
  • yuelinho777/vtk
  • eberroca/vtk
  • arankin/vtk
  • zachmullen/vtk
  • alzi/vtk
  • csukuangfj/vtk
  • nick.laurenson/vtk
  • ethan.stam/vtk
  • bujack/vtk
  • ifmfr/vtk
  • jpulido/vtk
  • Butakoff/vtk
  • innokentiy.alaytsev/vtk
  • hendersa/vtk
  • tkarabela/vtk
  • charly.girot/vtk
  • dbonhaus/vtk
  • ClundXIII/vtk
  • shaikan/vtk
  • timrowley/vtk
  • tomj/vtk
  • ombre5733/vtk
  • hbwhlk83/vtk
  • cpinter/vtk
  • fbudin/vtk
  • nehaljwani/vtk
  • CometS1/vtk
  • debian/vtk
  • jan.o.schutte/vtk
  • normanius/vtk
  • wehhh/vtk
  • bwspenc/vtk
  • sergioPereiraBR/vtk
  • yurivict/vtk
  • GarrettMorrison/vtk
  • jensgw/vtk
  • alesgenova/vtk
  • paulharris/vtk
  • niranjankala/vtk
  • tavaughan/vtk
  • christianezeani/vtk
  • kihneman/vtk
  • phcerdan/vtk
  • Bengt/vtk
  • knolla/vtk
  • shreeraj.jadhav/vtk
  • Sunderlandkyl/vtk
  • drpeterfranz/vtk
  • pedroneto/vtk
  • levara/vtk
  • TheBlackCat/vtk
  • Bleach665/vtk
  • JeromeDuboisPro/vtk
  • pbergeron/vtk
  • ilovezfs/vtk
  • jeffamstutz/vtk
  • edwinbennink/vtk
  • ChrisB/vtk
  • rexchai/vtk
  • jclearwater/vtk
  • pengzhou93/vtk
  • Cotrik/vtk
  • drouin-simon/vtk
  • Simon-GitLab/vtk
  • mcvaneede/vtk
  • aaigner/vtk
  • murraypurves/vtk
  • Chrisyunhua/vtk
  • lhofmann/vtk
  • tobias-haenel/vtk
  • aitormoreno/vtk
  • severnaa/vtk
  • angelika.ophagen/vtk
  • AOphagen/vtk
  • byhongda/vtk
  • HuangLiJinJames/vtk
  • NicholasWon47/vtk
  • chenhaomagnetic/vtk
  • imngy/vtk
  • maxGimeno/vtk
  • kf6kjg/vtk
  • cstew2/vtk
  • lrineau/vtk
  • vnpavanelli/vtk
  • erichlf/vtk
  • SunBlack/vtk
  • PauloCarvalhoRJ/vtk
  • McrmDev/vtk
  • jblekien/vtk
  • guerrero78/vtk
  • hygonsoc/vtk
  • embeddedmz/vtk
  • wangtaoz/vtk
  • andrea-iob/vtk
  • ollielo/vtk
  • boonth/vtk
  • lugia-kun/vtk
  • adrien.boucaud/vtk
  • jstark/vtk
  • mathiash/vtk
  • patrick-oleary/vtk
  • patchett2002/vtk
  • tbiedert/vtk
  • MITRALZ/vtk
  • shihabrus/vtk
  • Xaxetrov/vtk
  • charles.gueunet/vtk
  • edern.haumont/vtk
  • schweitzer/vtk
  • leonhardt/vtk
  • williamfgc/vtk
  • hococoder/vtk
  • barcharcraz/vtk
  • lcantell/vtk
  • matt.leotta/vtk
  • kairong.jiang/vtk
  • neohsbrother/vtk
  • animeshbaranawal/vtk
  • jdoenias/vtk
  • bmwiedemann/vtk
  • stephen.sanchez/vtk
  • kislinsk/vtk
  • yufeimi/vtk
  • milljm/vtk
  • zmj1316/vtk
  • zhuokaizhao/vtk
  • nghia.truong/vtk
  • Mycai/vtk
  • Jacques-Bernard/vtk
  • yohann.bearzi/vtk
  • nghiatruong.vn/vtk
  • caitlin.ross/vtk
  • aandreyev/vtk
  • robustwangace/vtk
  • kovtuh/vtk
  • paulyc/vtk
  • pronaman/vtk
  • huyidao625/vtk
  • EvgenyVRN/vtk
  • yale.lee_nga/vtk
  • cobo/vtk
  • Highphone110/vtk
  • kevin.tew/vtk
  • daniel.jasinski/vtk
  • aspsee/vtk
  • Jellby/vtk
  • Bo98/vtk
  • tkoyama010/vtk
  • keith.m.ballard/vtk
  • XinhuaZhang/vtk
  • Simon-Esneault/vtk
  • maximilian.reimer.42/vtk
  • florian360/vtk
  • patrick.avery/vtk
  • aglv/vtk
  • mat127/vtk
  • brad-t-moore/vtk
  • thompson318/vtk
  • kingyue737/vtk
  • gilcu2/vtk
  • shogarth/vtk
  • doktorkjeld/vtk
  • BuzzBurrowes/vtk
  • amine.aboufirass/vtk
  • kirv/vtk
  • westphalm/vtk
  • gerald.lodron/vtk
  • yhtank/vtk
  • paul.lafoix/vtk
  • KiraGabi/vtk
  • ralovich/vtk
  • s.jafari.m/vtk
  • richardc/vtk
  • larsoner/vtk
  • DavidLaidlaw/vtk
  • thibault.pelletier/vtk
  • dhanakoti.murali/vtk
  • vbolea/vtk
  • aravind90/vtk
  • martijnkoopman/vtk
  • Tiphainejh/vtk
  • yozara/vtk
  • NicolaasWeideman/vtk
  • fdepourcq/vtk
  • Eustache/vtk
  • mdaley/vtk
  • aangelos28/vtk
  • RaoGY/vtk
  • sthibaul/vtk
  • qyr3366/vtk
  • ChristophHonal/vtk
  • christos.tsolakis/vtk
  • Cool/vtk
  • hansuk/vtk
  • mdorier/vtk
  • nerdalien/vtk
  • yasushi.saito/vtk
  • paul.choisel/vtk
  • kovynev/vtk
  • bobmiller/vtk
  • ziqiangxu/vtk
  • gonzalosaezm55/vtk
  • SailCPU/vtk
  • woodbot/vtk
  • yufan/vtk
  • amelvill-umich/vtk
  • mossaiby/vtk
  • likehuaer/vtk
  • timothee.chabat/vtk
  • Senidenary/vtk
  • Tobias-Fischer/vtk
  • BrentFoster/vtk
  • thliebig/vtk
  • thomas.caissard/vtk
  • whophil/vtk
  • RafaelPalomar/vtk
  • Angelo-abel/vtk
  • shawfei/vtk
  • MattesSchu/vtk
  • guillaume.gindre/vtk
  • maack/vtk
  • zqcolorful/vtk
  • tniemi/vtk
  • imalkov82/vtk
  • bzindovic/vtk
  • v.engelgardt/vtk
  • mjjackey/vtk
  • halowine/vtk
  • laurenn.lam/vtk
  • zonghx/vtk
  • ProGamerCode/vtk
  • bp85540/vtk
  • julia.sanchez/vtk
  • melanie.carriere/vtk
  • jules.bourdais/vtk
  • jerome.dias/vtk
  • luca.lacaille/vtk
  • octave.rossi/vtk
  • c.wetterer-nelson/vtk
  • nima.tofighi/vtk
  • jspanchu/vtk
  • jsteele/vtk
  • PetiteViking/vtk
  • bart/vtk
  • LucasGasparinoBSC/vtk
  • julien2412/vtk
  • francois.mazen/vtk
  • lxgwd1983/vtk
  • timothee.couble/vtk
  • benntqoo/vtk
  • jmhawkins/vtk
  • stonej/vtk
  • JackGuyver/vtk
  • rodrigomologni/vtk
  • chart3388/vtk
  • jessica.marquis/vtk
  • rockandsalt/vtk
  • zakaria220/vtk
  • ryan.krattiger1/vtk
  • darktemplarbasealt/vtk
  • scbiradar/vtk
  • andrew.wilson/vtk
  • moritz-h/vtk
  • kyzitemelos93/vtk
  • qqzhoucn/vtk
  • laurent.malka/vtk
  • akaszynski/vtk
  • spiros.tsalikis/vtk
  • sercxjo/vtk
  • jesper.norell/vtk
  • tiffany.chhim/vtk
  • jennifermanzella11/vtk
  • loongson-zn/vtk
  • RonRahaman/vtk
  • Snethy/vtk
  • antoine.ruffion/vtk
  • air-h-128k-il/vtk
  • atomicky/vtk
  • chenjt2001/vtk
  • cclauss/vtk
  • Connor-Bowley/vtk
  • ferdymercury/vtk
  • connor.bowley/vtk
  • Tianyang86/vtk
  • stephen.crowell/vtk
  • xzhang/vtk
  • antoine.schieb/vtk
  • ArchangeGabriel/vtk
  • thomas.galland/vtk
  • kadabraqc/vtk
  • sanguinariojoe/vtk
  • tom.suchel/vtk
  • mgoodson-cvd/vtk
  • jtojnar/vtk
  • bwoodsend/vtk
  • frantze.raphael/vtk
  • YuhaoQiu/vtk
  • user-zmt/vtk
  • XiaLiChao82/vtk
  • biagas/vtk
  • gaspard.thevenon/vtk
  • nicoco/vtk
  • svenevs/vtk
  • olesalscheider/vtk
  • EvanHampton-Seequent/vtk
  • spsjorspeterse/vtk
  • p-j-smith/vtk
  • jaswant.panchumarti/vtk
  • nasos/vtk
  • david.berger/vtk
  • dmt/vtk
  • huangjx-beijing/vtk
  • andtokm/vtk
  • MehdiChinoune/vtk
  • alexy.pellegrini/vtk
  • lucas.givord/vtk
  • jianhui2769/vtk
  • chengchengjing/vtk
  • scienceasdf/vtk
  • maidamai0/vtk
  • GuillaumeFavelier/vtk
  • ayenpure/vtk
  • ikerssm/vtk
  • hakostra/vtk
  • epalmer/vtk
  • Dophi123/vtk
  • julien.fausty/vtk
  • zjibben/vtk
  • nncarlson/vtk
  • Simon96128/vtk
  • jiapei1001/vtk
  • jiapei100/vtk
  • Failxxx/vtk
  • jcorbettfrank/vtk
  • Xingorno/vtk
  • windgs/vtk
  • orbisvicis/vtk
  • jramaiah/vtk
  • luzpaz/vtk
  • kammnd/vtk
  • lokessh/vtk
  • QinChen1998/vtk
  • mirenradia/vtk
  • tbirdso/vtk
  • jones/vtk
  • HollowSun/vtk
  • db/vtk
  • matthiasbock/vtk
  • adam-grant-hendry/vtk
  • Kenichiro-Yoshimi/vtk
  • redemptorridon/vtk
  • Neumann-A/vtk
  • tereshkinvadimst/vtk
  • francorougier60/vtk
  • felixonmars/vtk
  • gabrielmuller/vtk
  • Alex9/vtk
  • XinweiHsu/vtk
  • Zz-er/vtk
  • ferdnyc/vtk
  • mahmoudmohamedk8200949/vtk
  • HamsaSaber/vtk
  • boomanaiden154/vtk
  • bebuch/vtk
  • fab/vtk
  • chrisadamsonmcri/vtk
  • yarous224/vtk
  • zhenhaochu/vtk
  • pranjal.sahu/vtk
  • thibault.bruyere/vtk
  • banesullivan/vtk
  • is0591hs/vtk
  • philipp.weissenbacher/vtk
  • xavier.tricoche/vtk
  • hopfer.benjamin/vtk
  • liyinyan/vtk
  • gabriel.lefloch/vtk
  • bistek/vtk
  • mmXIO/vtk
  • MicK7/vtk
  • jndxljun/vtk
  • Shirin_ra/vtk
  • hanfengyu/vtk
  • zhhaoyuting111/vtk
  • john-stone/vtk
  • woosukbyun0724/vtk
  • xenosLit/vtk
  • ashishmalik5am/vtk
  • j824h/vtk
  • jschueller/vtk
  • alexdewar/vtk
  • mo.gomaa1996/vtk
  • rubendebruin/vtk
  • CiaoTan/vtk
  • bhaq-tri/vtk
  • TattiRuby/vtk
  • griffin28/vtk
  • he.wryyy/vtk
  • aly.tireira/vtk
  • Riaa/vtk
  • b89alireza/vtk
  • john.parent/vtk
  • marin.kajtazi/vtk
  • andy9t7/vtk
  • mikedubb0811/vtk
  • kookoo9999/vtk
  • charly.bollinger/vtk
  • kamm1948/vtk
  • jacob.moore/vtk
  • gaoxinyu18/vtk
  • zhouyi-u/vtk
  • Robbie/vtk
  • couletj/vtk
  • julien.chaize1/vtk
  • shreeni152/vtk
  • lkaly/vtk
  • louis.gombert/vtk
  • linneapalmstrom/vtk
  • ppebay/vtk
  • Rocky/vtk
  • jiangxingkai/vtk
  • xutang/vtk
  • jens.munk.hansen/vtk
  • 5268368/vtk
  • jumbojing/vtk
  • vectorD/vtk
  • mo-schmid/vtk
  • CC9701/vtk
  • Diiiiii-9/vtk
  • moussa-li/vtk
  • MatthewFlamm/vtk
  • sergeylesnik/vtk
  • xpnguyen/vtk
  • FireFlyUh/vtk
  • klevzoff/vtk
  • jake.yun/vtk
  • ixxi/vtk
  • stavbodik/vtk
  • willdunklin/vtk
  • hjhicks321/vtk
  • ymao.mu/vtk
  • fghoussen/vtk
  • Otahal/vtk
  • OccupyMars2025/vtk
  • dglaeser/vtk
  • Skyde/vtk
  • rbinyahib/vtk
  • jmisedam/vtk
  • petlenz/vtk
  • nmnobre/vtk
  • mheinsen/vtk
  • LimitingFactor/vtk
  • Senguo/vtk
  • lee.newberg/vtk
  • svniemeijer/vtk
  • alfiogn/vtk
  • 2xB/vtk
  • karamozianalireza1010/vtk
  • astucky/vtk
  • penfe/vtk
  • lgombert/vtk
  • saichaitanya.rodda/vtk
  • thaumaturg1c/vtk
  • pkestene/vtk
  • rlexmann/vtk
  • gabokamaze/vtk
  • 212dandan/vtk
  • dinghao19960829/vtk
  • ScarpMarc/vtk
  • yangdonglai/vtk
  • stauffert.maxime/vtk
  • dyollb/vtk
  • hollowsunhc/vtk
  • loic.gaillard/vtk
  • ychaos/vtk
  • dperozzi/vtk
  • SeanCurtis-TRI/vtk
  • jhodges/vtk
  • jingliang2005/vtk
  • hbwhzc/vtk
  • zellmann/vtk
  • germa89/vtk
  • 2nafish117/vtk
  • uporersith/vtk
  • jordi.subirana/vtk
  • carlosgcolon/vtk
  • PeterFranzSeequent/vtk
  • cristianAnd24/vtk
  • mrbean-bremen/vtk
  • usiems/vtk
  • Krzmbrzl/vtk
  • tom.clabault/vtk
  • dpseiter1/vtk
  • scivision/vtk
  • Donvlouss/vtk
  • fedormsv/vtk
  • chandan.satija/vtk
  • anuraaga/vtk
  • kxxt/vtk
  • ryosga/vtk
  • Ajile3D/vtk-ajile
  • matekelemen/vtk
  • lililiangyu/vtk
  • ArashPartow/vtk
  • Peter.Zajac/vtk
  • zackgalbreath/vtk
  • bansan/vtk
  • leon.victor/vtk
  • gabbyva5/vtk
  • ClaudioHoffmann/vtk
  • larshg/vtk
  • barracuda156/vtk
  • niconiconi/vtk
  • quangvd3/vtk
  • lmaoha/vtk
  • jarredgaudineer/vtk
  • YingjuHan/vtk
  • afa/vtk
  • thecasterian/vtk
  • codeling/vtk
  • wortiz/vtk
  • undeadde/vtk
  • jonathanschilling/vtk
  • ychu-hoo/vtk
  • FlashPanda/vtk
  • rachedwaly/vtk
  • DownerCase/vtk
  • TurBoss/vtk
  • dunyazad/vtk
  • marquis.weng/vtk
  • chir-set/vtk
  • Mechazo11/az-vtk
  • nekto1989/vtk
  • jean.fechter/vtk
  • anonymous-fys/vtk
  • clintonstimpson/vtk
  • krande/vtk
  • zist8888/vtk
  • Joker-7-7/vtk
  • skashtanov/vtk
  • o.derewonko/vtk
  • ndelpuppo/vtk
  • kenavolic/vtk
  • raimund-schluessler/vtk
  • medmssaouri/vtk-pca-normals
  • karchit0509/vtk
  • gapry/vtk
  • guillaume-jacquenot/vtk
  • Dave-Allured/vtk
  • ctaylo41/vtk
  • johnnynunez/vtk
  • 1div0/vtk
  • aruggieri/vtk
  • LunaNebula/vtk
  • quinn.powell/vtk
  • exbluesbreaker/vtk
  • junghans/vtk
  • NikitaKolebaev/vtk
  • jwilson1881/vtk
  • celynchgt/vtk
  • guillaume.gisbert/vtk
853 results
Show changes
Commits on Source (7)
Showing
with 276 additions and 132 deletions
## Update exodusII and Ioss to be based on SEACAS 2025-02-27
Update `exodusII` and `Ioss` third party libraries to be based
on [SEACAS 2025-02-27](https://github.com/sandialabs/seacas/releases/tag/v2025-02-27).
......@@ -6,9 +6,9 @@ vtk_module_third_party_internal(
SPDX_COPYRIGHT_TEXT
"Copyright (c) 2005-2017 National Technology & Engineering Solutions of Sandia, LLC (NTESS)"
SPDX_DOWNLOAD_LOCATION
"git+https://gitlab.kitware.com/third-party/seacas.git@exodus/for/vtk-20240826-master-gaeee5aa1#packages/seacas/libraries/exodus"
"git+https://gitlab.kitware.com/spiros.tsalikis/seacas.git@c170ea23ff1412c30f42168f409afbf909c87765#packages/seacas/libraries/exodus"
VERSION
"9.3f"
"2025-02-27"
STANDARD_INCLUDE_DIRS)
#configure_file(
......
......@@ -7,8 +7,8 @@ shopt -s dotglob
readonly name="exodusII"
readonly ownership="Seacas Upstream <kwrobot@kitware.com>"
readonly subtree="ThirdParty/$name/vtk$name"
readonly repo="https://gitlab.kitware.com/third-party/seacas.git"
readonly tag="exodus/for/vtk-20240826-master-gaeee5aa1"
readonly repo="https://gitlab.kitware.com/spiros.tsalikis/seacas.git"
readonly tag="c170ea23ff1412c30f42168f409afbf909c87765"
readonly paths="
packages/seacas/libraries/exodus/CMakeLists.vtk.txt
packages/seacas/libraries/exodus/cmake/exodus_config.h.in
......
/*
* Copyright(C) 1999-2024 National Technology & Engineering Solutions
* Copyright(C) 1999-2025 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -59,12 +59,12 @@
#endif
/* EXODUS version number */
#define EXODUS_VERSION "9.00"
#define EXODUS_VERSION "9.04"
#define EXODUS_VERSION_MAJOR 9
#define EXODUS_VERSION_MINOR 0
#define EXODUS_RELEASE_DATE "May 30, 2024"
#define EXODUS_VERSION_MINOR 4
#define EXODUS_RELEASE_DATE "November 5, 2024"
#define EX_API_VERS 9.00f
#define EX_API_VERS 9.04f
#define EX_API_VERS_NODOT (100 * EXODUS_VERSION_MAJOR + EXODUS_VERSION_MINOR)
#define EX_VERS EX_API_VERS
......@@ -219,6 +219,7 @@ enum ex_inquiry {
EX_INQ_NUM_ELEM_SET_VAR = 69, /**< number of element set variables */
EX_INQ_NUM_SIDE_SET_VAR = 70, /**< number of sideset variables */
EX_INQ_NUM_GLOBAL_VAR = 71, /**< number of global variables */
EX_INQ_FILE_FORMAT = 72, /**< netCDF file format */
EX_INQ_INVALID = -1
};
......@@ -246,9 +247,11 @@ NetCDF-4.?.? and later
enum ex_option_type {
EX_OPT_MAX_NAME_LENGTH =
1, /**< Maximum length of names that will be returned/passed via api call. */
EX_OPT_COMPRESSION_TYPE, /**< Not currently used; default is gzip */
EX_OPT_COMPRESSION_LEVEL, /**< In the range [0..9]. A value of 0 indicates no compression */
EX_OPT_COMPRESSION_TYPE, /**< Default is gzip */
EX_OPT_COMPRESSION_LEVEL, /**< Range depends on compression type. */
EX_OPT_COMPRESSION_SHUFFLE, /**< 1 if enabled, 0 if disabled */
EX_OPT_QUANTIZE_NSD, /**< if > 0, Number of significant digits to retain in lossy quantize
compression */
EX_OPT_INTEGER_SIZE_API, /**< 4 or 8 indicating byte size of integers used in api functions. */
EX_OPT_INTEGER_SIZE_DB, /**< Query only, returns 4 or 8 indicating byte size of integers stored
on the database. */
......@@ -259,6 +262,8 @@ enum ex_compression_type {
EX_COMPRESS_ZLIB = 1, /**< Use ZLIB-based compression (if available) */
EX_COMPRESS_GZIP = 1, /**< Same as ZLIB, but typical alias used */
EX_COMPRESS_SZIP, /**< Use SZIP-based compression (if available) */
EX_COMPRESS_ZSTD, /**< Use ZStandard compression (if available) */
EX_COMPRESS_BZ2, /**< Use BZ2 / Bzip2 compression (if available) */
};
typedef enum ex_compression_type ex_compression_type;
/** @}*/
......@@ -345,13 +350,13 @@ typedef struct ex_basis
/*
clang-format off
*
* subc_dim: dimension of the subcell associated with the specified DoF ordinal
* subc_dim: dimension of the subcell associated with the specified DoF ordinal
* -- 0 node, 1 edge, 2 face, 3 volume [Range: 0..3]
* subc_ordinal: ordinal of the subcell relative to its parent cell
* -- 0..n for each ordinal with the same subc dim [Range: <= DoF ordinal]
* subc_dof_ordinal: ordinal of the DoF relative to the subcell
* subc_num_dof: cardinality of the DoF set associated with this subcell.
* xi, eta, mu (ξ, η, ζ): Parametric coordinate location of the DoF
* -- 0..n for each ordinal with the same subc dim [Range: <= DoF ordinal]
* subc_dof_ordinal: ordinal of the DoF relative to the subcell
* subc_num_dof: cardinality of the DoF set associated with this subcell.
* xi, eta, mu (ξ, η, ζ): Parametric coordinate location of the DoF
* -- (Only first ndim values are valid)
*
clang-format on
......@@ -971,7 +976,7 @@ EXODUS_EXPORT int ex_get_block(int exoid, ex_entity_type blk_type, ex_entity_id
/* Read Edge Face or Element Block Parameters */
EXODUS_EXPORT int ex_get_block_param(int exoid, ex_block *block);
EXODUS_EXPORT int ex_put_block_param(int exoid, const ex_block block);
EXODUS_EXPORT int ex_put_block_param(int exoid, ex_block block);
EXODUS_EXPORT int ex_get_block_params(int exoid, size_t block_count, struct ex_block **blocks);
......@@ -1037,34 +1042,35 @@ EXODUS_EXPORT int ex_put_attr_names(int exoid, ex_entity_type blk_type, ex_entit
EXODUS_EXPORT int ex_get_attr_names(int exoid, ex_entity_type obj_type, ex_entity_id obj_id,
char **names);
EXODUS_EXPORT int ex_put_assembly(int exoid, const struct ex_assembly assembly);
EXODUS_EXPORT int ex_put_assembly(int exoid, struct ex_assembly assembly);
EXODUS_EXPORT int ex_get_assembly(int exoid, struct ex_assembly *assembly);
EXODUS_EXPORT int ex_put_assemblies(int exoid, size_t count, const struct ex_assembly *assemblies);
EXODUS_EXPORT int ex_get_assemblies(int exoid, struct ex_assembly *assemblies);
EXODUS_EXPORT int ex_put_blob(int exoid, const struct ex_blob blob);
EXODUS_EXPORT int ex_put_blob(int exoid, struct ex_blob blob);
EXODUS_EXPORT int ex_get_blob(int exoid, struct ex_blob *blob);
EXODUS_EXPORT int ex_put_blobs(int exoid, size_t count, const struct ex_blob *blobs);
EXODUS_EXPORT int ex_get_blobs(int exoid, struct ex_blob *blobs);
EXODUS_EXPORT int ex_put_field_metadata(int exoid, const ex_field field);
EXODUS_EXPORT int ex_put_field_suffices(int exoid, const ex_field field, const char *suffices);
EXODUS_EXPORT int ex_put_multi_field_metadata(int exoid, const ex_field *field, int field_count);
EXODUS_EXPORT int ex_put_field_metadata(int exoid, ex_field field);
EXODUS_EXPORT int ex_put_field_suffices(int exoid, ex_field field, const char *suffices);
EXODUS_EXPORT int ex_get_field_metadata(int exoid, ex_field *field);
EXODUS_EXPORT int ex_get_field_metadata_count(int exoid, ex_entity_type obj_type, ex_entity_id id);
EXODUS_EXPORT int ex_get_field_suffices(int exoid, const ex_field field, char *suffices);
EXODUS_EXPORT int ex_get_field_suffices(int exoid, ex_field field, char *suffices);
EXODUS_EXPORT int ex_get_basis_count(int exoid);
EXODUS_EXPORT int ex_get_basis(int exoid, ex_basis **pbasis, int *num_basis);
EXODUS_EXPORT int ex_put_basis(int exoid, const ex_basis basis);
EXODUS_EXPORT int ex_put_basis(int exoid, ex_basis basis);
EXODUS_EXPORT int ex_get_quadrature_count(int exoid);
EXODUS_EXPORT int ex_get_quadrature(int exoid, ex_quadrature **pquad, int *num_quad);
EXODUS_EXPORT int ex_put_quadrature(int exoid, const ex_quadrature quad);
EXODUS_EXPORT int ex_put_quadrature(int exoid, ex_quadrature quad);
/* Write arbitrary integer, double, or text attributes on an entity */
EXODUS_EXPORT int ex_put_attribute(int exoid, const ex_attribute attributes);
EXODUS_EXPORT int ex_put_attribute(int exoid, ex_attribute attributes);
EXODUS_EXPORT int ex_put_attributes(int exoid, size_t attr_count, const ex_attribute *attributes);
EXODUS_EXPORT int ex_put_double_attribute(int exoid, ex_entity_type obj_type, ex_entity_id id,
......@@ -1318,10 +1324,10 @@ EXODUS_EXPORT int ex_initialize_quadrature_struct(ex_quadrature *quad, size_t nu
EXODUS_EXPORT const char *ex_component_field_name(ex_field *field,
int component[EX_MAX_FIELD_NESTING]);
EXODUS_EXPORT const char *ex_field_component_suffix(ex_field *field, int nest_level, int component);
EXODUS_EXPORT int ex_field_cardinality(const ex_field_type field_type);
EXODUS_EXPORT const char *ex_field_type_name(const ex_field_type field_type);
EXODUS_EXPORT int ex_field_cardinality(ex_field_type field_type);
EXODUS_EXPORT const char *ex_field_type_name(ex_field_type field_type);
EXODUS_EXPORT ex_field_type ex_string_to_field_type_enum(const char *field_name);
EXODUS_EXPORT const char *ex_field_type_enum_to_string(const ex_field_type field_type);
EXODUS_EXPORT const char *ex_field_type_enum_to_string(ex_field_type field_type);
/*! @} */
......@@ -1958,6 +1964,8 @@ enum ex_error_return_code {
EX_NULLENTITY = -1006, /**< null entity found */
EX_NOENTITY = -1007, /**< no entities of that type on database */
EX_NOTFOUND = -1008, /**< could not find requested variable on database */
EX_INTSIZEMISMATCH =
-1009, /**< integer sizes do not match on input/output databases in ex_copy */
EX_FATAL = -1, /**< fatal error flag def */
EX_NOERR = 0, /**< no error flag def */
......
......@@ -28,6 +28,18 @@
#endif
#endif
#if NC_HAS_ZSTD == 1 || NC_HAS_BZ2
#include "netcdf_filter.h"
#endif
#if !defined NC_FillValue
#if defined _FillValue
#define NC_FillValue _FillValue
#else
#define NC_FillValue "_FillValue"
#endif
#endif
#if defined(_WIN32) && defined(_MSC_VER) && _MSC_VER < 1900
#define PRId64 "I64d"
#else
......@@ -687,29 +699,35 @@ typedef enum exi_element_type exi_element_type;
struct exi_file_item
{
int file_id;
nc_type netcdf_type_code;
int int64_status;
int maximum_name_length;
int time_varid; /* Store to avoid lookup each timestep */
int file_id;
nc_type netcdf_type_code;
int int64_status;
int maximum_name_length;
int time_varid; /* Store to avoid lookup each timestep */
int compression_level; /**< 0 (disabled) to 9 (maximum) compression level for
gzip, 4..32 and even for szip; -131072..22 for zstd, NetCDF-4 only */
unsigned int assembly_count;
unsigned int blob_count;
unsigned int persist_define_mode : 10; /**< Stay in define mode until exi_persist_leavedef is
called. Set by exi_persist_redef... */
unsigned int
compression_algorithm : 2; /**< GZIP/ZLIB, SZIP, more may be supported by NetCDF soon */
unsigned int compression_level : 6; /**< 0 (disabled) to 9 (maximum) compression level for
gzip, 4..32 and even for szip; NetCDF-4 only */
compression_algorithm : 4; /**< GZIP/ZLIB, SZIP, more may be supported by NetCDF soon */
unsigned int quantize_nsd : 4; /**< 0 (disabled) to 15 (maximum) number of significant digits
retained for lossy quanitzation compression */
unsigned int shuffle : 1; /**< 1 true, 0 false */
unsigned int user_compute_wordsize : 1; /**< 0 for 4 byte or 1 for 8 byte reals */
unsigned int shuffle : 1; /**< 1 true, 0 false */
unsigned int
file_type : 2; /**< 0 - classic, 1 -- 64 bit classic, 2 --NetCDF4, 3 --NetCDF4 classic */
unsigned int is_write : 1; /**< for output or append */
unsigned int is_parallel : 1; /**< 1 true, 0 false */
unsigned int is_hdf5 : 1; /**< 1 true, 0 false */
unsigned int is_pnetcdf : 1; /**< 1 true, 0 false */
unsigned int has_nodes : 1; /**< for input only at this time */
unsigned int has_edges : 1; /**< for input only at this time */
unsigned int has_faces : 1; /**< for input only at this time */
unsigned int has_elems : 1; /**< for input only at this time */
unsigned int is_write : 1; /**< for output or append */
unsigned int is_parallel : 1; /**< 1 true, 0 false */
unsigned int is_hdf5 : 1; /**< 1 true, 0 false */
unsigned int is_pnetcdf : 1; /**< 1 true, 0 false */
unsigned int has_nodes : 1; /**< for input only at this time */
unsigned int has_edges : 1; /**< for input only at this time */
unsigned int has_faces : 1; /**< for input only at this time */
unsigned int has_elems : 1; /**< for input only at this time */
unsigned int in_define_mode : 1; /**< Is the file in nc define mode... */
struct exi_file_item *next;
};
......@@ -799,8 +817,8 @@ extern struct exi_obj_stats *exoII_fam;
extern struct exi_obj_stats *exoII_nm;
EXODUS_EXPORT struct exi_file_item *exi_find_file_item(int exoid);
struct exi_file_item *exi_add_file_item(int exoid);
struct exi_obj_stats *exi_get_stat_ptr(int exoid, struct exi_obj_stats **obj_ptr);
struct exi_file_item *exi_add_file_item(int exoid);
struct exi_obj_stats *exi_get_stat_ptr(int exoid, struct exi_obj_stats **obj_ptr);
EXODUS_EXPORT void exi_rm_stat_ptr(int exoid, struct exi_obj_stats **obj_ptr);
......@@ -856,9 +874,14 @@ EXODUS_EXPORT int exi_put_names(int exoid, int varid, size_t num_entity, char *
ex_entity_type obj_type, const char *subtype, const char *routine);
EXODUS_EXPORT void exi_trim(char *name);
EXODUS_EXPORT void exi_update_max_name_length(int exoid, int length);
EXODUS_EXPORT int exi_redef(int exoid, const char *call_func);
EXODUS_EXPORT int exi_persist_redef(int exoid, const char *call_func);
EXODUS_EXPORT int exi_leavedef(int exoid, /* NemesisI file ID */
const char *call_rout /* Name of calling function */
);
EXODUS_EXPORT int exi_persist_leavedef(int exoid, /* NemesisI file ID */
const char *call_rout /* Name of calling function */
);
EXODUS_EXPORT int exi_check_version(int run_version);
EXODUS_EXPORT int exi_handle_mode(unsigned int my_mode, int is_parallel, int run_version);
......
......@@ -4,7 +4,7 @@
/**
* Generated using:
*
* nm -g lib/libvtkexodusII-9.3.so | grep -e ' [TDRSB] ' |\
* nm -g lib/libvtkexodusII-9.4.so | grep -e ' [TDRSB] ' |\
* cut -d' ' -f3 | grep -v -e '^_init$' -e '^_fini$' -e '^_edata$' -e '^__bss_start$' -e 'vtkexodusII_' | \
* sort | sed -e 's/\(.*\)/#define \1 vtkexodusII_\1/' > /tmp/vtk_exodusII_mangle.h
*/
......@@ -232,6 +232,8 @@
#define ex_inquire_int vtkexodusII_ex_inquire_int
#define ex_int64_status vtkexodusII_ex_int64_status
#define ex_int_write_conn vtkexodusII_ex_int_write_conn
#define exi_persist_leavedef vtkexodusII_exi_persist_leavedef
#define exi_persist_redef vtkexodusII_exi_persist_redef
#define exi_populate_header vtkexodusII_exi_populate_header
#define exi_pthread_first_thread_init vtkexodusII_exi_pthread_first_thread_init
#define exi_put_assembly_name vtkexodusII_exi_put_assembly_name
......@@ -244,6 +246,7 @@
#define exi_put_partial_nodal_var vtkexodusII_exi_put_partial_nodal_var
#define exi_put_quad_attribute vtkexodusII_exi_put_quad_attribute
#define exi_put_type_attribute vtkexodusII_exi_put_type_attribute
#define exi_redef vtkexodusII_exi_redef
#define exi_reset_error_status vtkexodusII_exi_reset_error_status
#define exi_rm_file_item vtkexodusII_exi_rm_file_item
#define exi_rm_stat_ptr vtkexodusII_exi_rm_stat_ptr
......@@ -321,6 +324,7 @@
#define ex_put_loadbal_param_cc vtkexodusII_ex_put_loadbal_param_cc
#define ex_put_map vtkexodusII_ex_put_map
#define ex_put_map_param vtkexodusII_ex_put_map_param
#define ex_put_multi_field_metadata vtkexodusII_ex_put_multi_field_metadata
#define ex_put_name vtkexodusII_ex_put_name
#define ex_put_names vtkexodusII_ex_put_names
#define ex_put_n_attr vtkexodusII_ex_put_n_attr
......
/*
* Copyright(C) 1999-2020 National Technology & Engineering Solutions
* Copyright(C) 1999-2020, 2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -36,5 +36,5 @@ int ex_get_var_param(int exoid, const char *var_type, int *num_vars)
{
ex_entity_type obj_type;
obj_type = ex_var_type_to_ex_entity_type(*var_type);
return (ex_get_variable_param(exoid, obj_type, num_vars));
return ex_get_variable_param(exoid, obj_type, num_vars);
}
/*
* Copyright(C) 1999-2020 National Technology & Engineering Solutions
* Copyright(C) 1999-2020, 2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -39,5 +39,5 @@ int ex_put_var_param(int exoid, const char *var_type, int num_vars)
{
ex_entity_type obj_type;
obj_type = ex_var_type_to_ex_entity_type(*var_type);
return (ex_put_variable_param(exoid, obj_type, num_vars));
return ex_put_variable_param(exoid, obj_type, num_vars);
}
/*
* Copyright(C) 1999-2023 National Technology & Engineering Solutions
* Copyright(C) 1999-2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -47,7 +47,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
"ERROR: Bad block type (%d) specified for all blocks file id %d", blocks[0].type,
exoid);
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
return (EX_FATAL);
return EX_FATAL;
}
{ /* Output ids for this block */
......@@ -58,7 +58,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
"array in file id %d",
exoid);
ex_err_fn(exoid, __func__, errmsg, EX_MEMFAIL);
return (EX_FATAL);
return EX_FATAL;
}
for (size_t i = 0; i < block_count; i++) {
......@@ -70,7 +70,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
ex_name_of_object(blocks[0].type), exoid);
ex_err_fn(exoid, __func__, errmsg, status);
free(ids);
return (EX_FATAL);
return EX_FATAL;
}
if ((status = nc_put_var_longlong(exoid, varid, ids)) != NC_NOERR) {
......@@ -78,7 +78,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
ex_name_of_object(blocks[0].type), exoid);
ex_err_fn(exoid, __func__, errmsg, status);
free(ids);
return (EX_FATAL);
return EX_FATAL;
}
free(ids);
}
......@@ -91,7 +91,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
"array in file id %d",
exoid);
ex_err_fn(exoid, __func__, errmsg, EX_MEMFAIL);
return (EX_FATAL);
return EX_FATAL;
}
for (size_t i = 0; i < block_count; i++) {
......@@ -103,7 +103,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
ex_name_of_object(blocks[0].type), exoid);
ex_err_fn(exoid, __func__, errmsg, status);
free(stat);
return (EX_FATAL);
return EX_FATAL;
}
if ((status = nc_put_var_int(exoid, varid, stat)) != NC_NOERR) {
......@@ -111,17 +111,17 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
ex_name_of_object(blocks[0].type), exoid);
ex_err_fn(exoid, __func__, errmsg, status);
free(stat);
return (EX_FATAL);
return EX_FATAL;
}
free(stat);
}
/* ======================================================================== */
/* put netcdf file into define mode */
if ((status = nc_redef(exoid)) != NC_NOERR) {
if ((status = exi_redef(exoid, __func__)) != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to place file id %d into define mode", exoid);
ex_err_fn(exoid, __func__, errmsg, status);
return (EX_FATAL);
return EX_FATAL;
}
/* inquire previously defined dimensions */
......@@ -348,7 +348,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
if ((status = exi_leavedef(exoid, __func__)) != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to exit define mode in file id %d", exoid);
ex_err_fn(exoid, __func__, errmsg, status);
return (EX_FATAL);
return EX_FATAL;
}
/* ======================================================================== */
......@@ -357,7 +357,7 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
case EX_EDGE_BLOCK: vblkids = VAR_ID_ED_BLK; break;
case EX_FACE_BLOCK: vblkids = VAR_ID_FA_BLK; break;
case EX_ELEM_BLOCK: vblkids = VAR_ID_EL_BLK; break;
default: return (EX_FATAL); /* should have been handled earlier; quiet compiler here */
default: return EX_FATAL; /* should have been handled earlier; quiet compiler here */
}
int att_name_varid = -1;
......@@ -375,17 +375,17 @@ int exi_put_homogenous_block_params(int exoid, size_t block_count, const struct
start[1] = 0;
count[1] = strlen(text) + 1;
for (size_t j = 0; j < blocks[i].num_attribute; j++) {
for (int64_t j = 0; j < blocks[i].num_attribute; j++) {
start[0] = j;
nc_put_vara_text(exoid, att_name_varid, start, count, text);
}
}
}
return (EX_NOERR);
return EX_NOERR;
/* Fatal error: exit definition mode and return */
error_ret:
exi_leavedef(exoid, __func__);
return (EX_FATAL);
return EX_FATAL;
}
/*
* Copyright(C) 1999-2020, 2023 National Technology & Engineering Solutions
* Copyright(C) 1999-2020, 2023, 2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -88,7 +88,7 @@ int exi_put_nodal_var_time(int exoid, int nodal_var_index, int64_t num_nodes, in
snprintf(errmsg, MAX_ERR_LENGTH, "Warning: could not find nodal variable %d in file id %d",
nodal_var_index, exoid);
ex_err_fn(exoid, __func__, errmsg, status);
return (EX_WARN);
return EX_WARN;
}
start[0] = --beg_time_step;
start[1] = 0;
......@@ -106,7 +106,7 @@ int exi_put_nodal_var_time(int exoid, int nodal_var_index, int64_t num_nodes, in
if (status != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to store nodal variables in file id %d", exoid);
ex_err_fn(exoid, __func__, errmsg, status);
return (EX_FATAL);
return EX_FATAL;
}
return (EX_NOERR);
return EX_NOERR;
}
......@@ -123,7 +123,7 @@ int ex_add_attr(int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int64_t
/* element attribute array */
/* put netcdf file into define mode */
if ((status = nc_redef(exoid)) != NC_NOERR) {
if ((status = exi_redef(exoid, __func__)) != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to place file id %d into define mode", exoid);
ex_err_fn(exoid, __func__, errmsg, status);
EX_FUNC_LEAVE(EX_FATAL);
......
/*
* Copyright(C) 1999-2020, 2022, 2023 National Technology & Engineering Solutions
* Copyright(C) 1999-2020, 2022, 2023, 2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -57,6 +57,11 @@ int ex_close(int exoid)
EX_FUNC_LEAVE(EX_FATAL);
}
#ifndef NDEBUG
struct exi_file_item *file = exi_find_file_item(exoid);
assert(!file->in_define_mode && file->persist_define_mode == 0);
#endif
/*
* NOTE: If using netcdf-4, exoid must refer to the root group.
* Need to determine whether there are any groups and if so,
......@@ -66,16 +71,16 @@ int ex_close(int exoid)
/*
* Get exoid of root group
*/
exoid &= EX_FILE_ID_MASK;
if ((status1 = nc_sync(exoid)) != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to update file id %d", exoid);
ex_err_fn(exoid, __func__, errmsg, status1);
}
if ((status2 = nc_close(exoid)) != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to close file id %d", exoid);
ex_err_fn(exoid, __func__, errmsg, status2);
int root_id = exoid & EX_FILE_ID_MASK;
if ((status2 = nc_close(root_id)) != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to close file id %d", root_id);
ex_err_fn(root_id, __func__, errmsg, status2);
}
/* Even if we have failures above due to nc_sync() or nc_close(), we still need to clean up our
......
......@@ -37,7 +37,7 @@ struct exi_file_item *exi_find_file_item(int exoid)
}
ptr = ptr->next;
}
return (ptr);
return ptr;
}
#define EX__MAX_PATHLEN 8192
......@@ -80,7 +80,8 @@ int exi_check_valid_file_id(int exoid, const char *func)
}
#if !defined BUILT_IN_SIERRA
else {
struct exi_file_item *file = exi_find_file_item(exoid);
int rootid = exoid & EX_FILE_ID_MASK;
struct exi_file_item *file = exi_find_file_item(rootid);
if (!file) {
error = true;
......@@ -93,13 +94,14 @@ int exi_check_valid_file_id(int exoid, const char *func)
if (old_opt & EX_ABORT) {
ex_opts(EX_VERBOSE | EX_ABORT);
}
int rootid = exoid & EX_FILE_ID_MASK;
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH,
"ERROR: In \"%s\", the file id %d was not obtained via a call "
"to \"ex_open\" or \"ex_create\".\n\t\tIt does not refer to a "
"valid open exodus file.\n\t\tAborting to avoid file "
"corruption or data loss or other potential problems.",
func, exoid);
func, rootid);
ex_err(__func__, errmsg, EX_BADFILEID);
ex_opts(old_opt);
return EX_FATAL;
......@@ -231,7 +233,7 @@ int exi_conv_init(int exoid, int *comp_wordsize, int *io_wordsize, int file_word
EX_FUNC_LEAVE(EX_FATAL);
}
new_file->file_id = exoid;
new_file->file_id = (unsigned)exoid & EX_FILE_ID_MASK;
new_file->user_compute_wordsize = *comp_wordsize == 4 ? 0 : 1;
new_file->int64_status = int64_status;
new_file->maximum_name_length = exi_default_max_name_length;
......@@ -240,6 +242,7 @@ int exi_conv_init(int exoid, int *comp_wordsize, int *io_wordsize, int file_word
new_file->assembly_count = 0;
new_file->blob_count = 0;
new_file->compression_level = 0;
new_file->quantize_nsd = 0;
new_file->shuffle = 0;
new_file->file_type = filetype - 1;
new_file->is_parallel = is_parallel;
......@@ -249,6 +252,8 @@ int exi_conv_init(int exoid, int *comp_wordsize, int *io_wordsize, int file_word
new_file->has_edges = 1;
new_file->has_faces = 1;
new_file->has_elems = 1;
new_file->in_define_mode = 0;
new_file->persist_define_mode = 0;
new_file->is_write = is_write;
new_file->next = file_list;
......@@ -282,9 +287,11 @@ void exi_conv_exit(int exoid)
struct exi_file_item *file = file_list;
struct exi_file_item *prev = NULL;
int root_id = (unsigned)exoid & EX_FILE_ID_MASK;
EX_FUNC_ENTER();
while (file) {
if (file->file_id == exoid) {
if (file->file_id == root_id) {
break;
}
......@@ -441,19 +448,76 @@ int ex_set_option(int exoid, ex_option_type option, int option_value)
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH,
"ERROR: invalid value %d for SZIP Compression. Must be even and 4 <= value <= "
"32. Ignoring.",
"32. Setting value to 4.",
value);
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
value = 4;
}
}
else if (file->compression_algorithm == EX_COMPRESS_ZSTD) {
#if NC_HAS_ZSTD == 1
if (value < -131072 || value > 22) {
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH,
"ERROR: invalid value %d for ZSTD Compression. Must be between -131072 and 22. "
"Setting value to 4",
value);
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
EX_FUNC_LEAVE(EX_FATAL);
value = 4;
}
#else
char errmsg[MAX_ERR_LENGTH];
snprintf(
errmsg, MAX_ERR_LENGTH,
"ERROR: Zstandard compression is not supported in this version of netCDF library.");
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
#endif
}
else if (file->compression_algorithm == EX_COMPRESS_BZ2) {
#if NC_HAS_BZ2 == 1
if (value < 0 || value > 9) {
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH,
"ERROR: invalid value %d for BZIP2 Compression. Must be between 0 and 9 "
"inclusive. Setting value to 1.",
value);
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
value = 1;
}
#else
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH,
"ERROR: Bzip2 compression is not supported in this version of netCDF library.");
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
#endif
}
file->compression_level = value;
assert(value == file->compression_level);
}
else {
file->compression_level = 0;
}
break;
case EX_OPT_QUANTIZE_NSD:
#if NC_HAS_QUANTIZE == 1
if (option_value > 15) {
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH,
"ERROR: invalid value %d for Quantize NSD. Must be less than or equal to 15. "
"Setting value to 15.",
option_value);
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
option_value = 15;
}
file->quantize_nsd = option_value;
#else
{
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH,
"ERROR: Quanitzation is not supported in this version of netCDF library.");
ex_err_fn(exoid, __func__, errmsg, EX_BADPARAM);
}
#endif
break;
case EX_OPT_COMPRESSION_SHUFFLE: /* 0 (disabled); 1 (enabled) */
file->shuffle = option_value != 0 ? 1 : 0;
break;
......@@ -486,10 +550,10 @@ int exi_comp_ws(int exoid)
char errmsg[MAX_ERR_LENGTH];
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: unknown file id %d", exoid);
ex_err(__func__, errmsg, EX_BADFILEID);
return (EX_FATAL);
return EX_FATAL;
}
/* Stored as 0 for 4-byte; 1 for 8-byte */
return ((file->user_compute_wordsize + 1) * 4);
return (file->user_compute_wordsize + 1) * 4;
}
/*!
......
/*
* Copyright(C) 1999-2023 National Technology & Engineering Solutions
* Copyright(C) 1999-2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -21,7 +21,7 @@
#define EXCHECKI(funcall) \
if ((funcall) != NC_NOERR) { \
fprintf(stderr, "Error calling %s\n", TOSTRING(funcall)); \
return (EX_FATAL); \
return EX_FATAL; \
}
#define EXCHECKF(funcall) \
......@@ -66,7 +66,7 @@ static int is_truth_table_variable(const char *var_name)
/* If copying just the "mesh" or "non-transient" portion of the
* input DB, these are the variables that won't be copied:
*/
return (strstr(var_name, "_var_tab") != NULL);
return strstr(var_name, "_var_tab") != NULL;
}
static int is_non_mesh_variable(const char *var_name)
......@@ -108,7 +108,7 @@ static int ex_copy_internal(int in_exoid, int out_exoid, int mesh_only)
}
/* put output file into define mode */
EXCHECK(nc_redef(out_exoid));
EXCHECK(exi_redef(out_exoid, __func__));
/* copy global attributes */
EXCHECK(cpy_global_att(in_exoid, out_exoid));
......@@ -176,6 +176,7 @@ int ex_copy_transient(int in_exoid, int out_exoid)
static int cpy_variable_data(int in_exoid, int out_exoid, int in_large, int mesh_only)
{
int nvars; /* number of variables */
/* NOTE: This is incorrect for files containing groups */
EXCHECKI(nc_inq(in_exoid, NULL, &nvars, NULL, NULL));
for (int varid = 0; varid < nvars; varid++) {
bool is_filtered;
......@@ -216,6 +217,7 @@ static int cpy_variables(int in_exoid, int out_exoid, int in_large, int mesh_onl
{
int recdimid; /* id of unlimited dimension */
int nvars; /* number of variables */
/* NOTE: This is incorrect for files containing groups */
EXCHECKI(nc_inq(in_exoid, NULL, &nvars, NULL, &recdimid));
for (int varid = 0; varid < nvars; varid++) {
struct ncvar var; /* variable */
......@@ -259,10 +261,11 @@ static int cpy_dimension(int in_exoid, int out_exoid, int mesh_only)
int ndims; /* number of dimensions */
int recdimid; /* id of unlimited dimension */
/* NOTE: This is incorrect for files containing groups */
EXCHECKI(nc_inq(in_exoid, &ndims, NULL, NULL, &recdimid));
for (int dimid = 0; dimid < ndims; dimid++) {
char dim_nm[NC_MAX_NAME + 1];
char dim_nm[EX_MAX_NAME + 1];
size_t dim_sz;
EXCHECK(nc_inq_dim(in_exoid, dimid, dim_nm, &dim_sz));
......@@ -344,6 +347,7 @@ static int cpy_global_att(int in_exoid, int out_exoid)
struct ncatt att; /* attribute */
int ngatts;
/* NOTE: This is incorrect for files containing groups */
EXCHECKI(nc_inq(in_exoid, NULL, NULL, &ngatts, NULL));
/* copy global attributes */
......@@ -413,7 +417,7 @@ static int cpy_att(int in_id, int out_id, int var_in_id, int var_out_id)
nc_copy_att(in_id, var_in_id, att_nm, out_id, var_out_id);
}
return (EX_NOERR);
return EX_NOERR;
}
/*! \endcond */
......@@ -510,7 +514,7 @@ static int cpy_var_def(int in_id, int out_id, int rec_dim_id, char *var_nm)
/* Get the dimension sizes and names */
int dim_out_id[NC_MAX_VAR_DIMS];
for (int idx = 0; idx < nbr_dim; idx++) {
char dim_nm[NC_MAX_NAME + 1];
char dim_nm[EX_MAX_NAME + 1];
size_t dim_sz;
EXCHECKI(nc_inq_dim(in_id, dim_in_id[idx], dim_nm, &dim_sz));
......@@ -718,11 +722,11 @@ static int cpy_var_val(int in_id, int out_id, char *var_nm)
/* Free the space that held the variable */
free(void_ptr);
return (EX_NOERR);
return EX_NOERR;
err_ret:
free(void_ptr);
return (EX_FATAL);
return EX_FATAL;
} /* end cpy_var_val() */
......@@ -789,7 +793,7 @@ static int cpy_coord_val(int in_id, int out_id, char *var_nm, int in_large)
/* Free the space that held the variable */
free(void_ptr);
return (EX_NOERR);
return EX_NOERR;
} /* end cpy_coord_val() */
......
/*
* Copyright(C) 1999-2020, 2022 National Technology & Engineering Solutions
* Copyright(C) 1999-2020, 2022, 2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -26,7 +26,7 @@ int ex_create_group(int parent_id, const char *group_name)
EX_FUNC_LEAVE(EX_FATAL);
}
if ((status = nc_redef(parent_id)) != NC_NOERR) {
if ((status = exi_redef(parent_id, __func__)) != NC_NOERR) {
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to put file id %d into define mode", parent_id);
ex_err_fn(exoid, __func__, errmsg, status);
EX_FUNC_LEAVE(EX_FATAL);
......
......@@ -192,15 +192,31 @@ int ex_create_par_int(const char *path, int cmode, int *comp_ws, int *io_ws, MPI
}
#endif
#if NC_HAS_PNETCDF
bool i_created_info = false;
if (info == MPI_INFO_NULL) {
MPI_Info_create(&info);
i_created_info = true;
}
MPI_Info_set(info, "nc_header_align_size", "1048576");
#endif
/* There is an issue on some versions of mpi that limit the length of the path to <250 characters
* Check for that here and use `path` if `canon_path` is >=250 characters...
*/
if (strlen(canon_path) >= 250) {
status = nc_create_par(path, nc_mode, comm, info, &exoid);
}
else {
status = nc_create_par(canon_path, nc_mode, comm, info, &exoid);
}
#if NC_HAS_PNETCDF
if (i_created_info) {
MPI_Info_free(&info);
}
#endif
if (status != NC_NOERR) {
if (my_mode & EX_NETCDF4) {
#if NC_HAS_PARALLEL4
......
/*
* Copyright(C) 1999-2020, 2023 National Technology & Engineering Solutions
* Copyright(C) 1999-2020, 2023, 2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -171,7 +171,6 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
void_int *side_sets_elem_list, void_int *side_sets_node_list,
void_int *side_sets_side_list)
{
size_t i, j, k, n;
int num_side_sets, num_elem_blks;
int64_t tot_num_elem = 0, tot_num_ss_elem = 0, elem_num = 0, ndim;
void_int *elem_blk_ids = NULL;
......@@ -179,7 +178,7 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
void_int *ss_elem_ndx = NULL;
void_int *ss_elem_node_ndx = NULL;
void_int *ss_parm_ndx = NULL;
size_t elem_ctr, node_ctr, elem_num_pos;
int64_t elem_ctr, node_ctr, elem_num_pos;
int num_nodes_per_elem, num_node_per_side;
int *same_elem_type = NULL;
......@@ -255,12 +254,12 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
/* First count up # of elements in the side sets*/
if (ints_64) {
for (i = 0; i < num_side_sets; i++) {
for (int i = 0; i < num_side_sets; i++) {
tot_num_ss_elem += ((int64_t *)num_elem_per_set)[i];
}
}
else {
for (i = 0; i < num_side_sets; i++) {
for (int i = 0; i < num_side_sets; i++) {
tot_num_ss_elem += ((int *)num_elem_per_set)[i];
}
}
......@@ -279,7 +278,7 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
if (int_size == sizeof(int64_t)) {
/* Sort side set element list into index array - non-destructive */
int64_t *elems = (int64_t *)ss_elem_ndx;
for (i = 0; i < tot_num_ss_elem; i++) {
for (int i = 0; i < tot_num_ss_elem; i++) {
elems[i] = i; /* init index array to current position */
}
exi_iqsort64(side_sets_elem_list, elems, tot_num_ss_elem);
......@@ -287,7 +286,7 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
else {
/* Sort side set element list into index array - non-destructive */
int *elems = (int *)ss_elem_ndx;
for (i = 0; i < tot_num_ss_elem; i++) {
for (int i = 0; i < tot_num_ss_elem; i++) {
elems[i] = i; /* init index array to current position */
}
exi_iqsort(side_sets_elem_list, elems, tot_num_ss_elem);
......@@ -325,7 +324,7 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
goto cleanup;
}
elem_ctr = 0;
for (i = 0; i < num_elem_blks; i++) {
for (int i = 0; i < num_elem_blks; i++) {
ex_entity_id id;
if (ints_64) {
id = ((int64_t *)elem_blk_ids)[i];
......@@ -383,9 +382,10 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
same_elem_type[0] = true;
if (ints_64) {
elem_ctr = ((int64_t *)num_elem_per_set)[0];
for (i = 0, k = 0; i < tot_num_ss_elem; i++) {
for (int64_t i = 0, k = 0; i < tot_num_ss_elem; i++) {
int64_t elem = ((int64_t *)side_sets_elem_list)[i];
for (j = 0; j < num_elem_blks; j++) {
int j = 0;
for (; j < num_elem_blks; j++) {
if (elem <= elem_blk_parms[j].elem_ctr) {
break;
}
......@@ -420,10 +420,12 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
*/
node_ctr = 0;
elem_ctr = ((int64_t *)num_elem_per_set)[0];
for (i = 0, k = 0; i < tot_num_ss_elem; i++) {
int i = 0;
for (int k = 0; i < tot_num_ss_elem; i++) {
int64_t elem = ((int64_t *)side_sets_elem_list)[i];
for (j = 0; j < num_elem_blks; j++) {
int j = 0;
for (; j < num_elem_blks; j++) {
if (elem <= elem_blk_parms[j].elem_ctr) {
break;
}
......@@ -460,10 +462,11 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
}
else {
elem_ctr = ((int *)num_elem_per_set)[0];
for (i = 0, k = 0; i < tot_num_ss_elem; i++) {
for (int i = 0, k = 0; i < tot_num_ss_elem; i++) {
int elem = ((int *)side_sets_elem_list)[i];
for (j = 0; j < num_elem_blks; j++) {
int j = 0;
for (; j < num_elem_blks; j++) {
if (elem <= elem_blk_parms[j].elem_ctr) {
break;
}
......@@ -498,10 +501,12 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
*/
node_ctr = 0;
elem_ctr = ((int *)num_elem_per_set)[0];
for (i = 0, k = 0; i < tot_num_ss_elem; i++) {
int i = 0;
for (int k = 0; i < tot_num_ss_elem; i++) {
int elem = ((int *)side_sets_elem_list)[i];
for (j = 0; j < num_elem_blks; j++) {
int j = 0;
for (; j < num_elem_blks; j++) {
if (elem <= elem_blk_parms[j].elem_ctr) {
break;
}
......@@ -541,7 +546,7 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
elem_ctr = 0;
for (j = 0; j < tot_num_ss_elem; j++) {
for (int j = 0; j < tot_num_ss_elem; j++) {
int64_t elem;
int64_t idx;
int64_t ss_node0, ss_node1;
......@@ -617,7 +622,8 @@ int ex_cvt_nodes_to_sides(int exoid, void_int *num_elem_per_set, void_int *num_n
num_nodes_per_elem = elem_blk_parms[p_ndx].num_nodes_per_elem;
for (n = 0; n < num_nodes_per_elem; n++) {
int n = 0;
for (; n < num_nodes_per_elem; n++) {
/* find node in connectivity array that matches first node in side set */
if (((int_size == sizeof(int64_t)) &&
(ss_node0 == ((int64_t *)connect)[num_nodes_per_elem * (elem_num_pos) + n])) ||
......
/*
* Copyright(C) 1999-2020, 2023 National Technology & Engineering Solutions
* Copyright(C) 1999-2025 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -225,6 +225,7 @@ void ex_err_fn(int exoid, const char *module_name, const char *message, int err_
fprintf(stderr, " exerrval = %d\n", EX_ERR_NUM);
fprintf(stderr, "\t%s\n", ex_strerror(EX_ERR_NUM));
fflush(stderr);
EX_FUNC_VOID();
}
......@@ -239,6 +240,7 @@ void ex_err_fn(int exoid, const char *module_name, const char *message, int err_
if (err_num == EX_NULLENTITY) {
if (exoptval & EX_NULLVERBOSE) {
fprintf(stderr, "\nExodus Library Warning: [%s]\n\t%s\n", module_name, message);
fflush(stderr);
}
}
......@@ -262,8 +264,8 @@ void ex_err_fn(int exoid, const char *module_name, const char *message, int err_
fprintf(stderr, "\nExodus Library Warning/Error: [%s]\n\t%s\n", module_name, message);
}
fprintf(stderr, "\t%s\n", ex_strerror(err_num));
fflush(stderr);
}
fflush(stderr);
/* with netCDF 3.4, (fatal) system error codes are > 0;
so all EXODUS fatal error codes are > 0 */
......@@ -333,7 +335,8 @@ const char *ex_strerror(int err_num)
case EX_MEMFAIL: return "Memory allocation failure";
case EX_BADFILEMODE: return "Bad file mode -- cannot specify both EX_READ and EX_WRITE";
case EX_BADFILEID: return "Bad file id. Could not find exodus file associated with file id.";
case EX_WRONGFILETYPE: return "Integer sizes must match for input and output file in ex_copy.";
case EX_WRONGFILETYPE:
return "File does not exist or is not of a supported type (netcdf3, netcdf4, netcdf5).";
case EX_LOOKUPFAIL:
return "Id lookup failed for specified entity type. Could not find entity with specified id.";
case EX_BADFILENAME: return "Empty or null filename specified.";
......@@ -344,6 +347,8 @@ const char *ex_strerror(int err_num)
case EX_INTERNAL: return "Internal logic error in exodus library.";
case EX_NOTROOTID: return "File id is not the root id; it is a subgroup id.";
case EX_NULLENTITY: return "Null entity found.";
case EX_NOTFOUND: return "Could not find requested variable on database.";
case EX_INTSIZEMISMATCH: return "Integer sizes must match for input and output file in ex_copy.";
case EX_MSG: return "Message printed; no error implied.";
default: return nc_strerror(err_num);
}
......
......@@ -9,7 +9,6 @@
#include "exodusII.h" // for ex_err, etc
#include "exodusII_int.h" // for EX_FATAL, etc
#include <assert.h>
#include <math.h>
#define _GNU_SOURCE
#include <string.h>
......@@ -43,19 +42,25 @@ static size_t my_strlcat(char *dst, const char *src, size_t maxlen)
return dstlen + srclen;
}
static int number_width(const size_t number)
static int number_width(size_t number)
{
/* Could use `(int)floor(log10(number)) + 1`, but that requires math library... */
if (number == 0) {
return 1;
}
int width = (int)floor(log10(number)) + 1;
return width;
int count = 0;
// Iterate till n has digits remaining
while (number != 0) {
number /= 10;
++count;
}
return count;
}
static void verify_valid_component(int component, size_t cardinality, size_t suffix_size)
{
assert(cardinality == suffix_size);
assert(component - 1 < suffix_size);
assert(component - 1 < (int)suffix_size);
}
const char *ex_component_field_name(ex_field *field, int component[EX_MAX_FIELD_NESTING])
......@@ -71,7 +76,7 @@ const char *ex_component_field_name(ex_field *field, int component[EX_MAX_FIELD_
}
// Build up name incrementally which makes it easier to handle an empty component_separator...
sprintf(field_name, "%s", field->name);
snprintf(field_name, EX_MAX_NAME + 1, "%s", field->name);
for (int i = 0; i < field->nesting; i++) {
if (field->component_separator[i]) {
......@@ -327,8 +332,8 @@ const char *ex_field_component_suffix(ex_field *field, int nest_level, int compo
static char user_suffix[32];
static char format[8];
int width = number_width(field->cardinality[nest_level]);
sprintf(format, "%c%d%dd", '%', 0, width);
sprintf(user_suffix, format, component);
snprintf(format, 8, "%c%d%dd", '%', 0, width);
snprintf(user_suffix, 32, format, component);
return user_suffix;
}
......@@ -338,8 +343,8 @@ const char *ex_field_component_suffix(ex_field *field, int nest_level, int compo
static char user_suffix[32];
static char format[8];
int width = number_width(field->cardinality[nest_level]);
sprintf(format, "%c%d%dd", '%', 0, width);
sprintf(user_suffix, format, component - 1);
snprintf(format, 8, "%c%d%dd", '%', 0, width);
snprintf(user_suffix, 32, format, component - 1);
return user_suffix;
}
......
/*
* Copyright(C) 1999-2022 National Technology & Engineering Solutions
* Copyright(C) 1999-2022, 2024 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
......@@ -26,7 +26,7 @@ int ex_get_assemblies(int exoid, ex_assembly *assembly)
snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to inquire ASSEMBLY count in file id %d",
exoid);
ex_err_fn(exoid, __func__, errmsg, num_assembly);
return (EX_FATAL);
return EX_FATAL;
}
if (ex_int64_status(exoid) & EX_IDS_INT64_API) {
......