[{"data":1,"prerenderedAt":813},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa\u002Fexa01-f":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa\u002Fexa01-f":619,"sidebar-sei-cert-fortran-coding-standard":628},[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":44,"extension":613,"meta":614,"navigation":7,"path":615,"seo":616,"stem":617,"__hash__":618},"content\u002F9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F2.exa01-f.md","EXA01-F. Do not read uninitialized memory",{"type":35,"value":36,"toc":607},"minimark",[37,41,45,53,58,69,391,395,398,431,438,449,453,456,465,543,546,569,573,603],[38,39,33],"h1",{"id":40},"exa01-f-do-not-read-uninitialized-memory",[42,43,44],"p",{},"Reading variables before they are defined results in undefined behavior.  This rule applies to all data entities, including scalars, arrays, derived types, pointers, and allocatable variables. Accessing undefined data compromises program state integrity and may lead to incorrect computations, non-deterministic results, or crashes.",[42,46,47,48,52],{},"Compilers are not required to warn about uninitialized variables, and even when warnings are generated, the code may still compile and execute. Some compilers provide options to automatically initialize variables (for example, ",[49,50,51],"code",{},"-finit-integer=0"," in gfortran), but relying on these features is risky: it hides logical errors and reduces portability across different compilers and platforms.",[54,55,57],"h2",{"id":56},"noncompliant-code-example","Noncompliant Code Example",[42,59,60,61,64,65,68],{},"The following program attempts to sum the elements of an array. The variable ",[49,62,63],{},"sum"," is not explicitly initialized. Its initial value is indeterminate, so the result of ",[49,66,67],{},"sum_array"," is undefined and may vary depending on the compiler or runtime environment.",[70,71,73],"code-block",{"quality":72},"bad",[74,75,80],"pre",{"className":76,"code":77,"language":78,"meta":79,"style":79},"language-c shiki shiki-themes github-light-high-contrast github-dark-high-contrast monokai","! example_array.f90\nprogram main\n  use iso_fortran_env, only: real32\n  implicit none\n\n  real(kind=real32) :: array(5)\n  array = [0.24, 0.33, 0.17, 0.89, 0.05]\n\n  print *, \"Sum is:\", sum_array(array)\n\ncontains\n\n  pure real(kind=real32) function sum_array(array)\n    implicit none\n    real(kind=real32), intent(in) :: array(:)\n    real(kind=real32)             :: sum\n    integer                       :: i\n\n    do i = 1, size(array, 1)\n      sum = sum + array(i)\n    end do\n\n    sum_array = sum\n  end function sum_array\n\nend program main\n","c","",[49,81,82,95,101,107,113,119,148,186,191,213,218,224,229,249,255,279,291,297,302,329,349,358,363,374,380,385],{"__ignoreMap":79},[83,84,87,91],"span",{"class":85,"line":86},"line",1,[83,88,90],{"class":89},"sDW38","!",[83,92,94],{"class":93},"sgGSh"," example_array.f90\n",[83,96,98],{"class":85,"line":97},2,[83,99,100],{"class":93},"program main\n",[83,102,104],{"class":85,"line":103},3,[83,105,106],{"class":93},"  use iso_fortran_env, only: real32\n",[83,108,110],{"class":85,"line":109},4,[83,111,112],{"class":93},"  implicit none\n",[83,114,116],{"class":85,"line":115},5,[83,117,118],{"emptyLinePlaceholder":7},"\n",[83,120,122,126,129,132,135,138,141,145],{"class":85,"line":121},6,[83,123,125],{"class":124},"sx5EZ","  real",[83,127,128],{"class":93},"(kind",[83,130,131],{"class":89},"=",[83,133,134],{"class":93},"real32) :: ",[83,136,137],{"class":124},"array",[83,139,140],{"class":93},"(",[83,142,144],{"class":143},"sFRm2","5",[83,146,147],{"class":93},")\n",[83,149,151,154,156,159,162,165,168,170,173,175,178,180,183],{"class":85,"line":150},7,[83,152,153],{"class":93},"  array ",[83,155,131],{"class":89},[83,157,158],{"class":93}," [",[83,160,161],{"class":143},"0.24",[83,163,164],{"class":93},", ",[83,166,167],{"class":143},"0.33",[83,169,164],{"class":93},[83,171,172],{"class":143},"0.17",[83,174,164],{"class":93},[83,176,177],{"class":143},"0.89",[83,179,164],{"class":93},[83,181,182],{"class":143},"0.05",[83,184,185],{"class":93},"]\n",[83,187,189],{"class":85,"line":188},8,[83,190,118],{"emptyLinePlaceholder":7},[83,192,194,197,200,202,206,208,210],{"class":85,"line":193},9,[83,195,196],{"class":93},"  print ",[83,198,199],{"class":89},"*",[83,201,164],{"class":93},[83,203,205],{"class":204},"sQ5S0","\"Sum is:\"",[83,207,164],{"class":93},[83,209,67],{"class":124},[83,211,212],{"class":93},"(array)\n",[83,214,216],{"class":85,"line":215},10,[83,217,118],{"emptyLinePlaceholder":7},[83,219,221],{"class":85,"line":220},11,[83,222,223],{"class":93},"contains\n",[83,225,227],{"class":85,"line":226},12,[83,228,118],{"emptyLinePlaceholder":7},[83,230,232,235,238,240,242,245,247],{"class":85,"line":231},13,[83,233,234],{"class":93},"  pure ",[83,236,237],{"class":124},"real",[83,239,128],{"class":93},[83,241,131],{"class":89},[83,243,244],{"class":93},"real32) function ",[83,246,67],{"class":124},[83,248,212],{"class":93},[83,250,252],{"class":85,"line":251},14,[83,253,254],{"class":93},"    implicit none\n",[83,256,258,261,263,265,268,271,274,276],{"class":85,"line":257},15,[83,259,260],{"class":124},"    real",[83,262,128],{"class":93},[83,264,131],{"class":89},[83,266,267],{"class":93},"real32), ",[83,269,270],{"class":124},"intent",[83,272,273],{"class":93},"(in) :: ",[83,275,137],{"class":124},[83,277,278],{"class":93},"(:)\n",[83,280,282,284,286,288],{"class":85,"line":281},16,[83,283,260],{"class":124},[83,285,128],{"class":93},[83,287,131],{"class":89},[83,289,290],{"class":93},"real32)             :: sum\n",[83,292,294],{"class":85,"line":293},17,[83,295,296],{"class":93},"    integer                       :: i\n",[83,298,300],{"class":85,"line":299},18,[83,301,118],{"emptyLinePlaceholder":7},[83,303,305,308,311,313,316,318,321,324,327],{"class":85,"line":304},19,[83,306,307],{"class":89},"    do",[83,309,310],{"class":93}," i ",[83,312,131],{"class":89},[83,314,315],{"class":143}," 1",[83,317,164],{"class":93},[83,319,320],{"class":124},"size",[83,322,323],{"class":93},"(array, ",[83,325,326],{"class":143},"1",[83,328,147],{"class":93},[83,330,332,335,337,340,343,346],{"class":85,"line":331},20,[83,333,334],{"class":93},"      sum ",[83,336,131],{"class":89},[83,338,339],{"class":93}," sum ",[83,341,342],{"class":89},"+",[83,344,345],{"class":124}," array",[83,347,348],{"class":93},"(i)\n",[83,350,352,355],{"class":85,"line":351},21,[83,353,354],{"class":93},"    end ",[83,356,357],{"class":89},"do\n",[83,359,361],{"class":85,"line":360},22,[83,362,118],{"emptyLinePlaceholder":7},[83,364,366,369,371],{"class":85,"line":365},23,[83,367,368],{"class":93},"    sum_array ",[83,370,131],{"class":89},[83,372,373],{"class":93}," sum\n",[83,375,377],{"class":85,"line":376},24,[83,378,379],{"class":93},"  end function sum_array\n",[83,381,383],{"class":85,"line":382},25,[83,384,118],{"emptyLinePlaceholder":7},[83,386,388],{"class":85,"line":387},26,[83,389,390],{"class":93},"end program main\n",[54,392,394],{"id":393},"compliant-solution","Compliant Solution",[42,396,397],{},"The solution is straightforward: always initialize variables before use.",[70,399,401],{"quality":400},"good",[74,402,404],{"className":76,"code":403,"language":78,"meta":79,"style":79},"real(kind=real32) :: sum\n\nsum = 0\n",[49,405,406,417,421],{"__ignoreMap":79},[83,407,408,410,412,414],{"class":85,"line":86},[83,409,237],{"class":124},[83,411,128],{"class":93},[83,413,131],{"class":89},[83,415,416],{"class":93},"real32) :: sum\n",[83,418,419],{"class":85,"line":97},[83,420,118],{"emptyLinePlaceholder":7},[83,422,423,426,428],{"class":85,"line":103},[83,424,425],{"class":93},"sum ",[83,427,131],{"class":89},[83,429,430],{"class":143}," 0\n",[42,432,433,434,437],{},"This principle applies to all variable types, including other elemental types like ",[49,435,436],{},"integer"," derived types and arrays.",[42,439,440,441,444,445,448],{},"For dynamic arrays, Fortran provides ",[49,442,443],{},"pointer"," and ",[49,446,447],{},"allocatable"," types. Allocatable arrays are safer because they start unallocated and automatically manage memory, reducing the risk of reading uninitialized memory.",[54,450,452],{"id":451},"risk-assessment","Risk Assessment",[42,454,455],{},"Reading uninitialized variables is undefined behavior. It can produce incorrect results, crashes, or security vulnerabilities, including the potential execution of arbitrary code.",[42,457,458,459,461,462,464],{},"Always explicitly initialize variables before reading or using them. Do not rely on compiler-specific default initialization or flags. For arrays and dynamic data, prefer ",[49,460,447],{}," over ",[49,463,443],{}," when possible, ensure proper allocation and initialization.",[466,467,468,489],"table",{},[469,470,471],"thead",{},[472,473,474,477,479,481,483,485,487],"tr",{},[475,476],"th",{},[475,478],{},[475,480],{},[475,482],{},[475,484],{},[475,486],{},[475,488],{},[490,491,492,516],"tbody",{},[472,493,494,498,501,504,507,510,513],{},[495,496,497],"td",{},"Rule",[495,499,500],{},"Severity",[495,502,503],{},"Likelihood",[495,505,506],{},"Detectable",[495,508,509],{},"Repairable",[495,511,512],{},"Priority",[495,514,515],{},"Level",[472,517,518,521,524,527,530,532,538],{},[495,519,520],{},"EXA01-F",[495,522,523],{},"High",[495,525,526],{},"Likely",[495,528,529],{},"Yes",[495,531,529],{},[495,533,534],{},[535,536,537],"strong",{},"P27",[495,539,540],{},[535,541,542],{},"L1",[544,545],"hr",{},[42,547,548,556,557,556,563],{},[549,550,552],"a",{"href":551},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[553,554],"img",{"src":555},"attachments\u002F629047336\u002F638779519.png"," ",[549,558,560],{"href":559},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[553,561],{"src":562},"attachments\u002F629047336\u002F638779520.png",[549,564,566],{"href":565},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[553,567],{"src":568},"attachments\u002F629047336\u002F638779521.png",[54,570,572],{"id":571},"attachments","Attachments:",[574,575,579],"div",{"className":576,"align":578},[577],"greybox","left",[42,580,581,556,584,587,588,591,556,593,587,596,598,556,600,587],{},[553,582],{"alt":79,"src":583},"images\u002Ficons\u002Fbullet_blue.gif",[549,585,586],{"href":555},"button_arrow_left.png"," (image\u002Fpng)",[589,590],"br",{},[553,592],{"alt":79,"src":583},[549,594,595],{"href":562},"button_arrow_up.png",[589,597],{},[553,599],{"alt":79,"src":583},[549,601,602],{"href":568},"button_arrow_right.png",[604,605,606],"style",{},"html pre.shiki code .sDW38, html code.shiki .sDW38{--shiki-default:#A0111F;--shiki-dark:#FF9492;--shiki-sepia:#F92672}html pre.shiki code .sgGSh, html code.shiki .sgGSh{--shiki-default:#0E1116;--shiki-dark:#F0F3F6;--shiki-sepia:#F8F8F2}html pre.shiki code .sx5EZ, html code.shiki .sx5EZ{--shiki-default:#622CBC;--shiki-dark:#DBB7FF;--shiki-sepia:#A6E22E}html pre.shiki code .sFRm2, html code.shiki .sFRm2{--shiki-default:#023B95;--shiki-dark:#91CBFF;--shiki-sepia:#AE81FF}html pre.shiki code .sQ5S0, html code.shiki .sQ5S0{--shiki-default:#032563;--shiki-dark:#ADDCFF;--shiki-sepia:#E6DB74}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":79,"searchDepth":97,"depth":97,"links":608},[609,610,611,612],{"id":56,"depth":97,"text":57},{"id":393,"depth":97,"text":394},{"id":451,"depth":97,"text":452},{"id":571,"depth":97,"text":572},"md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fexpressions-and-assignment-exa\u002Fexa01-f",{"title":33,"description":44},"9.sei-cert-fortran-coding-standard\u002F07.expressions-and-assignment-exa\u002F2.exa01-f","zWFQgabCgWvCele23TH0cGfy5UX48mw2H_vs9vAm7XQ",[620,624],{"title":621,"path":622,"stem":623,"children":-1},"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",{"title":625,"path":626,"stem":627,"children":-1},"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",[629],{"title":630,"path":631,"stem":632,"children":633},"Sei Cert Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard",[634,637,659,673,699,709,713,717,718,722,726,730,748,766,770,788,809],{"title":635,"path":631,"stem":636},"SEI CERT Fortran Coding Standard","9.sei-cert-fortran-coding-standard\u002F1.index",{"title":638,"path":639,"stem":640,"children":641},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F1.index",[642,643,647,651,655],{"title":638,"path":639,"stem":640},{"title":644,"path":645,"stem":646},"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":648,"path":649,"stem":650},"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":652,"path":653,"stem":654},"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":656,"path":657,"stem":658},"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":660,"path":661,"stem":662,"children":663},"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",[664,665,669],{"title":660,"path":661,"stem":662},{"title":666,"path":667,"stem":668},"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":670,"path":671,"stem":672},"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":674,"path":675,"stem":676,"children":677},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F1.index",[678,679,683,687,691,695],{"title":674,"path":675,"stem":676},{"title":680,"path":681,"stem":682},"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":684,"path":685,"stem":686},"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":688,"path":689,"stem":690},"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":692,"path":693,"stem":694},"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":696,"path":697,"stem":698},"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":700,"path":701,"stem":702,"children":703},"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",[704,705],{"title":700,"path":701,"stem":702},{"title":706,"path":707,"stem":708},"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":710,"path":711,"stem":712},"Execution Control (EXC)","\u002Fsei-cert-fortran-coding-standard\u002Fexecution-control-exc","9.sei-cert-fortran-coding-standard\u002F06.execution-control-exc",{"title":621,"path":622,"stem":623,"children":714},[715,716],{"title":621,"path":622,"stem":623},{"title":33,"path":615,"stem":617},{"title":625,"path":626,"stem":627},{"title":719,"path":720,"stem":721},"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":723,"path":724,"stem":725},"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":727,"path":728,"stem":729},"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":731,"path":732,"stem":733,"children":734},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F1.index",[735,736,740,744],{"title":731,"path":732,"stem":733},{"title":737,"path":738,"stem":739},"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":741,"path":742,"stem":743},"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":745,"path":746,"stem":747},"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":749,"path":750,"stem":751,"children":752},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F1.index",[753,754,758,762],{"title":749,"path":750,"stem":751},{"title":755,"path":756,"stem":757},"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":759,"path":760,"stem":761},"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":763,"path":764,"stem":765},"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":767,"path":768,"stem":769},"Program Units (PRU)","\u002Fsei-cert-fortran-coding-standard\u002Fprogram-units-pru","9.sei-cert-fortran-coding-standard\u002F14.program-units-pru",{"title":771,"path":772,"stem":773,"children":774},"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",[775,776,780,784],{"title":771,"path":772,"stem":773},{"title":777,"path":778,"stem":779},"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":781,"path":782,"stem":783},"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":785,"path":786,"stem":787},"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":789,"path":790,"stem":791,"children":792},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F1.index",[793,794,797,801,805],{"title":789,"path":790,"stem":791},{"title":795,"path":565,"stem":796},"TYP01-F. Use Intrinsic Assignment for Character Entities","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F2.typ01-f",{"title":798,"path":799,"stem":800},"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":802,"path":803,"stem":804},"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":806,"path":807,"stem":808},"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":810,"path":811,"stem":812},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1780320167205]