[{"data":1,"prerenderedAt":476},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr":298,"sidebar-sei-cert-fortran-coding-standard":304},[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":265,"extension":292,"meta":293,"navigation":7,"path":294,"seo":295,"stem":296,"__hash__":297},"content\u002F9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F1.index.md","Arrays (ARR)",{"type":35,"value":36,"toc":286},"minimark",[37,41,46,75,79,225,228,251,255],[38,39,33],"h1",{"id":40},"arrays-arr",[42,43,45],"h2",{"id":44},"guidelines","Guidelines",[47,48,49,57,63,69],"ul",{},[50,51,52],"li",{},[53,54,56],"a",{"href":55},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr01-f","ARR01-F. Do not use out-of-bounds arrays subscripts",[50,58,59],{},[53,60,62],{"href":61},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr02-f","ARR02-F. Declare array dummy arguments as assumed-shape",[50,64,65],{},[53,66,68],{"href":67},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr03-f","ARR03-F. Specify array bounds when copying data to device memory",[50,70,71],{},[53,72,74],{"href":73},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr\u002Farr04-f","ARR04-F. Ensure arrays ranges mapped to devices cover all accessed elements",[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,157,183,204],"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,152],{},[109,133,134],{},"ARR01-F",[109,136,137],{},"High",[109,139,140],{},"Likely",[109,142,143],{},"Yes",[109,145,143],{},[109,147,148],{},[149,150,151],"strong",{},"P27",[109,153,154],{},[149,155,156],{},"L1",[86,158,159,162,165,168,170,173,178],{},[109,160,161],{},"ARR02-F",[109,163,164],{},"Low",[109,166,167],{},"Probable",[109,169,143],{},[109,171,172],{},"No",[109,174,175],{},[149,176,177],{},"P4",[109,179,180],{},[149,181,182],{},"L3",[86,184,185,188,190,192,194,196,200],{},[109,186,187],{},"ARR03-F",[109,189,137],{},[109,191,167],{},[109,193,172],{},[109,195,143],{},[109,197,198],{},[149,199,151],{},[109,201,202],{},[149,203,156],{},[86,205,206,209,211,213,215,217,221],{},[109,207,208],{},"ARR04-F",[109,210,137],{},[109,212,140],{},[109,214,143],{},[109,216,143],{},[109,218,219],{},[149,220,151],{},[109,222,223],{},[149,224,156],{},[226,227],"hr",{},[229,230,231,238,239,238,245],"p",{},[53,232,234],{"href":233},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[235,236],"img",{"src":237},"attachments\u002F629047312\u002F638779607.png"," ",[53,240,242],{"href":241},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[235,243],{"src":244},"attachments\u002F629047312\u002F638779608.png",[53,246,248],{"href":247},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[235,249],{"src":250},"attachments\u002F629047312\u002F638779609.png",[42,252,254],{"id":253},"attachments","Attachments:",[256,257,261],"div",{"className":258,"align":260},[259],"greybox","left",[229,262,263,238,267,270,271,274,238,276,270,279,281,238,283,270],{},[235,264],{"alt":265,"src":266},"","images\u002Ficons\u002Fbullet_blue.gif",[53,268,269],{"href":237},"button_arrow_left.png"," (image\u002Fpng)",[272,273],"br",{},[235,275],{"alt":265,"src":266},[53,277,278],{"href":244},"button_arrow_up.png",[272,280],{},[235,282],{"alt":265,"src":266},[53,284,285],{"href":250},"button_arrow_right.png",{"title":265,"searchDepth":287,"depth":287,"links":288},2,[289,290,291],{"id":44,"depth":287,"text":45},{"id":77,"depth":287,"text":78},{"id":253,"depth":287,"text":254},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr",{"title":33,"description":265},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F1.index","7DudPwlZERg0JMIzvt3kPU_eCBbxGLSxBDnideeMXms",[299,302],{"title":45,"path":300,"stem":301},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F01.index",{"title":56,"path":55,"stem":303},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F2.arr01-f",[305],{"title":306,"path":307,"stem":308,"children":309},"SEI CERT Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard\u002F01.index",[310,311,323,472],{"title":306,"path":307,"stem":308},{"title":312,"path":313,"stem":314,"children":315},"Front Matter","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F1.index",[316,317],{"title":312,"path":313,"stem":314},{"title":318,"path":319,"stem":320,"children":321},"Introduction","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter\u002Fintroduction","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F2.introduction\u002F01.index",[322],{"title":318,"path":319,"stem":320},{"title":45,"path":300,"stem":301,"children":324},[325,326,336,350,376,386,396,414,432,450],{"title":45,"path":300,"stem":301},{"title":33,"path":294,"stem":296,"children":327},[328,329,330,332,334],{"title":33,"path":294,"stem":296},{"title":56,"path":55,"stem":303},{"title":62,"path":61,"stem":331},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F3.arr02-f",{"title":68,"path":67,"stem":333},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F4.arr03-f",{"title":74,"path":73,"stem":335},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F5.arr04-f",{"title":337,"path":338,"stem":339,"children":340},"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",[341,342,346],{"title":337,"path":338,"stem":339},{"title":343,"path":344,"stem":345},"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":347,"path":348,"stem":349},"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":351,"path":352,"stem":353,"children":354},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F1.index",[355,356,360,364,368,372],{"title":351,"path":352,"stem":353},{"title":357,"path":358,"stem":359},"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":361,"path":362,"stem":363},"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":365,"path":366,"stem":367},"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":369,"path":370,"stem":371},"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":373,"path":374,"stem":375},"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":377,"path":378,"stem":379,"children":380},"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",[381,382],{"title":377,"path":378,"stem":379},{"title":383,"path":384,"stem":385},"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":387,"path":388,"stem":389,"children":390},"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",[391,392],{"title":387,"path":388,"stem":389},{"title":393,"path":394,"stem":395},"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":397,"path":398,"stem":399,"children":400},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F1.index",[401,402,406,410],{"title":397,"path":398,"stem":399},{"title":403,"path":404,"stem":405},"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":407,"path":408,"stem":409},"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":411,"path":412,"stem":413},"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":415,"path":416,"stem":417,"children":418},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F1.index",[419,420,424,428],{"title":415,"path":416,"stem":417},{"title":421,"path":422,"stem":423},"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":425,"path":426,"stem":427},"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":429,"path":430,"stem":431},"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":433,"path":434,"stem":435,"children":436},"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",[437,438,442,446],{"title":433,"path":434,"stem":435},{"title":439,"path":440,"stem":441},"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":443,"path":444,"stem":445},"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":447,"path":448,"stem":449},"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":451,"path":452,"stem":453,"children":454},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F1.index",[455,456,460,464,468],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"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":461,"path":462,"stem":463},"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":465,"path":466,"stem":467},"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":469,"path":470,"stem":471},"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":473,"path":474,"stem":475},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1783713871461]