[{"data":1,"prerenderedAt":452},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc":272,"sidebar-sei-cert-fortran-coding-standard":279},[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":239,"extension":266,"meta":267,"navigation":7,"path":268,"seo":269,"stem":270,"__hash__":271},"content\u002F9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F1.index.md","Procedures (PRC)",{"type":35,"value":36,"toc":260},"minimark",[37,41,46,69,73,199,202,225,229],[38,39,33],"h1",{"id":40},"procedures-prc",[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\u002Fprocedures-prc\u002Fprc01-f","PRC01-F. Disable the implicit declaration of procedures",[50,58,59],{},[53,60,62],{"href":61},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc\u002Fprc02-f","PRC02-F. Avoid implicit interfaces by using module procedures",[50,64,65],{},[53,66,68],{"href":67},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc\u002Fprc03-f","PRC03-F. Declare the intent for all dummy arguments",[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,152,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,141,147],{},[103,127,128],{},"PRC01-F",[103,130,131],{},"High",[103,133,134],{},"Likely",[103,136,137],{},"Yes",[103,139,140],{},"No",[103,142,143],{},[144,145,146],"strong",{},"P18",[103,148,149],{},[144,150,151],{},"L1",[80,153,154,157,159,162,164,166,171],{},[103,155,156],{},"PRC02-F",[103,158,131],{},[103,160,161],{},"Probable",[103,163,137],{},[103,165,140],{},[103,167,168],{},[144,169,170],{},"P12",[103,172,173],{},[144,174,151],{},[80,176,177,180,182,185,187,189,194],{},[103,178,179],{},"PRC03-F",[103,181,131],{},[103,183,184],{},"Unlikely",[103,186,137],{},[103,188,137],{},[103,190,191],{},[144,192,193],{},"P9",[103,195,196],{},[144,197,198],{},"L2",[200,201],"hr",{},[203,204,205,212,213,212,219],"p",{},[53,206,208],{"href":207},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[209,210],"img",{"src":211},"attachments\u002F88487228\u002F638779539.png"," ",[53,214,216],{"href":215},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[209,217],{"src":218},"attachments\u002F88487228\u002F638779540.png",[53,220,222],{"href":221},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[209,223],{"src":224},"attachments\u002F88487228\u002F638779541.png",[42,226,228],{"id":227},"attachments","Attachments:",[230,231,235],"div",{"className":232,"align":234},[233],"greybox","left",[203,236,237,212,241,244,245,248,212,250,244,253,255,212,257,244],{},[209,238],{"alt":239,"src":240},"","images\u002Ficons\u002Fbullet_blue.gif",[53,242,243],{"href":211},"button_arrow_left.png"," (image\u002Fpng)",[246,247],"br",{},[209,249],{"alt":239,"src":240},[53,251,252],{"href":218},"button_arrow_up.png",[246,254],{},[209,256],{"alt":239,"src":240},[53,258,259],{"href":224},"button_arrow_right.png",{"title":239,"searchDepth":261,"depth":261,"links":262},2,[263,264,265],{"id":44,"depth":261,"text":45},{"id":71,"depth":261,"text":72},{"id":227,"depth":261,"text":228},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc",{"title":33,"description":239},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F1.index","TUP10g45BdxgfS3sHmOVbEnKEZjxZ_8ZRMC1OKraIxI",[273,277],{"title":274,"path":275,"stem":276},"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":56,"path":55,"stem":278},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F2.prc01-f",[280],{"title":281,"path":282,"stem":283,"children":284},"SEI CERT Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard\u002F01.index",[285,286,298,448],{"title":281,"path":282,"stem":283},{"title":287,"path":288,"stem":289,"children":290},"Front Matter","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F1.index",[291,292],{"title":287,"path":288,"stem":289},{"title":293,"path":294,"stem":295,"children":296},"Introduction","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter\u002Fintroduction","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F2.introduction\u002F01.index",[297],{"title":293,"path":294,"stem":295},{"title":45,"path":299,"stem":300,"children":301},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F01.index",[302,303,325,339,365,375,385,400,408,426],{"title":45,"path":299,"stem":300},{"title":304,"path":305,"stem":306,"children":307},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F1.index",[308,309,313,317,321],{"title":304,"path":305,"stem":306},{"title":310,"path":311,"stem":312},"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":314,"path":315,"stem":316},"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":318,"path":319,"stem":320},"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":322,"path":323,"stem":324},"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":326,"path":327,"stem":328,"children":329},"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",[330,331,335],{"title":326,"path":327,"stem":328},{"title":332,"path":333,"stem":334},"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":336,"path":337,"stem":338},"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":340,"path":341,"stem":342,"children":343},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F1.index",[344,345,349,353,357,361],{"title":340,"path":341,"stem":342},{"title":346,"path":347,"stem":348},"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":350,"path":351,"stem":352},"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":354,"path":355,"stem":356},"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":358,"path":359,"stem":360},"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":362,"path":363,"stem":364},"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":366,"path":367,"stem":368,"children":369},"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",[370,371],{"title":366,"path":367,"stem":368},{"title":372,"path":373,"stem":374},"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":376,"path":377,"stem":378,"children":379},"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",[380,381],{"title":376,"path":377,"stem":378},{"title":382,"path":383,"stem":384},"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":386,"path":387,"stem":388,"children":389},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F1.index",[390,391,395,399],{"title":386,"path":387,"stem":388},{"title":392,"path":393,"stem":394},"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":396,"path":397,"stem":398},"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":274,"path":275,"stem":276},{"title":33,"path":268,"stem":270,"children":401},[402,403,404,406],{"title":33,"path":268,"stem":270},{"title":56,"path":55,"stem":278},{"title":62,"path":61,"stem":405},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F3.prc02-f",{"title":68,"path":67,"stem":407},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F4.prc03-f",{"title":409,"path":410,"stem":411,"children":412},"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",[413,414,418,422],{"title":409,"path":410,"stem":411},{"title":415,"path":416,"stem":417},"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":419,"path":420,"stem":421},"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":423,"path":424,"stem":425},"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":427,"path":428,"stem":429,"children":430},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F1.index",[431,432,436,440,444],{"title":427,"path":428,"stem":429},{"title":433,"path":434,"stem":435},"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":437,"path":438,"stem":439},"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":441,"path":442,"stem":443},"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":445,"path":446,"stem":447},"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":449,"path":450,"stem":451},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1783713872401]