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