[{"data":1,"prerenderedAt":607},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ\u002Ftyp02-f":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ\u002Ftyp02-f":420,"sidebar-sei-cert-fortran-coding-standard":429},[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":413,"extension":414,"meta":415,"navigation":7,"path":416,"seo":417,"stem":418,"__hash__":419},"content\u002F9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F3.typ02-f.md","TYP02-F. Prohibit implicit typing in all program units",{"type":35,"value":36,"toc":407},"minimark",[37,41,54,74,77,83,88,112,169,179,183,189,255,258,262,265,343,346,369,373,403],[38,39,33],"h1",{"id":40},"typ02-f-prohibit-implicit-typing-in-all-program-units",[42,43,44,45,49,50,53],"p",{},"Program units shall explicitly disable implicit typing by using the ",[46,47,48],"code",{},"implicit none"," or ",[46,51,52],{},"implicit none(type)"," statement.",[42,55,56,57,61,62,65,66,69,70,73],{},"By default, Fortran permits implicit typing of variables based on the first letter of their names. Identifiers beginning with the letters ",[58,59,60],"strong",{},"I"," through ",[58,63,64],{},"N"," are implicitly typed as ",[46,67,68],{},"integer"," , while all other identifiers are implicitly typed as ",[46,71,72],{},"real"," .",[42,75,76],{},"Reliance on implicit typing is hazardous because a misspelled variable name does not result in a compilation error. Instead, the compiler silently introduces a new variable with an implicit type. Such variables may be uninitialized or may undergo unintended type conversions, leading to subtle and difficult-to-detect logic errors.",[42,78,79,80,82],{},"The use of ",[46,81,48],{}," requires all variables to be explicitly declared, enabling the compiler to detect typographical errors and unintended variable creation at compile time. This practice ensures that variable types and attributes are consistent with the programmer's intent and significantly improves code correctness, readability, and maintainability.",[84,85,87],"h2",{"id":86},"noncompliant-code-example","Noncompliant Code Example",[42,89,90,91,94,95,98,99,101,102,104,105,108,109,111],{},"In this noncompliant code example, the programmer intends to perform a floating-point division. However, because ",[46,92,93],{},"num1"," and ",[46,96,97],{},"num2"," start with the letter ",[46,100,64],{}," , they are implicitly typed as ",[46,103,68],{}," . The result ",[46,106,107],{},"res"," will contain the result of an integer division, ",[46,110,97],{}," which will suffer a truncation, which is likely to be incorrect.",[113,114,116],"code-block",{"quality":115},"bad",[117,118,123],"pre",{"className":119,"code":120,"language":121,"meta":122,"style":122},"language-fortran shiki shiki-themes github-light-high-contrast github-dark-high-contrast monokai","program ratio_calc\n  ! Noncompliant: Implicit typing is enabled by default.\n  num1 = 7\n  num2 = 2.5\n  res  = num1 \u002F num2\n  print *, res\nend program ratio_calc\n","fortran","",[46,124,125,133,139,145,151,157,163],{"__ignoreMap":122},[126,127,130],"span",{"class":128,"line":129},"line",1,[126,131,132],{},"program ratio_calc\n",[126,134,136],{"class":128,"line":135},2,[126,137,138],{},"  ! Noncompliant: Implicit typing is enabled by default.\n",[126,140,142],{"class":128,"line":141},3,[126,143,144],{},"  num1 = 7\n",[126,146,148],{"class":128,"line":147},4,[126,149,150],{},"  num2 = 2.5\n",[126,152,154],{"class":128,"line":153},5,[126,155,156],{},"  res  = num1 \u002F num2\n",[126,158,160],{"class":128,"line":159},6,[126,161,162],{},"  print *, res\n",[126,164,166],{"class":128,"line":165},7,[126,167,168],{},"end program ratio_calc\n",[42,170,171,172,174,175,178],{},"While a real division of 7 \u002F 2.5 = 2.8, an integer division produces 7 \u002F 2 = 3 (with a remainder of 1). Since ",[46,173,107],{}," starts with ",[58,176,177],{},"R",", it is still a real, and so the program prints 3.0 rather than 3.",[84,180,182],{"id":181},"compliant-solution","Compliant Solution",[42,184,185,186,188],{},"In this compliant solution, ",[46,187,48],{}," is used to disable implicit typing. All variables are explicitly declared with appropriate types, ensuring that floating-point arithmetic is performed as intended and that typographical errors are diagnosed at compile time.",[113,190,192],{"quality":191},"good",[117,193,195],{"className":119,"code":194,"language":121,"meta":122,"style":122},"program ratio_calc\n  use iso_fortran_env, only: real32\n  implicit none ! Compliant: Disables implicit typing\n\n  integer           :: num1\n  real(kind=real32) :: num2, res\n\n  num1 = 7\n  num2 = 2.5\n  res  = num1 \u002F num2\n  print *, res\nend program ratio_calc\n",[46,196,197,201,206,211,216,221,226,230,235,240,245,250],{"__ignoreMap":122},[126,198,199],{"class":128,"line":129},[126,200,132],{},[126,202,203],{"class":128,"line":135},[126,204,205],{},"  use iso_fortran_env, only: real32\n",[126,207,208],{"class":128,"line":141},[126,209,210],{},"  implicit none ! Compliant: Disables implicit typing\n",[126,212,213],{"class":128,"line":147},[126,214,215],{"emptyLinePlaceholder":7},"\n",[126,217,218],{"class":128,"line":153},[126,219,220],{},"  integer           :: num1\n",[126,222,223],{"class":128,"line":159},[126,224,225],{},"  real(kind=real32) :: num2, res\n",[126,227,228],{"class":128,"line":165},[126,229,215],{"emptyLinePlaceholder":7},[126,231,233],{"class":128,"line":232},8,[126,234,144],{},[126,236,238],{"class":128,"line":237},9,[126,239,150],{},[126,241,243],{"class":128,"line":242},10,[126,244,156],{},[126,246,248],{"class":128,"line":247},11,[126,249,162],{},[126,251,253],{"class":128,"line":252},12,[126,254,168],{},[42,256,257],{},"The program prints 2.8 using flang 22.1.7, or 2.79999995 using gfortran 15.2.1 on MacOS 26.5.",[84,259,261],{"id":260},"risk-assessment","Risk Assessment",[42,263,264],{},"Implicit variable declarations can conceal typographical errors, introduce unintended variables, and cause silent precision loss due to unintended integer arithmetic or implicit type conversions.",[266,267,268,289],"table",{},[269,270,271],"thead",{},[272,273,274,277,279,281,283,285,287],"tr",{},[275,276],"th",{},[275,278],{},[275,280],{},[275,282],{},[275,284],{},[275,286],{},[275,288],{},[290,291,292,316],"tbody",{},[272,293,294,298,301,304,307,310,313],{},[295,296,297],"td",{},"Recommendation",[295,299,300],{},"Severity",[295,302,303],{},"Likelihood",[295,305,306],{},"Detectable",[295,308,309],{},"Repairable",[295,311,312],{},"Priority",[295,314,315],{},"Level",[272,317,318,321,324,327,330,333,338],{},[295,319,320],{},"TYP02-F",[295,322,323],{},"High",[295,325,326],{},"Likely",[295,328,329],{},"Yes",[295,331,332],{},"No",[295,334,335],{},[58,336,337],{},"P18",[295,339,340],{},[58,341,342],{},"L1",[344,345],"hr",{},[42,347,348,356,357,356,363],{},[349,350,352],"a",{"href":351},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[353,354],"img",{"src":355},"attachments\u002F629047304\u002F638779491.png"," ",[349,358,360],{"href":359},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[353,361],{"src":362},"attachments\u002F629047304\u002F638779492.png",[349,364,366],{"href":365},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[353,367],{"src":368},"attachments\u002F629047304\u002F638779493.png",[84,370,372],{"id":371},"attachments","Attachments:",[374,375,379],"div",{"className":376,"align":378},[377],"greybox","left",[42,380,381,356,384,387,388,391,356,393,387,396,398,356,400,387],{},[353,382],{"alt":122,"src":383},"images\u002Ficons\u002Fbullet_blue.gif",[349,385,386],{"href":355},"button_arrow_left.png"," (image\u002Fpng)",[389,390],"br",{},[353,392],{"alt":122,"src":383},[349,394,395],{"href":362},"button_arrow_up.png",[389,397],{},[353,399],{"alt":122,"src":383},[349,401,402],{"href":368},"button_arrow_right.png",[404,405,406],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":122,"searchDepth":135,"depth":135,"links":408},[409,410,411,412],{"id":86,"depth":135,"text":87},{"id":181,"depth":135,"text":182},{"id":260,"depth":135,"text":261},{"id":371,"depth":135,"text":372},"Program units shall explicitly disable implicit typing by using the implicit none or implicit none(type) statement.","md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ\u002Ftyp02-f",{"title":33,"description":413},"9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F3.typ02-f","xsAyPo-iqbmqTeGoPh_-3ipRcW4PcX7d2Mw-Fnjj_JA",[421,425],{"title":422,"path":423,"stem":424,"children":-1},"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":426,"path":427,"stem":428,"children":-1},"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",[430],{"title":431,"path":432,"stem":433,"children":434},"SEI CERT Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard\u002F01.index",[435,436,448,603],{"title":431,"path":432,"stem":433},{"title":437,"path":438,"stem":439,"children":440},"Front Matter","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F1.index",[441,442],{"title":437,"path":438,"stem":439},{"title":443,"path":444,"stem":445,"children":446},"Introduction","\u002Fsei-cert-fortran-coding-standard\u002Ffront-matter\u002Fintroduction","9.sei-cert-fortran-coding-standard\u002F02.front-matter\u002F2.introduction\u002F01.index",[447],{"title":443,"path":444,"stem":445},{"title":449,"path":450,"stem":451,"children":452},"Guidelines","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F01.index",[453,454,476,490,516,526,536,554,572,590],{"title":449,"path":450,"stem":451},{"title":455,"path":456,"stem":457,"children":458},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F02.arrays-arr\u002F1.index",[459,460,464,468,472],{"title":455,"path":456,"stem":457},{"title":461,"path":462,"stem":463},"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":465,"path":466,"stem":467},"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":469,"path":470,"stem":471},"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":473,"path":474,"stem":475},"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":477,"path":478,"stem":479,"children":480},"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",[481,482,486],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"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":487,"path":488,"stem":489},"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":491,"path":492,"stem":493,"children":494},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F04.concurrency-con\u002F1.index",[495,496,500,504,508,512],{"title":491,"path":492,"stem":493},{"title":497,"path":498,"stem":499},"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":501,"path":502,"stem":503},"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":505,"path":506,"stem":507},"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":509,"path":510,"stem":511},"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":513,"path":514,"stem":515},"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":517,"path":518,"stem":519,"children":520},"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",[521,522],{"title":517,"path":518,"stem":519},{"title":523,"path":524,"stem":525},"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":527,"path":528,"stem":529,"children":530},"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",[531,532],{"title":527,"path":528,"stem":529},{"title":533,"path":534,"stem":535},"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":537,"path":538,"stem":539,"children":540},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F12.miscellaneous-msc\u002F1.index",[541,542,546,550],{"title":537,"path":538,"stem":539},{"title":543,"path":544,"stem":545},"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":547,"path":548,"stem":549},"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":551,"path":552,"stem":553},"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":555,"path":556,"stem":557,"children":558},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F13.procedures-prc\u002F1.index",[559,560,564,568],{"title":555,"path":556,"stem":557},{"title":561,"path":562,"stem":563},"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":565,"path":566,"stem":567},"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":569,"path":570,"stem":571},"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":573,"path":574,"stem":575,"children":576},"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",[577,578,582,586],{"title":573,"path":574,"stem":575},{"title":579,"path":580,"stem":581},"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":583,"path":584,"stem":585},"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":587,"path":588,"stem":589},"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":591,"path":592,"stem":593,"children":594},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Fguidelines\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F04.guidelines\u002F16.types-typ\u002F1.index",[595,596,597,598,599],{"title":591,"path":592,"stem":593},{"title":422,"path":423,"stem":424},{"title":33,"path":416,"stem":418},{"title":426,"path":427,"stem":428},{"title":600,"path":601,"stem":602},"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":604,"path":605,"stem":606},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1783713876890]