[{"data":1,"prerenderedAt":399},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fexpressions-and-assignment-exa":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fexpressions-and-assignment-exa":215,"sidebar-sei-cert-fortran-coding-standard":222},[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":59,"extension":209,"meta":210,"navigation":7,"path":211,"seo":212,"stem":213,"__hash__":214},"content\u002F9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F07.expressions-and-assignment-exa\u002F1.index.md","Expressions and Assignment (EXA)",{"type":35,"value":36,"toc":202},"minimark",[37,41,46,57,60,64,142,145,168,172],[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\u002Fguidelines\u002Fexpressions-and-assignment-exa\u002Fexa01-f","EXA01-F. Do not read uninitialized memory",[42,58],{"id":59},"",[42,61,63],{"id":62},"risk-assessment-summary","Risk Assessment Summary",[65,66,67,88],"table",{},[68,69,70],"thead",{},[71,72,73,76,78,80,82,84,86],"tr",{},[74,75],"th",{},[74,77],{},[74,79],{},[74,81],{},[74,83],{},[74,85],{},[74,87],{},[89,90,91,115],"tbody",{},[71,92,93,97,100,103,106,109,112],{},[94,95,96],"td",{},"Rule",[94,98,99],{},"Severity",[94,101,102],{},"Likelihood",[94,104,105],{},"Detectable",[94,107,108],{},"Repairable",[94,110,111],{},"Priority",[94,113,114],{},"Level",[71,116,117,120,123,126,129,131,137],{},[94,118,119],{},"EXA01-F",[94,121,122],{},"High",[94,124,125],{},"Likely",[94,127,128],{},"Yes",[94,130,128],{},[94,132,133],{},[134,135,136],"strong",{},"P27",[94,138,139],{},[134,140,141],{},"L1",[143,144],"hr",{},[146,147,148,155,156,155,162],"p",{},[53,149,151],{"href":150},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[152,153],"img",{"src":154},"attachments\u002F88487239\u002F638779515.png"," ",[53,157,159],{"href":158},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[152,160],{"src":161},"attachments\u002F88487239\u002F638779516.png",[53,163,165],{"href":164},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[152,166],{"src":167},"attachments\u002F88487239\u002F638779517.png",[42,169,171],{"id":170},"attachments","Attachments:",[173,174,178],"div",{"className":175,"align":177},[176],"greybox","left",[146,179,180,155,183,186,187,190,155,192,186,195,197,155,199,186],{},[152,181],{"alt":59,"src":182},"images\u002Ficons\u002Fbullet_blue.gif",[53,184,185],{"href":154},"button_arrow_left.png"," (image\u002Fpng)",[188,189],"br",{},[152,191],{"alt":59,"src":182},[53,193,194],{"href":161},"button_arrow_up.png",[188,196],{},[152,198],{"alt":59,"src":182},[53,200,201],{"href":167},"button_arrow_right.png",{"title":59,"searchDepth":203,"depth":203,"links":204},2,[205,206,207,208],{"id":44,"depth":203,"text":45},{"id":59,"depth":203,"text":59},{"id":62,"depth":203,"text":63},{"id":170,"depth":203,"text":171},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fexpressions-and-assignment-exa",{"title":33,"description":59},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F07.expressions-and-assignment-exa\u002F1.index","rWxSFnfE-fi_y2K3LOVfKIBAoJcBPMrUuSHVmVhpXGw",[216,220],{"title":217,"path":218,"stem":219},"EIA01-F. Enforce evaluation order in floating-point expressions","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fexceptions-and-ieee-arithmetic-eia\u002Feia01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F05.exceptions-and-ieee-arithmetic-eia\u002F2.eia01-f",{"title":56,"path":55,"stem":221},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F07.expressions-and-assignment-exa\u002F2.exa01-f",[223],{"title":224,"path":225,"stem":226,"children":227},"SEI CERT Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard\u002F01.index",[228,229,241,395],{"title":224,"path":225,"stem":226},{"title":230,"path":231,"stem":232,"children":233},"Front Matter","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F1.index",[234,235],{"title":230,"path":231,"stem":232},{"title":236,"path":237,"stem":238,"children":239},"Introduction","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter\u002Fintroduction","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F2.introduction\u002F01.index",[240],{"title":236,"path":237,"stem":238},{"title":45,"path":242,"stem":243,"children":244},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F01.index",[245,246,268,282,308,315,319,337,355,373],{"title":45,"path":242,"stem":243},{"title":247,"path":248,"stem":249,"children":250},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F1.index",[251,252,256,260,264],{"title":247,"path":248,"stem":249},{"title":253,"path":254,"stem":255},"ARR01-F. Do not use out-of-bounds arrays subscripts","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F2.arr01-f",{"title":257,"path":258,"stem":259},"ARR02-F. Declare array dummy arguments as assumed-shape","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr02-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F3.arr02-f",{"title":261,"path":262,"stem":263},"ARR03-F. Specify array bounds when copying data to device memory","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr03-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F4.arr03-f",{"title":265,"path":266,"stem":267},"ARR04-F. Ensure arrays ranges mapped to devices cover all accessed elements","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr04-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F5.arr04-f",{"title":269,"path":270,"stem":271,"children":272},"Attribute Declarations and Specifications (ADS)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fattribute-declarations-and-specifications-ads","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F03.attribute-declarations-and-specifications-ads\u002F1.index",[273,274,278],{"title":269,"path":270,"stem":271},{"title":275,"path":276,"stem":277},"ADS01-F. Explicitly declare pure procedures","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fattribute-declarations-and-specifications-ads\u002Fads01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F03.attribute-declarations-and-specifications-ads\u002F2.ads01-f",{"title":279,"path":280,"stem":281},"ADS02-F. Separate initialization from declaration to avoid implicit variable persistence","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fattribute-declarations-and-specifications-ads\u002Fads02-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F03.attribute-declarations-and-specifications-ads\u002F2.ads02-f",{"title":283,"path":284,"stem":285,"children":286},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F1.index",[287,288,292,296,300,304],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"CON01-F. Explicitly declare OpenMP data-sharing attributes for all variables","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con\u002Fcon01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F2.con01-f",{"title":293,"path":294,"stem":295},"CON02-F. Protect reduction variables in multithreaded code","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con\u002Fcon02-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F3.con02-f",{"title":297,"path":298,"stem":299},"CON03-F. Protect multithreading recurrences to avoid data races","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con\u002Fcon03-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F4.con03-f",{"title":301,"path":302,"stem":303},"CON04-F. Do not use out-of-dimension subscripts in multithreaded code","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con\u002Fcon04-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F5.con04-f",{"title":305,"path":306,"stem":307},"CON05-F. Ensure correct OpenMP datascoping of variables in parallel regions","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con\u002Fcon05-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F6.con05-f",{"title":309,"path":310,"stem":311,"children":312},"Exceptions and IEEE Arithmetic (EIA)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fexceptions-and-ieee-arithmetic-eia","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F05.exceptions-and-ieee-arithmetic-eia\u002F1.index",[313,314],{"title":309,"path":310,"stem":311},{"title":217,"path":218,"stem":219},{"title":33,"path":211,"stem":213,"children":316},[317,318],{"title":33,"path":211,"stem":213},{"title":56,"path":55,"stem":221},{"title":320,"path":321,"stem":322,"children":323},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F1.index",[324,325,329,333],{"title":320,"path":321,"stem":322},{"title":326,"path":327,"stem":328},"MSC01-F. Avoid using legacy or obsolescent Fortran constructs","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc\u002Fmsc01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F2.msc01-f",{"title":330,"path":331,"stem":332},"MSC02-F. Beware of compiler-specific extensions","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc\u002Fmsc02-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F3.msc02-f",{"title":334,"path":335,"stem":336},"MSC03-F. Do not depend on undefined behavior","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc\u002Fmsc03-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F4.msc03-f",{"title":338,"path":339,"stem":340,"children":341},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F1.index",[342,343,347,351],{"title":338,"path":339,"stem":340},{"title":344,"path":345,"stem":346},"PRC01-F. Disable the implicit declaration of procedures","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc\u002Fprc01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F2.prc01-f",{"title":348,"path":349,"stem":350},"PRC02-F. Avoid implicit interfaces by using module procedures","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc\u002Fprc02-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F3.prc02-f",{"title":352,"path":353,"stem":354},"PRC03-F. Declare the intent for all dummy arguments","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc\u002Fprc03-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F4.prc03-f",{"title":356,"path":357,"stem":358,"children":359},"Scope, Association, and Definition (SAD)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F1.index",[360,361,365,369],{"title":356,"path":357,"stem":358},{"title":362,"path":363,"stem":364},"SAD02-F. Minimize imported module entities using the ONLY clause","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad\u002Fsad02-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F2.sad02-f",{"title":366,"path":367,"stem":368},"SAD03-F. Replace common block with modules for safer data encapsulation","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad\u002Fsad03-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F3.sad03-f",{"title":370,"path":371,"stem":372},"Limit the scope of variables and procedures","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad\u002Flimit-the-scope-of-variables-and-procedures","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F4.limit-the-scope-of-variables-and-procedures",{"title":374,"path":375,"stem":376,"children":377},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F1.index",[378,379,383,387,391],{"title":374,"path":375,"stem":376},{"title":380,"path":381,"stem":382},"TYP01-F. Use Intrinsic Assignment for Character Entities","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ\u002Ftyp01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F2.typ01-f",{"title":384,"path":385,"stem":386},"TYP02-F. Prohibit implicit typing in all program units","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ\u002Ftyp02-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F3.typ02-f",{"title":388,"path":389,"stem":390},"TYP03-F. Ensure intrinsic function arguments match intended precision","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ\u002Ftyp03-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F4.typ03-f",{"title":392,"path":393,"stem":394},"TYP04-F. Centralize kind definitions to ensure consistent precision","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ\u002Ftyp04-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F5.typ04-f",{"title":396,"path":397,"stem":398},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1783713872400]