[{"data":1,"prerenderedAt":725},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Fsad02-f":31,"surround-\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Fsad02-f":531,"sidebar-sei-cert-fortran-coding-standard":540},[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":524,"extension":525,"meta":526,"navigation":7,"path":527,"seo":528,"stem":529,"__hash__":530},"content\u002F9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F2.sad02-f.md","SAD02-F. Minimize imported module entities using the ONLY clause",{"type":35,"value":36,"toc":517},"minimark",[37,41,54,60,69,75,80,98,236,240,246,300,304,314,368,372,375,453,456,479,483,513],[38,39,33],"h1",{"id":40},"sad02-f-minimize-imported-module-entities-using-the-only-clause",[42,43,44,45,49,50,53],"p",{},"Program units should use the ",[46,47,48],"code",{},"only"," clause in the ",[46,51,52],{},"use"," statement to explicitly specify which entities are imported from a module.",[42,55,56,57,59],{},"By default, ",[46,58,52],{}," imports all public entities from the module, which can obscure the origin of identifiers and increase the risk of name conflicts, particularly in large codebases.",[42,61,62,63,65,66,68],{},"Identifiers in mutually visible scopes must be unique to prevent confusion regarding which object or function is being referenced. In Fortran, if a scoping unit uses multiple modules without the ",[46,64,48],{}," clause, and those modules contain entities with identical names, a local identifier conflict occurs. Consistently using the ",[46,67,48],{}," option ensures that the source of each accessed entity is explicitly documented, reducing maintenance costs and improving code reliability.",[42,70,71,72,74],{},"Omitting ",[46,73,48],{}," clause also creates a maintenance vulnerability: if a module later adds new public entities, they are automatically imported. With implicit typing and overlapping local variables, this can silently shadow existing identifiers, causing subtle and hard-to-diagnose logic errors.",[76,77,79],"h2",{"id":78},"noncompliant-code-example","Noncompliant Code Example",[42,81,82,83,86,87,90,91,93,94,97],{},"In this noncompliant example, the program imports two modules, ",[46,84,85],{},"Atmospheric_Models"," and ",[46,88,89],{},"Physical_Constants"," , without the ",[46,92,48],{}," clause. It is not immediately clear to a reader which module provides ",[46,95,96],{},"sea_level_pressure"," , and if both modules were to define a public entity with that name, a compilation error would occur.",[99,100,102],"code-block",{"quality":101},"bad",[103,104,109],"pre",{"className":105,"code":106,"language":107,"meta":108,"style":108},"language-fortran shiki shiki-themes github-light-high-contrast github-dark-high-contrast monokai","module Atmospheric_Models\n  use iso_fortran_env, only: real64\n  implicit none\n  real(real64), parameter :: sea_level_pressure = 1013.25_real64\ncontains\n  pure real(real64) function scale_height(temp)\n    real(real64), intent(in) :: temp\n    scale_height = (287.05_real64 * temp) \u002F 9.89665_real64\n  end function\nend module Atmospheric_Models\n\nprogram sensor_data__check\n  use Atmospheric_Models    ! Noncompliant: Import all public entities\n  use iso_fortran_env       ! Noncompliant\n  implicit none\n\n  real(real64) :: ambient_temp = 288.15_real64\n\n  print *, 'Scale Height: ', scale_height(ambient_temp)\n  print *, 'Reference Pressure: ', sea_level_pressure\nend program\n","fortran","",[46,110,111,119,125,131,137,143,149,155,161,167,173,179,185,191,197,202,207,213,218,224,230],{"__ignoreMap":108},[112,113,116],"span",{"class":114,"line":115},"line",1,[112,117,118],{},"module Atmospheric_Models\n",[112,120,122],{"class":114,"line":121},2,[112,123,124],{},"  use iso_fortran_env, only: real64\n",[112,126,128],{"class":114,"line":127},3,[112,129,130],{},"  implicit none\n",[112,132,134],{"class":114,"line":133},4,[112,135,136],{},"  real(real64), parameter :: sea_level_pressure = 1013.25_real64\n",[112,138,140],{"class":114,"line":139},5,[112,141,142],{},"contains\n",[112,144,146],{"class":114,"line":145},6,[112,147,148],{},"  pure real(real64) function scale_height(temp)\n",[112,150,152],{"class":114,"line":151},7,[112,153,154],{},"    real(real64), intent(in) :: temp\n",[112,156,158],{"class":114,"line":157},8,[112,159,160],{},"    scale_height = (287.05_real64 * temp) \u002F 9.89665_real64\n",[112,162,164],{"class":114,"line":163},9,[112,165,166],{},"  end function\n",[112,168,170],{"class":114,"line":169},10,[112,171,172],{},"end module Atmospheric_Models\n",[112,174,176],{"class":114,"line":175},11,[112,177,178],{"emptyLinePlaceholder":7},"\n",[112,180,182],{"class":114,"line":181},12,[112,183,184],{},"program sensor_data__check\n",[112,186,188],{"class":114,"line":187},13,[112,189,190],{},"  use Atmospheric_Models    ! Noncompliant: Import all public entities\n",[112,192,194],{"class":114,"line":193},14,[112,195,196],{},"  use iso_fortran_env       ! Noncompliant\n",[112,198,200],{"class":114,"line":199},15,[112,201,130],{},[112,203,205],{"class":114,"line":204},16,[112,206,178],{"emptyLinePlaceholder":7},[112,208,210],{"class":114,"line":209},17,[112,211,212],{},"  real(real64) :: ambient_temp = 288.15_real64\n",[112,214,216],{"class":114,"line":215},18,[112,217,178],{"emptyLinePlaceholder":7},[112,219,221],{"class":114,"line":220},19,[112,222,223],{},"  print *, 'Scale Height: ', scale_height(ambient_temp)\n",[112,225,227],{"class":114,"line":226},20,[112,228,229],{},"  print *, 'Reference Pressure: ', sea_level_pressure\n",[112,231,233],{"class":114,"line":232},21,[112,234,235],{},"end program\n",[76,237,239],{"id":238},"compliant-solution","Compliant Solution",[42,241,242,243,245],{},"In this compliant solution, the ",[46,244,48],{}," clause is used to explicitly list the required entities. This restricts the visibility of module members to only those mentioned, preventing namespace pollution.",[99,247,249],{"quality":248},"good",[103,250,252],{"className":105,"code":251,"language":107,"meta":108,"style":108},"program sensor_data__check\n  ! Compliant: Explicitly state what is needed\n  use Atmospheric_Models, only: scale_height, sea_level_pressure\n  use iso_fortran_env, only: real64\n  implicit none\n\n  real(real64) :: ambient_temp = 288.15_real64\n\n  print *, 'Scale Height: ', scale_height(ambient_temp)\n  print *, 'Reference Pressure: ', sea_level_pressure\nend program\n",[46,253,254,258,263,268,272,276,280,284,288,292,296],{"__ignoreMap":108},[112,255,256],{"class":114,"line":115},[112,257,184],{},[112,259,260],{"class":114,"line":121},[112,261,262],{},"  ! Compliant: Explicitly state what is needed\n",[112,264,265],{"class":114,"line":127},[112,266,267],{},"  use Atmospheric_Models, only: scale_height, sea_level_pressure\n",[112,269,270],{"class":114,"line":133},[112,271,124],{},[112,273,274],{"class":114,"line":139},[112,275,130],{},[112,277,278],{"class":114,"line":145},[112,279,178],{"emptyLinePlaceholder":7},[112,281,282],{"class":114,"line":151},[112,283,212],{},[112,285,286],{"class":114,"line":157},[112,287,178],{"emptyLinePlaceholder":7},[112,289,290],{"class":114,"line":163},[112,291,223],{},[112,293,294],{"class":114,"line":169},[112,295,229],{},[112,297,298],{"class":114,"line":175},[112,299,235],{},[76,301,303],{"id":302},"compliant-solution-renaming","Compliant Solution (Renaming)",[42,305,306,307,309,310,313],{},"If a name conflict arises, even when using ",[46,308,48],{}," , or if a module entity's name is not descriptive enough, the renaming facility ( ",[46,311,312],{},"  local_name => use_name "," ) should be used to maintain unique identifiers in the local scope.",[99,315,316],{"quality":248},[103,317,319],{"className":105,"code":318,"language":107,"meta":108,"style":108},"program sensor_data__check\n  ! Compliant: Resolving a potential conflict via renaming\n  use Atmospheric_Models, only: scale_height, model_p_ref => sea_level_pressure\n  use iso_fortran_env, only: real64\n  implicit none\n\n  real(real64) :: ambient_temp = 288.15_real64\n\n  print *, 'Scale Height: ', scale_height(ambient_temp)\n  print *, 'Reference Pressure: ', model_p_ref\nend program\n",[46,320,321,325,330,335,339,343,347,351,355,359,364],{"__ignoreMap":108},[112,322,323],{"class":114,"line":115},[112,324,184],{},[112,326,327],{"class":114,"line":121},[112,328,329],{},"  ! Compliant: Resolving a potential conflict via renaming\n",[112,331,332],{"class":114,"line":127},[112,333,334],{},"  use Atmospheric_Models, only: scale_height, model_p_ref => sea_level_pressure\n",[112,336,337],{"class":114,"line":133},[112,338,124],{},[112,340,341],{"class":114,"line":139},[112,342,130],{},[112,344,345],{"class":114,"line":145},[112,346,178],{"emptyLinePlaceholder":7},[112,348,349],{"class":114,"line":151},[112,350,212],{},[112,352,353],{"class":114,"line":157},[112,354,178],{"emptyLinePlaceholder":7},[112,356,357],{"class":114,"line":163},[112,358,223],{},[112,360,361],{"class":114,"line":169},[112,362,363],{},"  print *, 'Reference Pressure: ', model_p_ref\n",[112,365,366],{"class":114,"line":175},[112,367,235],{},[76,369,371],{"id":370},"risk-assessment","Risk Assessment",[42,373,374],{},"Importing entire modules pollutes the local namespace, making code difficult to audit for security and correctness. Namespace collisions can lead to the wrong function being invoked or variables being shadowed, potentially resulting in unintended information disclosure or abnormal program termination.",[376,377,378,399],"table",{},[379,380,381],"thead",{},[382,383,384,387,389,391,393,395,397],"tr",{},[385,386],"th",{},[385,388],{},[385,390],{},[385,392],{},[385,394],{},[385,396],{},[385,398],{},[400,401,402,426],"tbody",{},[382,403,404,408,411,414,417,420,423],{},[405,406,407],"td",{},"Recommendation",[405,409,410],{},"Severity",[405,412,413],{},"Likelihood",[405,415,416],{},"Detectable",[405,418,419],{},"Repairable",[405,421,422],{},"Priority",[405,424,425],{},"Level",[382,427,428,431,434,437,440,442,448],{},[405,429,430],{},"SAD02-F",[405,432,433],{},"High",[405,435,436],{},"Unlikely",[405,438,439],{},"Yes",[405,441,439],{},[405,443,444],{},[445,446,447],"strong",{},"P9",[405,449,450],{},[445,451,452],{},"L2",[454,455],"hr",{},[42,457,458,466,467,466,473],{},[459,460,462],"a",{"href":461},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c",[463,464],"img",{"src":465},"attachments\u002F629047324\u002F638779575.png"," ",[459,468,470],{"href":469},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002F",[463,471],{"src":472},"attachments\u002F629047324\u002F638779576.png",[459,474,476],{"href":475},"\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ\u002Ftyp01-f",[463,477],{"src":478},"attachments\u002F629047324\u002F638779577.png",[76,480,482],{"id":481},"attachments","Attachments:",[484,485,489],"div",{"className":486,"align":488},[487],"greybox","left",[42,490,491,466,494,497,498,501,466,503,497,506,508,466,510,497],{},[463,492],{"alt":108,"src":493},"images\u002Ficons\u002Fbullet_blue.gif",[459,495,496],{"href":465},"button_arrow_left.png"," (image\u002Fpng)",[499,500],"br",{},[463,502],{"alt":108,"src":493},[459,504,505],{"href":472},"button_arrow_up.png",[499,507],{},[463,509],{"alt":108,"src":493},[459,511,512],{"href":478},"button_arrow_right.png",[514,515,516],"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":108,"searchDepth":121,"depth":121,"links":518},[519,520,521,522,523],{"id":78,"depth":121,"text":79},{"id":238,"depth":121,"text":239},{"id":302,"depth":121,"text":303},{"id":370,"depth":121,"text":371},{"id":481,"depth":121,"text":482},"Program units should use the only clause in the use statement to explicitly specify which entities are imported from a module.","md",{},"\u002Fsei-cert-fortran-coding-standard\u002Fscope-association-and-definition-sad\u002Fsad02-f",{"title":33,"description":524},"9.sei-cert-fortran-coding-standard\u002F15.scope-association-and-definition-sad\u002F2.sad02-f","-smOkIXyFX8c2SfOW71l3jTNPYTZJ9mtqhWUP5_q3e0",[532,536],{"title":533,"path":534,"stem":535,"children":-1},"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",{"title":537,"path":538,"stem":539,"children":-1},"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",[541],{"title":542,"path":543,"stem":544,"children":545},"Sei Cert Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard","9.sei-cert-fortran-coding-standard",[546,549,571,585,611,621,625,635,639,643,647,651,669,687,691,700,721],{"title":547,"path":543,"stem":548},"SEI CERT Fortran Coding Standard","9.sei-cert-fortran-coding-standard\u002F1.index",{"title":550,"path":551,"stem":552,"children":553},"Arrays (ARR)","\u002Fsei-cert-fortran-coding-standard\u002Farrays-arr","9.sei-cert-fortran-coding-standard\u002F02.arrays-arr\u002F1.index",[554,555,559,563,567],{"title":550,"path":551,"stem":552},{"title":556,"path":557,"stem":558},"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":560,"path":561,"stem":562},"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":564,"path":565,"stem":566},"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":568,"path":569,"stem":570},"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":572,"path":573,"stem":574,"children":575},"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",[576,577,581],{"title":572,"path":573,"stem":574},{"title":578,"path":579,"stem":580},"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":582,"path":583,"stem":584},"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":586,"path":587,"stem":588,"children":589},"Concurrency (CON)","\u002Fsei-cert-fortran-coding-standard\u002Fconcurrency-con","9.sei-cert-fortran-coding-standard\u002F04.concurrency-con\u002F1.index",[590,591,595,599,603,607],{"title":586,"path":587,"stem":588},{"title":592,"path":593,"stem":594},"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":596,"path":597,"stem":598},"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":600,"path":601,"stem":602},"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":604,"path":605,"stem":606},"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":608,"path":609,"stem":610},"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":612,"path":613,"stem":614,"children":615},"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",[616,617],{"title":612,"path":613,"stem":614},{"title":618,"path":619,"stem":620},"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":622,"path":623,"stem":624},"Execution Control (EXC)","\u002Fsei-cert-fortran-coding-standard\u002Fexecution-control-exc","9.sei-cert-fortran-coding-standard\u002F06.execution-control-exc",{"title":626,"path":627,"stem":628,"children":629},"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",[630,631],{"title":626,"path":627,"stem":628},{"title":632,"path":633,"stem":634},"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":636,"path":637,"stem":638},"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":640,"path":641,"stem":642},"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":644,"path":645,"stem":646},"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":648,"path":649,"stem":650},"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":652,"path":653,"stem":654,"children":655},"Miscellaneous (MSC)","\u002Fsei-cert-fortran-coding-standard\u002Fmiscellaneous-msc","9.sei-cert-fortran-coding-standard\u002F12.miscellaneous-msc\u002F1.index",[656,657,661,665],{"title":652,"path":653,"stem":654},{"title":658,"path":659,"stem":660},"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":662,"path":663,"stem":664},"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":666,"path":667,"stem":668},"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":670,"path":671,"stem":672,"children":673},"Procedures (PRC)","\u002Fsei-cert-fortran-coding-standard\u002Fprocedures-prc","9.sei-cert-fortran-coding-standard\u002F13.procedures-prc\u002F1.index",[674,675,679,683],{"title":670,"path":671,"stem":672},{"title":676,"path":677,"stem":678},"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":680,"path":681,"stem":682},"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":684,"path":685,"stem":686},"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":688,"path":689,"stem":690},"Program Units (PRU)","\u002Fsei-cert-fortran-coding-standard\u002Fprogram-units-pru","9.sei-cert-fortran-coding-standard\u002F14.program-units-pru",{"title":533,"path":534,"stem":535,"children":692},[693,694,695,696],{"title":533,"path":534,"stem":535},{"title":33,"path":527,"stem":529},{"title":537,"path":538,"stem":539},{"title":697,"path":698,"stem":699},"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":701,"path":702,"stem":703,"children":704},"Types (TYP)","\u002Fsei-cert-fortran-coding-standard\u002Ftypes-typ","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F1.index",[705,706,709,713,717],{"title":701,"path":702,"stem":703},{"title":707,"path":475,"stem":708},"TYP01-F. Use Intrinsic Assignment for Character Entities","9.sei-cert-fortran-coding-standard\u002F16.types-typ\u002F2.typ01-f",{"title":710,"path":711,"stem":712},"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":714,"path":715,"stem":716},"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":718,"path":719,"stem":720},"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":722,"path":723,"stem":724},"Acknowledgments","\u002Fsei-cert-fortran-coding-standard\u002Facknowledgements","9.sei-cert-fortran-coding-standard\u002Facknowledgements",1780320168386]