[{"data":1,"prerenderedAt":421},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fintrinsic-procedures-and-modules-ipm":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fintrinsic-procedures-and-modules-ipm":227,"sidebar-sei-cert-fortran-coding-standard":236},[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":194,"extension":221,"meta":222,"navigation":7,"path":223,"seo":224,"stem":225,"__hash__":226},"content\u002F9.sei-cert-fortran-coding-standard\u002F11.intrinsic-procedures-and-modules-ipm.md","Intrinsic Procedures and Modules (IPM)",{"type":35,"value":36,"toc":214},"minimark",[37,41,46,62,79,83,152,156,159,181,185],[38,39,33],"h1",{"id":40},"intrinsic-procedures-and-modules-ipm",[42,43,45],"h2",{"id":44},"guidelines","Guidelines",[47,48,52,59],"div",{"className":49},[50,51],"content-by-label","macro-blank-experience",[53,54,55],"p",{},[56,57,58],"strong",{},"Content by label",[53,60,61],{},"There is no content with the specified labels",[53,63,64,67,70,71,78],{},[56,65,66],{},"Information for Editors",[68,69],"br",{},"\nTo have a new guideline automatically listed above be sure to label it ",[72,73,77],"a",{"href":74,"rel":75},"https:\u002F\u002Fwiki.sei.cmu.edu\u002F\u002Fconfluence\u002Flabel\u002Ffortran\u002Fipm",[76],"nofollow","ipm"," .",[42,80,82],{"id":81},"risk-assessment-summary","Risk Assessment Summary",[84,85,86,105],"table",{},[87,88,89],"thead",{},[90,91,92,95,97,99,101,103],"tr",{},[93,94],"th",{},[93,96],{},[93,98],{},[93,100],{},[93,102],{},[93,104],{},[106,107,108,129],"tbody",{},[90,109,110,114,117,120,123,126],{},[111,112,113],"td",{},"Guideline",[111,115,116],{},"Severity",[111,118,119],{},"Likelihood",[111,121,122],{},"Remediation Cost",[111,124,125],{},"Priority",[111,127,128],{},"Level",[90,130,131,134,137,140,142,147],{},[111,132,133],{},"IPM00-F",[111,135,136],{},"medium",[111,138,139],{},"unlikely",[111,141,136],{},[111,143,144],{},[56,145,146],{},"P4",[111,148,149],{},[56,150,151],{},"L3",[42,153,155],{"id":154},"related-rules-and-recommendations","Related Rules and Recommendations",[157,158],"hr",{},[53,160,161,168,169,168,175],{},[72,162,164],{"href":163},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[165,166],"img",{"src":167},"attachments\u002F88487237\u002F638779555.png"," ",[72,170,172],{"href":171},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[165,173],{"src":174},"attachments\u002F88487237\u002F638779556.png",[72,176,178],{"href":177},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[165,179],{"src":180},"attachments\u002F88487237\u002F638779557.png",[42,182,184],{"id":183},"attachments","Attachments:",[47,186,190],{"className":187,"align":189},[188],"greybox","left",[53,191,192,168,196,199,200,202,168,204,199,207,209,168,211,199],{},[165,193],{"alt":194,"src":195},"","images\u002Ficons\u002Fbullet_blue.gif",[72,197,198],{"href":167},"button_arrow_left.png"," (image\u002Fpng)",[68,201],{},[165,203],{"alt":194,"src":195},[72,205,206],{"href":174},"button_arrow_up.png",[68,208],{},[165,210],{"alt":194,"src":195},[72,212,213],{"href":180},"button_arrow_right.png",{"title":194,"searchDepth":215,"depth":215,"links":216},2,[217,218,219,220],{"id":44,"depth":215,"text":45},{"id":81,"depth":215,"text":82},{"id":154,"depth":215,"text":155},{"id":183,"depth":215,"text":184},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fintrinsic-procedures-and-modules-ipm",{"title":33,"description":194},"9.sei-cert-fortran-coding-standard\u002F11.intrinsic-procedures-and-modules-ipm","uMJvxG5I57KcUIeBHRqMrErGDe68FtBi1edc8pj2EGg",[228,232],{"title":229,"path":230,"stem":231,"children":-1},"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":233,"path":234,"stem":235,"children":-1},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F1.index",[237],{"title":238,"path":239,"stem":240,"children":241},"Sei Cert Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard",[242,245,267,281,307,317,321,331,335,339,340,341,356,374,378,396,417],{"title":243,"path":239,"stem":244},"SEI CERT Fortran Coding Standard","9.sei-cert-fortran-coding-standard\u002F1.index",{"title":246,"path":247,"stem":248,"children":249},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F1.index",[250,251,255,259,263],{"title":246,"path":247,"stem":248},{"title":252,"path":253,"stem":254},"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":256,"path":257,"stem":258},"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":260,"path":261,"stem":262},"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":264,"path":265,"stem":266},"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":268,"path":269,"stem":270,"children":271},"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",[272,273,277],{"title":268,"path":269,"stem":270},{"title":274,"path":275,"stem":276},"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":278,"path":279,"stem":280},"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":282,"path":283,"stem":284,"children":285},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F1.index",[286,287,291,295,299,303],{"title":282,"path":283,"stem":284},{"title":288,"path":289,"stem":290},"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":292,"path":293,"stem":294},"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":296,"path":297,"stem":298},"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":300,"path":301,"stem":302},"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":304,"path":305,"stem":306},"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":308,"path":309,"stem":310,"children":311},"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",[312,313],{"title":308,"path":309,"stem":310},{"title":314,"path":315,"stem":316},"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":318,"path":319,"stem":320},"Execution Control (EXC)","\u002Fsei-cert-fortran-coding-standard\u002Fexecution-control-exc","9.sei-cert-fortran-coding-standard\u002F06.execution-control-exc",{"title":322,"path":323,"stem":324,"children":325},"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",[326,327],{"title":322,"path":323,"stem":324},{"title":328,"path":329,"stem":330},"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":332,"path":333,"stem":334},"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":336,"path":337,"stem":338},"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":229,"path":230,"stem":231},{"title":33,"path":223,"stem":225},{"title":233,"path":234,"stem":235,"children":342},[343,344,348,352],{"title":233,"path":234,"stem":235},{"title":345,"path":346,"stem":347},"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":349,"path":350,"stem":351},"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":353,"path":354,"stem":355},"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":357,"path":358,"stem":359,"children":360},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F1.index",[361,362,366,370],{"title":357,"path":358,"stem":359},{"title":363,"path":364,"stem":365},"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":367,"path":368,"stem":369},"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":371,"path":372,"stem":373},"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":375,"path":376,"stem":377},"Program Units (PRU)","\u002Fsei-cert-fortran-coding-standard\u002Fprogram-units-pru","9.sei-cert-fortran-coding-standard\u002F14.program-units-pru",{"title":379,"path":380,"stem":381,"children":382},"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",[383,384,388,392],{"title":379,"path":380,"stem":381},{"title":385,"path":386,"stem":387},"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":389,"path":390,"stem":391},"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":393,"path":394,"stem":395},"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":397,"path":398,"stem":399,"children":400},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F1.index",[401,402,405,409,413],{"title":397,"path":398,"stem":399},{"title":403,"path":177,"stem":404},"TYP01-F. Use Intrinsic Assignment for Character Entities","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F2.typ01-f",{"title":406,"path":407,"stem":408},"TYP02-F. Prohibit implicit typing in all program units","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp02-f","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F3.typ02-f",{"title":410,"path":411,"stem":412},"TYP03-F. Ensure intrinsic function arguments match intended precision","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp03-f","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F4.typ03-f",{"title":414,"path":415,"stem":416},"TYP04-F. Centralize kind definitions to ensure consistent precision","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp04-f","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F5.typ04-f",{"title":418,"path":419,"stem":420},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1780320139744]