[{"data":1,"prerenderedAt":424},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia":232,"sidebar-sei-cert-fortran-coding-standard":239},[4,8],{"title":5,"path":6,"_path":6,"fromAppConfig":7},"Home","\u002F",true,{"title":9,"path":10,"children":11,"_path":30,"fromAppConfig":7},"Coding Standards","\u002Fcoding-standards\u002F",[12,15,18,21,24,27],{"title":13,"path":14},"Android Coding Standard","\u002Fandroid-secure-coding-standard\u002F",{"title":16,"path":17},"C Coding Standard","\u002Fsei-cert-c-coding-standard\u002F",{"title":19,"path":20},"C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard\u002F",{"title":22,"path":23},"Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard\u002F",{"title":25,"path":26},"Java Coding Standard","\u002Fsei-cert-oracle-coding-standard-for-java\u002F",{"title":28,"path":29},"Perl Coding Standard","\u002Fsei-cert-perl-coding-standard\u002F","\u002Fcoding-standards",{"id":32,"title":33,"body":34,"description":199,"extension":226,"meta":227,"navigation":7,"path":228,"seo":229,"stem":230,"__hash__":231},"content\u002F9.sei-cert-fortran-coding-standard\u002F05.exceptions-and-ieee-arithmetic-eia\u002F1.index.md","Exceptions and IEEE Arithmetic (EIA)",{"type":35,"value":36,"toc":219},"minimark",[37,41,46,57,75,79,156,160,163,185,189],[38,39,33],"h1",{"id":40},"exceptions-and-ieee-arithmetic-eia",[42,43,45],"h2",{"id":44},"guidelines","Guidelines",[47,48,49],"ul",{},[50,51,52],"li",{},[53,54,56],"a",{"href":55},"\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia\u002Feia01-f","EIA01-F. Enforce evaluation order in floating-point expressions",[58,59,60,64,67,68,74],"p",{},[61,62,63],"strong",{},"Information for Editors",[65,66],"br",{},"\nTo have a new guideline automatically listed above be sure to label it ",[53,69,73],{"href":70,"rel":71},"https:\u002F\u002Fwiki.sei.cmu.edu\u002F\u002Fconfluence\u002Flabel\u002Ffortran\u002Feia",[72],"nofollow","eia"," .",[42,76,78],{"id":77},"risk-assessment-summary","Risk Assessment Summary",[80,81,82,103],"table",{},[83,84,85],"thead",{},[86,87,88,91,93,95,97,99,101],"tr",{},[89,90],"th",{},[89,92],{},[89,94],{},[89,96],{},[89,98],{},[89,100],{},[89,102],{},[104,105,106,130],"tbody",{},[86,107,108,112,115,118,121,124,127],{},[109,110,111],"td",{},"Rule",[109,113,114],{},"Severity",[109,116,117],{},"Likelihood",[109,119,120],{},"Detectable",[109,122,123],{},"Repairable",[109,125,126],{},"Priority",[109,128,129],{},"Level",[86,131,132,135,138,141,144,146,151],{},[109,133,134],{},"EIA01-F",[109,136,137],{},"Low",[109,139,140],{},"Probable",[109,142,143],{},"No",[109,145,143],{},[109,147,148],{},[61,149,150],{},"P3",[109,152,153],{},[61,154,155],{},"L3",[42,157,159],{"id":158},"related-rules-and-recommendations","Related Rules and Recommendations",[161,162],"hr",{},[58,164,165,172,173,172,179],{},[53,166,168],{"href":167},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[169,170],"img",{"src":171},"attachments\u002F88487236\u002F638779559.png"," ",[53,174,176],{"href":175},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[169,177],{"src":178},"attachments\u002F88487236\u002F638779560.png",[53,180,182],{"href":181},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[169,183],{"src":184},"attachments\u002F88487236\u002F638779561.png",[42,186,188],{"id":187},"attachments","Attachments:",[190,191,195],"div",{"className":192,"align":194},[193],"greybox","left",[58,196,197,172,201,204,205,207,172,209,204,212,214,172,216,204],{},[169,198],{"alt":199,"src":200},"","images\u002Ficons\u002Fbullet_blue.gif",[53,202,203],{"href":171},"button_arrow_left.png"," (image\u002Fpng)",[65,206],{},[169,208],{"alt":199,"src":200},[53,210,211],{"href":178},"button_arrow_up.png",[65,213],{},[169,215],{"alt":199,"src":200},[53,217,218],{"href":184},"button_arrow_right.png",{"title":199,"searchDepth":220,"depth":220,"links":221},2,[222,223,224,225],{"id":44,"depth":220,"text":45},{"id":77,"depth":220,"text":78},{"id":158,"depth":220,"text":159},{"id":187,"depth":220,"text":188},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia",{"title":33,"description":199},"9.sei-cert-fortran-coding-standard\u002F05.exceptions-and-ieee-arithmetic-eia\u002F1.index","a_LIusrcLiysY6BHH9DH7uH-bOcLFOsFPg7xodhu20w",[233,237],{"title":234,"path":235,"stem":236,"children":-1},"CON05-F. Ensure correct OpenMP datascoping of variables in parallel regions","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon05-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F6.con05-f",{"title":56,"path":55,"stem":238,"children":-1},"9.sei-cert-fortran-coding-standard\u002F05.exceptions-and-ieee-arithmetic-eia\u002F2.eia01-f",[240],{"title":241,"path":242,"stem":243,"children":244},"Sei Cert Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard",[245,248,270,284,307,311,315,325,329,333,337,341,359,377,381,399,420],{"title":246,"path":242,"stem":247},"SEI CERT Fortran Coding Standard","9.sei-cert-fortran-coding-standard\u002F1.index",{"title":249,"path":250,"stem":251,"children":252},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F1.index",[253,254,258,262,266],{"title":249,"path":250,"stem":251},{"title":255,"path":256,"stem":257},"ARR01-F. Do not use out-of-bounds arrays subscripts","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr01-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F2.arr01-f",{"title":259,"path":260,"stem":261},"ARR02-F. Declare array dummy arguments as assumed-shape","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr02-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F3.arr02-f",{"title":263,"path":264,"stem":265},"ARR03-F. Specify array bounds when copying data to device memory","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr03-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F4.arr03-f",{"title":267,"path":268,"stem":269},"ARR04-F. Ensure arrays ranges mapped to devices cover all accessed elements","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr04-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F5.arr04-f",{"title":271,"path":272,"stem":273,"children":274},"Attribute Declarations and Specifications (ADS)","\u002Fsei-cert-fortran-coding-standard\u002Fattribute-declarations-and-specifications-ads","9.sei-cert-fortran-coding-standard\u002F03.attribute-declarations-and-specifications-ads\u002F1.index",[275,276,280],{"title":271,"path":272,"stem":273},{"title":277,"path":278,"stem":279},"ADS01-F. Explicitly declare pure procedures","\u002Fsei-cert-fortran-coding-standard\u002Fattribute-declarations-and-specifications-ads\u002Fads01-f","9.sei-cert-fortran-coding-standard\u002F03.attribute-declarations-and-specifications-ads\u002F2.ads01-f",{"title":281,"path":282,"stem":283},"ADS02-F. Separate initialization from declaration to avoid implicit variable persistence","\u002Fsei-cert-fortran-coding-standard\u002Fattribute-declarations-and-specifications-ads\u002Fads02-f","9.sei-cert-fortran-coding-standard\u002F03.attribute-declarations-and-specifications-ads\u002F2.ads02-f",{"title":285,"path":286,"stem":287,"children":288},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F1.index",[289,290,294,298,302,306],{"title":285,"path":286,"stem":287},{"title":291,"path":292,"stem":293},"CON01-F. Explicitly declare OpenMP data-sharing attributes for all variables","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon01-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F2.con01-f",{"title":295,"path":296,"stem":297},"CON02-F. Protect reduction variables in multithreaded code","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon02-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F3.con02-f",{"title":299,"path":300,"stem":301},"CON03-F. Protect multithreading recurrences to avoid data races","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon03-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F4.con03-f",{"title":303,"path":304,"stem":305},"CON04-F. Do not use out-of-dimension subscripts in multithreaded code","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon04-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F5.con04-f",{"title":234,"path":235,"stem":236},{"title":33,"path":228,"stem":230,"children":308},[309,310],{"title":33,"path":228,"stem":230},{"title":56,"path":55,"stem":238},{"title":312,"path":313,"stem":314},"Execution Control (EXC)","\u002Fsei-cert-fortran-coding-standard\u002Fexecution-control-exc","9.sei-cert-fortran-coding-standard\u002F06.execution-control-exc",{"title":316,"path":317,"stem":318,"children":319},"Expressions and Assignment (EXA)","\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa","9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F1.index",[320,321],{"title":316,"path":317,"stem":318},{"title":322,"path":323,"stem":324},"EXA01-F. Do not read uninitialized memory","\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa\u002Fexa01-f","9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F2.exa01-f",{"title":326,"path":327,"stem":328},"Input and Output Editing (IOE)","\u002Fsei-cert-fortran-coding-standard\u002Finput-and-output-editing-ioe","9.sei-cert-fortran-coding-standard\u002F08.input-and-output-editing-ioe",{"title":330,"path":331,"stem":332},"Input and Output Statements (IOS)","\u002Fsei-cert-fortran-coding-standard\u002Finput-and-output-statements-ios","9.sei-cert-fortran-coding-standard\u002F09.input-and-output-statements-ios",{"title":334,"path":335,"stem":336},"Interoperability with C (IWC)","\u002Fsei-cert-fortran-coding-standard\u002Finteroperability-with-c-iwc","9.sei-cert-fortran-coding-standard\u002F10.interoperability-with-c-iwc",{"title":338,"path":339,"stem":340},"Intrinsic Procedures and Modules (IPM)","\u002Fsei-cert-fortran-coding-standard\u002Fintrinsic-procedures-and-modules-ipm","9.sei-cert-fortran-coding-standard\u002F11.intrinsic-procedures-and-modules-ipm",{"title":342,"path":343,"stem":344,"children":345},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F1.index",[346,347,351,355],{"title":342,"path":343,"stem":344},{"title":348,"path":349,"stem":350},"MSC01-F. Avoid using legacy or obsolescent Fortran constructs","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc\u002Fmsc01-f","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F2.msc01-f",{"title":352,"path":353,"stem":354},"MSC02-F. Beware of compiler-specific extensions","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc\u002Fmsc02-f","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F3.msc02-f",{"title":356,"path":357,"stem":358},"MSC03-F. Do not depend on undefined behavior","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc\u002Fmsc03-f","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F4.msc03-f",{"title":360,"path":361,"stem":362,"children":363},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F1.index",[364,365,369,373],{"title":360,"path":361,"stem":362},{"title":366,"path":367,"stem":368},"PRC01-F. Disable the implicit declaration of procedures","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc\u002Fprc01-f","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F2.prc01-f",{"title":370,"path":371,"stem":372},"PRC02-F. Avoid implicit interfaces by using module procedures","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc\u002Fprc02-f","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F3.prc02-f",{"title":374,"path":375,"stem":376},"PRC03-F. Declare the intent for all dummy arguments","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc\u002Fprc03-f","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F4.prc03-f",{"title":378,"path":379,"stem":380},"Program Units (PRU)","\u002Fsei-cert-fortran-coding-standard\u002Fprogram-units-pru","9.sei-cert-fortran-coding-standard\u002F14.program-units-pru",{"title":382,"path":383,"stem":384,"children":385},"Scope, Association, and Definition (SAD)","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F1.index",[386,387,391,395],{"title":382,"path":383,"stem":384},{"title":388,"path":389,"stem":390},"SAD02-F. Minimize imported module entities using the ONLY clause","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Fsad02-f","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F2.sad02-f",{"title":392,"path":393,"stem":394},"SAD03-F. Replace common block with modules for safer data encapsulation","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Fsad03-f","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F3.sad03-f",{"title":396,"path":397,"stem":398},"Limit the scope of variables and procedures","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Flimit-the-scope-of-variables-and-procedures","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F4.limit-the-scope-of-variables-and-procedures",{"title":400,"path":401,"stem":402,"children":403},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F1.index",[404,405,408,412,416],{"title":400,"path":401,"stem":402},{"title":406,"path":181,"stem":407},"TYP01-F. Use Intrinsic Assignment for Character Entities","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F2.typ01-f",{"title":409,"path":410,"stem":411},"TYP02-F. Prohibit implicit typing in all program units","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp02-f","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F3.typ02-f",{"title":413,"path":414,"stem":415},"TYP03-F. Ensure intrinsic function arguments match intended precision","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp03-f","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F4.typ03-f",{"title":417,"path":418,"stem":419},"TYP04-F. Centralize kind definitions to ensure consistent precision","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp04-f","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F5.typ04-f",{"title":421,"path":422,"stem":423},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1780320139759]