[{"data":1,"prerenderedAt":505},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ":318,"sidebar-sei-cert-fortran-coding-standard":325},[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":285,"extension":312,"meta":313,"navigation":7,"path":314,"seo":315,"stem":316,"__hash__":317},"content\u002F9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F1.index.md","Types (TYP)",{"type":35,"value":36,"toc":305},"minimark",[37,41,46,75,93,97,243,247,250,271,275],[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\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\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\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\u002Ftypes-typ\u002Ftyp04-f","TYP04-F. Centralize kind definitions to ensure consistent precision",[76,77,78,82,85,86,92],"p",{},[79,80,81],"strong",{},"Information for Editors",[83,84],"br",{},"\nTo have a new guideline automatically listed above be sure to label it ",[53,87,91],{"href":88,"rel":89},"https:\u002F\u002Fwiki.sei.cmu.edu\u002F\u002Fconfluence\u002Flabel\u002Fseccode\u002Ftyp",[90],"nofollow","typ"," .",[42,94,96],{"id":95},"risk-assessment-summary","Risk Assessment Summary",[98,99,100,121],"table",{},[101,102,103],"thead",{},[104,105,106,109,111,113,115,117,119],"tr",{},[107,108],"th",{},[107,110],{},[107,112],{},[107,114],{},[107,116],{},[107,118],{},[107,120],{},[122,123,124,148,174,196,221],"tbody",{},[104,125,126,130,133,136,139,142,145],{},[127,128,129],"td",{},"Rule",[127,131,132],{},"Severity",[127,134,135],{},"Likelihood",[127,137,138],{},"Detectable",[127,140,141],{},"Repairable",[127,143,144],{},"Priority",[127,146,147],{},"Level",[104,149,150,153,156,159,162,164,169],{},[127,151,152],{},"TYP01-F",[127,154,155],{},"High",[127,157,158],{},"Likely",[127,160,161],{},"No",[127,163,161],{},[127,165,166],{},[79,167,168],{},"P18",[127,170,171],{},[79,172,173],{},"L1",[104,175,176,179,181,183,186,188,192],{},[127,177,178],{},"TYP02-F",[127,180,155],{},[127,182,158],{},[127,184,185],{},"Yes",[127,187,161],{},[127,189,190],{},[79,191,168],{},[127,193,194],{},[79,195,173],{},[104,197,198,201,204,207,209,211,216],{},[127,199,200],{},"TYP03-F",[127,202,203],{},"Low",[127,205,206],{},"Probable",[127,208,185],{},[127,210,185],{},[127,212,213],{},[79,214,215],{},"P6",[127,217,218],{},[79,219,220],{},"L2",[104,222,223,226,228,231,233,235,239],{},[127,224,225],{},"TYP04-F",[127,227,155],{},[127,229,230],{},"Unlikely",[127,232,185],{},[127,234,161],{},[127,236,237],{},[79,238,215],{},[127,240,241],{},[79,242,220],{},[42,244,246],{"id":245},"related-rules-and-recommendations","Related Rules and Recommendations",[248,249],"hr",{},[76,251,252,259,260,259,266],{},[53,253,255],{"href":254},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[256,257],"img",{"src":258},"attachments\u002F88487230\u002F638779481.png"," ",[53,261,263],{"href":262},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[256,264],{"src":265},"attachments\u002F88487230\u002F638779482.png",[53,267,268],{"href":55},[256,269],{"src":270},"attachments\u002F88487230\u002F638779483.png",[42,272,274],{"id":273},"attachments","Attachments:",[276,277,281],"div",{"className":278,"align":280},[279],"greybox","left",[76,282,283,259,287,290,291,293,259,295,290,298,300,259,302,290],{},[256,284],{"alt":285,"src":286},"","images\u002Ficons\u002Fbullet_blue.gif",[53,288,289],{"href":258},"button_arrow_left.png"," (image\u002Fpng)",[83,292],{},[256,294],{"alt":285,"src":286},[53,296,297],{"href":265},"button_arrow_up.png",[83,299],{},[256,301],{"alt":285,"src":286},[53,303,304],{"href":270},"button_arrow_right.png",{"title":285,"searchDepth":306,"depth":306,"links":307},2,[308,309,310,311],{"id":44,"depth":306,"text":45},{"id":95,"depth":306,"text":96},{"id":245,"depth":306,"text":246},{"id":273,"depth":306,"text":274},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ",{"title":33,"description":285},"9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F1.index","kknzlFOdIv38CdrOldWLnLDqlZS2hsOUbe7qFFKCQx4",[319,323],{"title":320,"path":321,"stem":322,"children":-1},"Limit the scope of variables and procedures","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Flimit-the-scope-of-variables-and-procedures","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F4.limit-the-scope-of-variables-and-procedures",{"title":56,"path":55,"stem":324,"children":-1},"9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F2.typ01-f",[326],{"title":327,"path":328,"stem":329,"children":330},"Sei Cert Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard",[331,334,356,370,396,406,410,420,424,428,432,436,454,472,476,491,501],{"title":332,"path":328,"stem":333},"SEI CERT Fortran Coding Standard","9.sei-cert-fortran-coding-standard\u002F1.index",{"title":335,"path":336,"stem":337,"children":338},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F1.index",[339,340,344,348,352],{"title":335,"path":336,"stem":337},{"title":341,"path":342,"stem":343},"ARR01-F. Do not use out-of-bounds arrays subscripts","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr01-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F2.arr01-f",{"title":345,"path":346,"stem":347},"ARR02-F. Declare array dummy arguments as assumed-shape","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr02-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F3.arr02-f",{"title":349,"path":350,"stem":351},"ARR03-F. Specify array bounds when copying data to device memory","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr03-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F4.arr03-f",{"title":353,"path":354,"stem":355},"ARR04-F. Ensure arrays ranges mapped to devices cover all accessed elements","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr\u002Farr04-f","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F5.arr04-f",{"title":357,"path":358,"stem":359,"children":360},"Attribute Declarations and Specifications (ADS)","\u002Fsei-cert-fortran-coding-standard\u002Fattribute-declarations-and-specifications-ads","9.sei-cert-fortran-coding-standard\u002F03.attribute-declarations-and-specifications-ads\u002F1.index",[361,362,366],{"title":357,"path":358,"stem":359},{"title":363,"path":364,"stem":365},"ADS01-F. Explicitly declare pure procedures","\u002Fsei-cert-fortran-coding-standard\u002Fattribute-declarations-and-specifications-ads\u002Fads01-f","9.sei-cert-fortran-coding-standard\u002F03.attribute-declarations-and-specifications-ads\u002F2.ads01-f",{"title":367,"path":368,"stem":369},"ADS02-F. Separate initialization from declaration to avoid implicit variable persistence","\u002Fsei-cert-fortran-coding-standard\u002Fattribute-declarations-and-specifications-ads\u002Fads02-f","9.sei-cert-fortran-coding-standard\u002F03.attribute-declarations-and-specifications-ads\u002F2.ads02-f",{"title":371,"path":372,"stem":373,"children":374},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F1.index",[375,376,380,384,388,392],{"title":371,"path":372,"stem":373},{"title":377,"path":378,"stem":379},"CON01-F. Explicitly declare OpenMP data-sharing attributes for all variables","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon01-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F2.con01-f",{"title":381,"path":382,"stem":383},"CON02-F. Protect reduction variables in multithreaded code","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon02-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F3.con02-f",{"title":385,"path":386,"stem":387},"CON03-F. Protect multithreading recurrences to avoid data races","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon03-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F4.con03-f",{"title":389,"path":390,"stem":391},"CON04-F. Do not use out-of-dimension subscripts in multithreaded code","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon04-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F5.con04-f",{"title":393,"path":394,"stem":395},"CON05-F. Ensure correct OpenMP datascoping of variables in parallel regions","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con\u002Fcon05-f","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F6.con05-f",{"title":397,"path":398,"stem":399,"children":400},"Exceptions and IEEE Arithmetic (EIA)","\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia","9.sei-cert-fortran-coding-standard\u002F05.exceptions-and-ieee-arithmetic-eia\u002F1.index",[401,402],{"title":397,"path":398,"stem":399},{"title":403,"path":404,"stem":405},"EIA01-F. Enforce evaluation order in floating-point expressions","\u002Fsei-cert-fortran-coding-standard\u002Fexceptions-and-ieee-arithmetic-eia\u002Feia01-f","9.sei-cert-fortran-coding-standard\u002F05.exceptions-and-ieee-arithmetic-eia\u002F2.eia01-f",{"title":407,"path":408,"stem":409},"Execution Control (EXC)","\u002Fsei-cert-fortran-coding-standard\u002Fexecution-control-exc","9.sei-cert-fortran-coding-standard\u002F06.execution-control-exc",{"title":411,"path":412,"stem":413,"children":414},"Expressions and Assignment (EXA)","\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa","9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F1.index",[415,416],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"EXA01-F. Do not read uninitialized memory","\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa\u002Fexa01-f","9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F2.exa01-f",{"title":421,"path":422,"stem":423},"Input and Output Editing (IOE)","\u002Fsei-cert-fortran-coding-standard\u002Finput-and-output-editing-ioe","9.sei-cert-fortran-coding-standard\u002F08.input-and-output-editing-ioe",{"title":425,"path":426,"stem":427},"Input and Output Statements (IOS)","\u002Fsei-cert-fortran-coding-standard\u002Finput-and-output-statements-ios","9.sei-cert-fortran-coding-standard\u002F09.input-and-output-statements-ios",{"title":429,"path":430,"stem":431},"Interoperability with C (IWC)","\u002Fsei-cert-fortran-coding-standard\u002Finteroperability-with-c-iwc","9.sei-cert-fortran-coding-standard\u002F10.interoperability-with-c-iwc",{"title":433,"path":434,"stem":435},"Intrinsic Procedures and Modules (IPM)","\u002Fsei-cert-fortran-coding-standard\u002Fintrinsic-procedures-and-modules-ipm","9.sei-cert-fortran-coding-standard\u002F11.intrinsic-procedures-and-modules-ipm",{"title":437,"path":438,"stem":439,"children":440},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F1.index",[441,442,446,450],{"title":437,"path":438,"stem":439},{"title":443,"path":444,"stem":445},"MSC01-F. Avoid using legacy or obsolescent Fortran constructs","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc\u002Fmsc01-f","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F2.msc01-f",{"title":447,"path":448,"stem":449},"MSC02-F. Beware of compiler-specific extensions","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc\u002Fmsc02-f","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F3.msc02-f",{"title":451,"path":452,"stem":453},"MSC03-F. Do not depend on undefined behavior","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc\u002Fmsc03-f","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F4.msc03-f",{"title":455,"path":456,"stem":457,"children":458},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F1.index",[459,460,464,468],{"title":455,"path":456,"stem":457},{"title":461,"path":462,"stem":463},"PRC01-F. Disable the implicit declaration of procedures","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc\u002Fprc01-f","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F2.prc01-f",{"title":465,"path":466,"stem":467},"PRC02-F. Avoid implicit interfaces by using module procedures","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc\u002Fprc02-f","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F3.prc02-f",{"title":469,"path":470,"stem":471},"PRC03-F. Declare the intent for all dummy arguments","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc\u002Fprc03-f","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F4.prc03-f",{"title":473,"path":474,"stem":475},"Program Units (PRU)","\u002Fsei-cert-fortran-coding-standard\u002Fprogram-units-pru","9.sei-cert-fortran-coding-standard\u002F14.program-units-pru",{"title":477,"path":478,"stem":479,"children":480},"Scope, Association, and Definition (SAD)","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F1.index",[481,482,486,490],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"SAD02-F. Minimize imported module entities using the ONLY clause","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Fsad02-f","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F2.sad02-f",{"title":487,"path":488,"stem":489},"SAD03-F. Replace common block with modules for safer data encapsulation","\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Fsad03-f","9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F3.sad03-f",{"title":320,"path":321,"stem":322},{"title":33,"path":314,"stem":316,"children":492},[493,494,495,497,499],{"title":33,"path":314,"stem":316},{"title":56,"path":55,"stem":324},{"title":62,"path":61,"stem":496},"9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F3.typ02-f",{"title":68,"path":67,"stem":498},"9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F4.typ03-f",{"title":74,"path":73,"stem":500},"9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F5.typ04-f",{"title":502,"path":503,"stem":504},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1780320139762]