[{"data":1,"prerenderedAt":451},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad":270,"sidebar-sei-cert-fortran-coding-standard":277},[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":237,"extension":264,"meta":265,"navigation":7,"path":266,"seo":267,"stem":268,"__hash__":269},"content\u002F9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F1.index.md","Scope, Association, and Definition (SAD)",{"type":35,"value":36,"toc":258},"minimark",[37,41,46,69,73,197,200,223,227],[38,39,33],"h1",{"id":40},"scope-association-and-definition-sad",[42,43,45],"h2",{"id":44},"guidelines","Guidelines",[47,48,49,57,63],"ul",{},[50,51,52],"li",{},[53,54,56],"a",{"href":55},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad\u002Flimit-the-scope-of-variables-and-procedures","SAD01-F: Limit the scope of variables and procedures",[50,58,59],{},[53,60,62],{"href":61},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad\u002Fsad02-f","SAD02-F. Minimize imported module entities using the ONLY clause",[50,64,65],{},[53,66,68],{"href":67},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad\u002Fsad03-f","SAD03-F. Replace common block with modules for safer data encapsulation",[42,70,72],{"id":71},"risk-assessment-summary","Risk Assessment Summary",[74,75,76,97],"table",{},[77,78,79],"thead",{},[80,81,82,85,87,89,91,93,95],"tr",{},[83,84],"th",{},[83,86],{},[83,88],{},[83,90],{},[83,92],{},[83,94],{},[83,96],{},[98,99,100,124,151,175],"tbody",{},[80,101,102,106,109,112,115,118,121],{},[103,104,105],"td",{},"Rule",[103,107,108],{},"Severity",[103,110,111],{},"Likelihood",[103,113,114],{},"Detectable",[103,116,117],{},"Repairable",[103,119,120],{},"Priority",[103,122,123],{},"Level",[80,125,126,129,132,135,138,140,146],{},[103,127,128],{},"SAD01-F",[103,130,131],{},"Low",[103,133,134],{},"Unlikely",[103,136,137],{},"Yes",[103,139,137],{},[103,141,142],{},[143,144,145],"strong",{},"P3",[103,147,148],{},[143,149,150],{},"L3",[80,152,153,156,159,161,163,165,170],{},[103,154,155],{},"SAD02-F",[103,157,158],{},"High",[103,160,134],{},[103,162,137],{},[103,164,137],{},[103,166,167],{},[143,168,169],{},"P9",[103,171,172],{},[143,173,174],{},"L2",[80,176,177,179,181,183,185,188,193],{},[103,178,155],{},[103,180,158],{},[103,182,134],{},[103,184,137],{},[103,186,187],{},"No",[103,189,190],{},[143,191,192],{},"P6",[103,194,195],{},[143,196,174],{},[198,199],"hr",{},[201,202,203,210,211,210,217],"p",{},[53,204,206],{"href":205},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[207,208],"img",{"src":209},"attachments\u002F88487240\u002F638779567.png"," ",[53,212,214],{"href":213},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[207,215],{"src":216},"attachments\u002F88487240\u002F638779568.png",[53,218,220],{"href":219},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[207,221],{"src":222},"attachments\u002F88487240\u002F638779569.png",[42,224,226],{"id":225},"attachments","Attachments:",[228,229,233],"div",{"className":230,"align":232},[231],"greybox","left",[201,234,235,210,239,242,243,246,210,248,242,251,253,210,255,242],{},[207,236],{"alt":237,"src":238},"","images\u002Ficons\u002Fbullet_blue.gif",[53,240,241],{"href":209},"button_arrow_left.png"," (image\u002Fpng)",[244,245],"br",{},[207,247],{"alt":237,"src":238},[53,249,250],{"href":216},"button_arrow_up.png",[244,252],{},[207,254],{"alt":237,"src":238},[53,256,257],{"href":222},"button_arrow_right.png",{"title":237,"searchDepth":259,"depth":259,"links":260},2,[261,262,263],{"id":44,"depth":259,"text":45},{"id":71,"depth":259,"text":72},{"id":225,"depth":259,"text":226},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fscope-association-and-definition-sad",{"title":33,"description":237},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F1.index","orN-C8C4bIjuO1Tnr8qhDhUcWjvZGvsCvi2loHFO6JI",[271,275],{"title":272,"path":273,"stem":274},"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":62,"path":61,"stem":276},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F2.sad02-f",[278],{"title":279,"path":280,"stem":281,"children":282},"SEI CERT Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard\u002F01.index",[283,284,296,447],{"title":279,"path":280,"stem":281},{"title":285,"path":286,"stem":287,"children":288},"Front Matter","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F1.index",[289,290],{"title":285,"path":286,"stem":287},{"title":291,"path":292,"stem":293,"children":294},"Introduction","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter\u002Fintroduction","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F2.introduction\u002F01.index",[295],{"title":291,"path":292,"stem":293},{"title":45,"path":297,"stem":298,"children":299},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F01.index",[300,301,323,337,363,373,383,401,416,425],{"title":45,"path":297,"stem":298},{"title":302,"path":303,"stem":304,"children":305},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F1.index",[306,307,311,315,319],{"title":302,"path":303,"stem":304},{"title":308,"path":309,"stem":310},"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":312,"path":313,"stem":314},"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":316,"path":317,"stem":318},"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":320,"path":321,"stem":322},"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":324,"path":325,"stem":326,"children":327},"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",[328,329,333],{"title":324,"path":325,"stem":326},{"title":330,"path":331,"stem":332},"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":334,"path":335,"stem":336},"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":338,"path":339,"stem":340,"children":341},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F1.index",[342,343,347,351,355,359],{"title":338,"path":339,"stem":340},{"title":344,"path":345,"stem":346},"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":348,"path":349,"stem":350},"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":352,"path":353,"stem":354},"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":356,"path":357,"stem":358},"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":360,"path":361,"stem":362},"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":364,"path":365,"stem":366,"children":367},"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",[368,369],{"title":364,"path":365,"stem":366},{"title":370,"path":371,"stem":372},"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":374,"path":375,"stem":376,"children":377},"Expressions and Assignment (EXA)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fexpressions-and-assignment-exa","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F07.expressions-and-assignment-exa\u002F1.index",[378,379],{"title":374,"path":375,"stem":376},{"title":380,"path":381,"stem":382},"EXA01-F. Do not read uninitialized memory","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fexpressions-and-assignment-exa\u002Fexa01-f","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F07.expressions-and-assignment-exa\u002F2.exa01-f",{"title":384,"path":385,"stem":386,"children":387},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F1.index",[388,389,393,397],{"title":384,"path":385,"stem":386},{"title":390,"path":391,"stem":392},"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":394,"path":395,"stem":396},"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":398,"path":399,"stem":400},"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":402,"path":403,"stem":404,"children":405},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F1.index",[406,407,411,415],{"title":402,"path":403,"stem":404},{"title":408,"path":409,"stem":410},"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":412,"path":413,"stem":414},"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":272,"path":273,"stem":274},{"title":33,"path":266,"stem":268,"children":417},[418,419,420,422],{"title":33,"path":266,"stem":268},{"title":62,"path":61,"stem":276},{"title":68,"path":67,"stem":421},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F15.scope-association-and-definition-sad\u002F3.sad03-f",{"title":423,"path":55,"stem":424},"Limit 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":426,"path":427,"stem":428,"children":429},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F1.index",[430,431,435,439,443],{"title":426,"path":427,"stem":428},{"title":432,"path":433,"stem":434},"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":436,"path":437,"stem":438},"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":440,"path":441,"stem":442},"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":444,"path":445,"stem":446},"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":448,"path":449,"stem":450},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1783713872402]