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