[{"data":1,"prerenderedAt":427},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa":235,"sidebar-sei-cert-fortran-coding-standard":242},[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":77,"extension":229,"meta":230,"navigation":7,"path":231,"seo":232,"stem":233,"__hash__":234},"content\u002F9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F1.index.md","Expressions and Assignment (EXA)",{"type":35,"value":36,"toc":221},"minimark",[37,41,46,57,75,78,82,159,163,166,188,192],[38,39,33],"h1",{"id":40},"expressions-and-assignment-exa",[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\u002Fexpressions-and-assignment-exa\u002Fexa01-f","EXA01-F. Do not read uninitialized memory",[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\u002Fexa",[72],"nofollow","exa"," .",[42,76],{"id":77},"",[42,79,81],{"id":80},"risk-assessment-summary","Risk Assessment Summary",[83,84,85,106],"table",{},[86,87,88],"thead",{},[89,90,91,94,96,98,100,102,104],"tr",{},[92,93],"th",{},[92,95],{},[92,97],{},[92,99],{},[92,101],{},[92,103],{},[92,105],{},[107,108,109,133],"tbody",{},[89,110,111,115,118,121,124,127,130],{},[112,113,114],"td",{},"Rule",[112,116,117],{},"Severity",[112,119,120],{},"Likelihood",[112,122,123],{},"Detectable",[112,125,126],{},"Repairable",[112,128,129],{},"Priority",[112,131,132],{},"Level",[89,134,135,138,141,144,147,149,154],{},[112,136,137],{},"EXA01-F",[112,139,140],{},"High",[112,142,143],{},"Likely",[112,145,146],{},"Yes",[112,148,146],{},[112,150,151],{},[61,152,153],{},"P27",[112,155,156],{},[61,157,158],{},"L1",[42,160,162],{"id":161},"related-rules-and-recommendations","Related Rules and Recommendations",[164,165],"hr",{},[58,167,168,175,176,175,182],{},[53,169,171],{"href":170},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[172,173],"img",{"src":174},"attachments\u002F88487239\u002F638779515.png"," ",[53,177,179],{"href":178},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[172,180],{"src":181},"attachments\u002F88487239\u002F638779516.png",[53,183,185],{"href":184},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[172,186],{"src":187},"attachments\u002F88487239\u002F638779517.png",[42,189,191],{"id":190},"attachments","Attachments:",[193,194,198],"div",{"className":195,"align":197},[196],"greybox","left",[58,199,200,175,203,206,207,209,175,211,206,214,216,175,218,206],{},[172,201],{"alt":77,"src":202},"images\u002Ficons\u002Fbullet_blue.gif",[53,204,205],{"href":174},"button_arrow_left.png"," (image\u002Fpng)",[65,208],{},[172,210],{"alt":77,"src":202},[53,212,213],{"href":181},"button_arrow_up.png",[65,215],{},[172,217],{"alt":77,"src":202},[53,219,220],{"href":187},"button_arrow_right.png",{"title":77,"searchDepth":222,"depth":222,"links":223},2,[224,225,226,227,228],{"id":44,"depth":222,"text":45},{"id":77,"depth":222,"text":77},{"id":80,"depth":222,"text":81},{"id":161,"depth":222,"text":162},{"id":190,"depth":222,"text":191},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa",{"title":33,"description":77},"9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F1.index","laQ6RuKbRit6fdKaVBLyIbcKO6611LJ5bWmTzBpE0tM",[236,240],{"title":237,"path":238,"stem":239,"children":-1},"Execution Control (EXC)","\u002Fsei-cert-fortran-coding-standard\u002Fexecution-control-exc","9.sei-cert-fortran-coding-standard\u002F06.execution-control-exc",{"title":56,"path":55,"stem":241,"children":-1},"9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F2.exa01-f",[243],{"title":244,"path":245,"stem":246,"children":247},"Sei Cert Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard",[248,251,273,287,313,323,324,328,332,336,340,344,362,380,384,402,423],{"title":249,"path":245,"stem":250},"SEI CERT Fortran Coding Standard","9.sei-cert-fortran-coding-standard\u002F1.index",{"title":252,"path":253,"stem":254,"children":255},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F1.index",[256,257,261,265,269],{"title":252,"path":253,"stem":254},{"title":258,"path":259,"stem":260},"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":262,"path":263,"stem":264},"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":266,"path":267,"stem":268},"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":270,"path":271,"stem":272},"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":274,"path":275,"stem":276,"children":277},"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",[278,279,283],{"title":274,"path":275,"stem":276},{"title":280,"path":281,"stem":282},"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":284,"path":285,"stem":286},"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":288,"path":289,"stem":290,"children":291},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F1.index",[292,293,297,301,305,309],{"title":288,"path":289,"stem":290},{"title":294,"path":295,"stem":296},"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":298,"path":299,"stem":300},"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":302,"path":303,"stem":304},"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":306,"path":307,"stem":308},"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":310,"path":311,"stem":312},"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":314,"path":315,"stem":316,"children":317},"Exceptions and IEEE Arithmetic (EIA)","\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia","9.sei-cert-fortran-coding-standard\u002F05.exceptions-and-ieee-arithmetic-eia\u002F1.index",[318,319],{"title":314,"path":315,"stem":316},{"title":320,"path":321,"stem":322},"EIA01-F. Enforce evaluation order in floating-point expressions","\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia\u002Feia01-f","9.sei-cert-fortran-coding-standard\u002F05.exceptions-and-ieee-arithmetic-eia\u002F2.eia01-f",{"title":237,"path":238,"stem":239},{"title":33,"path":231,"stem":233,"children":325},[326,327],{"title":33,"path":231,"stem":233},{"title":56,"path":55,"stem":241},{"title":329,"path":330,"stem":331},"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":333,"path":334,"stem":335},"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":337,"path":338,"stem":339},"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":341,"path":342,"stem":343},"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":345,"path":346,"stem":347,"children":348},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F1.index",[349,350,354,358],{"title":345,"path":346,"stem":347},{"title":351,"path":352,"stem":353},"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":355,"path":356,"stem":357},"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":359,"path":360,"stem":361},"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":363,"path":364,"stem":365,"children":366},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F1.index",[367,368,372,376],{"title":363,"path":364,"stem":365},{"title":369,"path":370,"stem":371},"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":373,"path":374,"stem":375},"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":377,"path":378,"stem":379},"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":381,"path":382,"stem":383},"Program Units (PRU)","\u002Fsei-cert-fortran-coding-standard\u002Fprogram-units-pru","9.sei-cert-fortran-coding-standard\u002F14.program-units-pru",{"title":385,"path":386,"stem":387,"children":388},"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",[389,390,394,398],{"title":385,"path":386,"stem":387},{"title":391,"path":392,"stem":393},"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":395,"path":396,"stem":397},"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":399,"path":400,"stem":401},"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":403,"path":404,"stem":405,"children":406},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F1.index",[407,408,411,415,419],{"title":403,"path":404,"stem":405},{"title":409,"path":184,"stem":410},"TYP01-F. Use Intrinsic Assignment for Character Entities","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F2.typ01-f",{"title":412,"path":413,"stem":414},"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":416,"path":417,"stem":418},"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":420,"path":421,"stem":422},"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":424,"path":425,"stem":426},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1780320139759]