WPC# t$$!+S!\߶C8~jj 4nsBҫ7,ŜjwE۲ dX 'boOͻŋgm.RuP[T>We*"õ+.e`{(lkisd;\aD$ 4V0S= t~ǽVO>_YQi\Jp~gwU!-zJoG :z ~G__T`(vso s}nw~qQXc־=uzv%U?[7)xz*dR-/gI!XSH"70l$bs a|\$Oyo -"mw/]N51}fuBwʢ!_,zBWv-7i Yq4d:ua (}~NSc Tj % 0 0L  n  e V 0eZ 0z z 0ew@4%9^H#! m 1uUTU 1uoN^ TUTNNU: 0 D3 B 0,,,,,, AS, 0DE D/ B  0s!" 0"""""""""""" C[#[#[#[#[#[#[#[#[#[#[#[#[# 0 Lu# c:\COREL\OFFICE7\TEMPLATE\X3J3NE~1.WPT([$  """ -X    =&u>&,dd=(2u$ [!  ``` -X    =&\&,dd=  d:\office\wpwin\template\x3j3-rpt.wpt<6X9`(CourierXx6X@KX@<6X9`(Courierd6X@K@+`4New Century Schoolbooke P'CPA, B,Level 1Level 2Level 3Level 4Level 5 L u'   -X   _ ,-hh>(#( J3/99-221r1#(#  X NCITSJ3ANSIFortranStandardsCommittee>(#CraigT.Dedo d  J3ResponsestoInterpretationRequestsfromJapan@@<(#August25,1999 , |||(#Page  1  ڀof  12  4#(2Quick A.  .0 c:\Corel\Office7\Template\X3J3 New Paper.wpt _ ,X.@ 0E:\X3J3\150\99-221r1.wpd@E:\X3J3\150\99-221r1.wpd/  (3=E$ [!  ``` -X    =&\&,dd=  H4#:.2Quick 1.F  .0 F eEI'DDs&dI3|xJ3 Responses to Interpretation Requests of Japan -$Craig T. Dedo$0Craig T. Dedo J3 / 97-1nn.Title" Fortran 2000f17130 W. Burleigh Place Brookfield, WI 53005&/(414) 783-5869   ( )0 ' L-Fortran 2000 Requirement Approved\ NCITS J3 ANSI Fortran Standards Committee*American English Apple LaserWriter II NT v47.00(,,,,0(0 U'#137=CIQYag1.a.i.(1)(a)(i)1)a)+ QZ<Century Schoolbook RegularLevel 1Level 2Level 3Level 4Level 5##37=CIQYag1.a.i.(1)(a)(i)1)a) X{$' J u'  $`$`` -X   _ ,-dd@(#$&` J3/99-221#$`&#  X NCITSJ3ANSIFortranStandardsCommittee>(#CraigT.Dedo d  J3ResponsestoInterpretationRequestsfromJapan@@<(#August25,1999 , ||?(#Page  1  ڀof  12  ڏ+ QZ<Century Schoolbook Regular"Arial Regular(3=E$ [!  ``` -X    =&\&,dd=  ****'dxd d(3=E$ [!  ``` -X    =&\&,dd=  2+(3)UC <<CLevel 1Level 2Level 3Level 4Level 5($$   1  55' dxdP Pd1, 2, 3,Level 1Level 2Level 3Level 4Level 5B#:.21, 2, 3,NumbersF  .0 Fa, b, c,Level 1Level 2Level 3Level 4Level 5V#:2a, b, c,Lowercase LettersH  .0 Hd>b$Large Circle0 [!   -X    =&b&,dd=  _C  #1'#CX  #X  r^4` <hDp Lx !(#T$%&-r  %  @vv J3ResponsestoInterpretationRequestsfromJapan     J3haslookedattheinterpretationrequestsofJapaninJ3paper99-208.Wehaveputtheserequestsintothefollowingclasses:bb  bb%0    "Fortran95Interpretation"_JOR_Ԁsubgroupwillsubmitthisitemasaformalinterpretation.bb%@݌ (#(# Ќ  bb  bb-0    "RecommendedforFortran2000"Theseitemsareproblems,buttheyarenotseriousenoughto  P warrantaformalFortran95Interpretation.bb-H݌ (#(# Ќ  bb  bbN0    "DeferredtoEditor"WewillrecommendthattheeditorofFortran2000includethesechangesinto d  thetextoftheFortran2000draft.bbNi݌ (#(# Ќ  bb  bbm0    "NotRecommended"Webelievethatnoactionisrequiredontheseitems.Anexplanationis  p  provided.bbm݌ (#(# Ќ  .0  HerearetheresponsesofJ3,whichareindicatedbya">>"symbolatthebeginningoftheline. (#(#   AllreferencesaretoFortran95.  J3thanksthe_ITSCJ_ԀfortheircarefulreadingofFortran95.PleasefeelfreetocontactJ3ifyoudisagreewithanyoftheserecommendations.JP-1)̀In2.5.7Intrinsic,thethirdsentence:̀"Allintrinsicdatatypes,procedures,andoperatorsmaybeusediǹany_scoping_Ԁunitwithoutfurtherdefinitionorspecification."̀Insert`assignments'after`procedures_,'_.>>RecommendedforFortran2000.JP-2)̀InthesentenceimmediatelyafterNOTE4.18:̀"Ifinitialization-_expr_Ԁappearsfora_nonpointer_Ԁcomponent,that̀componentinanyobjectofthetypeisinitiallydefinedorbecomes̀definedasspecifiedin(14.7.5)withthevaluedeterminedfrom̀initialization-_expr_."̀Change`(14.7.5)'to`14.7.5'.>>RecommendedforFortran2000.JP-3)̀4.4.4Constructionofderived-typevalues̀BeforeNOTE4.33:̀"Astructureconstructorwhosecomponentvaluesareallconstant̀_expression_Ԁisaderived-typeconstantexpression."̀Intheabove,`derived-typeconstantexpression'shouldbebold,̀_because_Ԁthetermisdefinedhere.>>Deferredtoeditor. .@(3 ЇJP-4)̀4.4.4Constructionofderived-typevalues̀BeforeNOTE4.34:̀"Whereacomponentinthederivedtypeisapointer,thècorrespondingconstructorexpressionshallevaluatetoanobjectthat̀wouldbeanallowabletargetforsuchapointerinapointer̀_assignment_Ԁstatement(7.5.2)."̀Change`anobject'to`aresultvalue'.Avalueofanexpressioncaǹ_not_Ԁbeanobject,bydefinition.August25,1999>>Fortran95Interpretation.NotRecommended.Webelieve"object"iscorrect.SeetheconstraintsafterR737insection7.5.2.JP-5)̀4.5Constructionofarrayvalues,̀"Theac-do-variableofanac-implied-dothatisinanother̀ac-implied-doshallnotappearastheac-do-variableofthecontaining̀_ac-implied-do_."̀ThissentenceshouldbeaConstraint.>>Fortran95Interpretation.JP-6)̀5.1Typedeclarationstatements̀Asforthe16thand19thconstraintafterR506:̀the16th:̀"Constraint:Thefunction-nameshallbethenameofanexternal̀function,anintrinsicfunction,afunctiondummyprocedure,orà_statement_Ԁfunction."̀Becausethesyntacticclass`object-name'isonlydefinedasà`name'inthestandard,thefollowingconstraintshouldbeaddedhere:̀Constraint:Theobject-nameshallbethenameofadataobject.̀Afterthat,inthe19th:̀"Constraint:initializationshallnotappearifobject-nameisdummỳargument,adummyargument,afunctionresult,anobjectinanamed̀commonblockunlessthetypedeclarationisinablockdataprogram̀unit,anobjectinblankcommon,anallocatablearray,anexternal̀_name_,anintrinsicname,oranautomaticobject."̀Intheabove,`afunctionresult,'shouldberemoved.̀Ifwecannotaddtheconstraintabove,`astatementfunction'should̀_be_Ԁaddedinthe19thconstraint.>>Fortran95Interpretation. \.'3 _JP-7)isabsentJP-8)̀5.1Typedeclarationstatements̀AfterNOTE5.3:̀"Ifalength-selector(5.1.1.5)isanonconstantexpression,..."̀Change`length-selector'to`char-selector',`char-len-selector'or̀`character-length'.>>Fortran95Interpretation.JP-9)̀5.1.1.54thConstraintafterR510(Page51Line1)statesthat:̀"Constraint:Afunctionnamedeclaredwithanasterisk̀char-len-param-valueshallnotbearray-valued,̀recursive,orpure."̀Theword"Constraint"shouldbeshownindistinguishingtypefont̀becausethisisaconstraintforanobsolescentfeature.>>RecommendedforFortran2000.JP-10)̀5.1.1.5AftertheNOTE5.6(Page51Line32,33)statesthat:̀"Thelengthspecifiedforacharacter-valuedstatementfunctionor̀statementfunctiondummyargumentoftypecharactershallbeàconstantspecificationexpression."̀Thisshouldbeshownasaconstraintbecauseitisarestrictioǹforcharacterlength.̀Notethatthisisanobsolescentfeature.>>RecommendedforFortran2000.JP-11)̀5.1.2.4.1AfterR516(Page54Line29-33)statesthat:̀"Constraint:Anexplicit-shapearraywhoseboundsdependonthèvaluesofnonconstantexpressionsshallbeadummỳargument,afunctionresult,oranautomaticarraỳofaprocedure.̀Anautomaticarrayisanexplicit-shapearraythatisdeclarediǹasubprogram,isnotadummyargument,andhasboundsthatarènonconstantspecificationexpressions." \.'3 ЀTheconstraintseemsmeaninglessbecausethefollowingparagraph̀whichdefinestheautomaticarrayduplicatesit.̀Isthisconstraintnecessary?>>NotRecommended.Yes,webelievethattheconstraintisnecessarybecauseitbelongstothreethings,notjustautomaticarrays.Nochangeisnecessary.JP-12)̀5.1.2.4.3(2)afterR518(Page55Line41)statesthat:̀"(2)Theyarespecifiedinapointerassignmentstatement...."̀Inthisdescription,theterm"pointerassignmentstatement"should̀bechangedto"pointerassignment".̀Reason:Theboundsofeachdimensionofanarraypointermaybèspecifiednotonlyinapointerassignmentstatementbutalsoinàderived-typeintrinsicassignmentstatementwithacomponentofaǹarraypointer.>>Fortran95Interpretation.JP-13)̀5.2.105thand9thconstraintsafterR537(Page62Line2and10)̀statethat:̀"Constraint:Ascalar-int-exprofadata-implied-doshallinvolvèasprimariesonlyconstants,...,or̀DOvariablesofthecontainingdata-implied-dos,..."̀"Constraint:Inanarray-elementorascalar-structure-component̀thatisadata-i-do-object,anysubscriptshallbeaǹ...,orDOvariablesofthecontaining̀data-implied-dos,..."̀Inthelatterconstraint,thephrase:̀"DOvariablesofthecontainingdata-implied-dos"̀shouldbechangedto:̀"DOvariablesofthisdata-implied-doandthecontaining̀data-implied-dos".̀Considerthefollowingprogram:̀INTEGER,DIMENSION(3,3)::IARỲDATA((IARY(IA,JA),JA=IA,3),IA=1,3)/1,2,3,4,5,6/̀The"IA"in"JA=IA,3"isascalar-int-exprdescribedintheformer̀constraintstatedabove.Inthiscase,"IA"isaDOvariableofthècontainingdata-implied-do.̀Thisisthemeaningofthephrase"containingdata-implied-do".̀Inanotherword,"containing"shouldmean"outer". \.'3 ЀThe"IA"and"JA"in"IARY(IA,JA)"aresubscriptsdescribedinthèlatterconstraintstatedabove.Inthiscase,"IA"isaDOvariablèofthecontainingdata-implied-do.However,"JA"isaDOvariablèofnot"containing"but"this"data-implied-do.̀Ifthe"containingdata-implied-do"meansboth"this"and"outer"̀data-implied-do,theformerconstraintisincorrectbecausèitallowstheDOvariableofthisdata-implied-dò(JAof"JA=IA,3"inthisexample)̀tobeinvolvedinscalar-int-expr̀(IAand3of"JA=IA,3"inthisexample).>>RecommendedforFortran2000.JP-14)̀5.2.10R539(Page62Line13,14)statesthat:̀"R539data-stmt-repeatisscalar-int-constant̀orscalar-int-constant-subobject"̀Thesyntacticdefinitionofscalar-int-constant-subobjectcanbèderivedfromint-constant-subobject(1.6.3).̀Addthedefinitionofint-constant-subobject.>>Aconstant-subobjectisasubobjectofanamedconstant.WewilladdclarifyingtexttoFortran2000. D JP-15)̀5.2.103rdparagraphafterR540andconstraints(Page62̀Line43-45)statesthat:̀"Azero-sizedarrayoranimplied-DOlistwithaniterationcount̀ofzerocontributesnovariablestotheexpandedsequenceof̀variables,butazero-lengthscalarcharactervariabledoes̀contributeavariabletothelist."̀Theword"list"attheendofabovestatementshouldbereplaced̀with"sequence"or"expandedsequence".̀Notethatthewords"list"and"sequence"areusedforthèseparatemeaningsinthissectionasfollows:̀"Thedata-stmt-object-listisexpandedtoformasequenceof̀pointersand..."̀"Thedata-stmt-value-listisexpandedtoformasequenceof̀data-stmt-constants."̀Alsoreferto2.5.9forthedefinitionof"sequence".>>RecommendedforFortran2000.JP-16)̀5.42ndparagraphafterR545andconstraints(Page66Line11) \.'3 Ѐstatesthat:̀"Anynamelist-group-namemayoccurinmorethanoneNAMELIST̀statementinascopingunit."̀Cananamelist-group-nameoccurmorethanonceinoneNAMELIST̀statement?̀IsthefollowingNAMELISTstatementstandardconforming?̀NAMELIST/NLIST/A,B/NLIST/C,D̀Ifthisisstandardconforming,isitthesameasthèfollowing?̀NAMELIST/NLIST/A,B,C,D>>Fortran95Interpretation.JP-17)̀5.43rdparagraphafterR545andconstraintsstatesthat:̀"Anamelistgroupobjectmaybeamemberofmorethanonènamelistgroup."̀Cananamelistgroupobjectoccurmorethanonceinonènamelistgroup?̀IsthefollowingNAMELISTstatementstandardconforming?̀NAMELIST/NLIST/A,B,A>>Fortran95Interpretation.JP-18)̀In7.1.1.1,aconstraintbelowR702statesthat:̀"subobjectshallbeasubobjectdesignatorwhoseparentisaconstant.̀Avariablethatisaprimaryshallnotbeawholeassumed-sizearray."̀Thesecondsentence,`Avariablethat...',shouldbè`Constraint:Avariablethat...'.>>RecommendedforFortran2000.JP-19)̀Thethirdparagraphof7.1.4.1hasthefollowing:̀"Ifapointerappearsasoneofthefollowing,theassociatedtarget̀objectisreferenced:̀(1)Aprimaryinanintrinsicordefinedoperation,̀(2)Astheexprofaparenthesizedprimary,or \.'3 _Ԁ(3)Astheonlyprimaryontheright-handsideofanintrinsic̀_assignment_Ԁstatement."̀Thefirstword"As"in(2)and(3)shouldberemoved.>>Deferredtoeditor.JP-20)̀In7.5.3.2,theparagraphbeforeNOTE7.49statesthat̀"Astatementthatispartofawhere-body-constructshallnotbeà_branch_Ԁtargetstatement."̀Theterm`branchtargetstatement'isdefinedtobeoneofaspecific̀_set_Ԁofstatements,andisnotappropriatehere.Replacethiswithàconstraintsuchas:̀"Constraint:Astatementlabelofanystatementthatispartofàwhere-body-constructshallnotbereferredtofromoutsideofthè_construct_."̀Thesameappliesto7.5.4.1(_FORALL_).>>RecommendedforFortran2000.JP-21)̀NOTE7.49hasthefollowingexample:̀WHERE(A>0.0)̀A=LOG(A)̀A=A/SUM(LOG(A))̀ENDWHERÈButSUM(LOG(A))causesanerrorwhenthearrayvariableAhas̀_negative_Ԁvalues.Sotheexampleprogramshouldbechangedtò_something_Ԁlikethefollowing.̀WHERE(D>0.0)̀X=-B+_SQRT_(D)̀R=D/SUM(_SQRT_(ABS(D)))̀ENDWHERE>>NotRecommended.AsindicatedinthecommentsinThe_Ԁpurposeofthe_example,_it__ԀistoshowthatLOG(A)willbereferencedevenifthatwasnottheintentoftheprogrammer.JP-22)isabsentJP-23)̀InNOTE7.55,the"ENDFORALL"statementshouldbesupplied. \.'3 Ї>>NotRecommended.Thepurposeoftheexamplewastoillustratethe_FORALL_maskandtheellipsesindicatethecontinuationoftherestoftheblock.JP-24)̀In8.1.4.1.2,secondconstraintbelowR833statesthat:̀"Thedo-term-shared-_stmt_shallbeidentifiedwithalabel̀andallofthelabel-do-_stmts_oftheshared-term-do-construct̀_shall_Ԁrefertothesamelabel."̀Thisimpliesalabel-do-_stmts_oftheouter-mostouter-shared-̀do-constructwillpermitnottorefertothesamelabel,becausèshared-term-do-constructdoesnotincludeouter-mostouter-̀_shared-do-construct_.̀Sotheterm"shared-term-do-construct"shouldbechangedtò"_inner-share-do-construct_Ԁandouter-shared-do-construct.">>Fortran95Interpretation.JP-25)̀Inthesecondsentenceof8.1.4.3:̀"Onceactive,theDOconstructbecomesinactiveonlywhenthè_construct_Ԁitspecifiesisterminated(8.1.4.4.4)."̀_Remove_Ԁ"itspecifies".>>Deferredtoeditor.JP-26)isabsentJP-27)̀Inthesecondsentencefromthebottomof8.2:̀"Itispermissibletobranchtoanend-do-_stmt_orado-term-action-̀_stmt_onlyfromwithinitsDOconstruct."̀"end-do-_stmt_"shouldbe"end-do".>>RecommendedforFortran2000.JP-28)̀Thelastsentenceof8.2.1:̀"Onlybranchtargetstatements(8.2),FORMATstatements,andDÒterminationsshallbereferredtobytheuseofstatementlabels̀(3.2.4)."̀"(3.2.4)"shouldbemovedtotheendoftheprevioussentence.>>RecommendedforFortran2000. \.'3 _ԇJP-29)̀Thelastsentenceof8.2.1:̀"Onlybranchtargetstatements(8.2),FORMATstatements,andDÒterminationsshallbereferredtobytheuseofstatementlabels̀(3.2.4)."̀Change",FORMATstatements,andDOterminations"to"andFORMAT̀statements".Thereasonsareasfollows:̀1.Allcasesarecoveredwithout"DOterminations".̀2.ADOterminationcanbeashared-term-do-construct.Astatement̀labelisintendedtorefertoastatement,andthenotionof̀referringtoaconstructbyastatementlabelisnotdefined.>>RecommendedforFortran2000.JP-30)̀Thefirstsentenceof9.4.1.7:̀"Ifanend-of-recordcondition(9.4.3)occursandnoerrorconditioǹ(9.4.3)occursduringexecutionofaninput/outputstatementthat̀containsan_EOR=_Ԁspecifier..."̀"input/outputstatement"shouldbe"inputstatement".>>RecommendedforFortran2000.JP-31)̀Thefourthsentenceof10.8andsixthsentenceof10.9:̀"Eachvalueiseitheranullvalueoroneoftheforms:̀c̀r*c̀r*̀wherecisaliteralconstantora_nondelimited_Ԁcharacterconstant̀andrisanunsigned,nonzero,integerliteralconstant."̀"aliteralconstant"shouldbe"anoptionallysignedliteralconstant">>Fortran95Interpretation.Addthephrase,"ifintegerorreal"tothatlastphraseabove.JP-32)̀ThefirstsentenceofNOTE10.25:̀"List-directedinput/outputallowsdataeditingaccordingtothetypeof̀thelistiteminsteadofbyaformatspecifier."̀"formatspecifier"shouldbe"formatspecification".>>RecommendedforFortran2000. \.'3 JP-33)̀Page176/line16(2ndparagraphbefore10.8.1.1):̀"(3)Thefirst_nonblank_Ԁcharacter"̀shouldbè"(3)Thefirstcharacter".̀REASON:̀Since(1)saysthat"thecharactersequencedoesnotcontainthevaluèseparatorsblank,comma,orslash,"thefirstcharactershouldnotbèablank.Sotheword_"nonblank"_Ԁisconfusing.>>RecommendedforFortran2000.JP-34)̀Page177/line35(6thlineof10.8.2):̀Theword"sequence"in"notoccurwithinaconstantorsequence"̀shouldbe"charactersequence".>>RecommendedforFortran2000.Rewrite[177:34-36]toread,"Theprocessormaybeginnewrecordsasnecessary,buttheendofrecordshallnotoccurwithinaconstantexceptforcomplexconstantsandcharactersequences.Theprocessorshallnotinsertblankswithinaconstantorcharactersequence."Check_NAMELIST_Ԁoutputinsection10.9.2.JP-35)isabsentJP-36)̀Page192/line17(Thelastlineof12.2.1.1):̀Indummydataobjects,thesizeisallowedtobeassumed.̀Howeverthecharactersof"size,"isstillsmall.̀Itshouldbechangedtonormalsize.>>Deferredtoeditor.JP-37)̀Page196/line3(Thefirststatementof12.3.2.1.1):̀Thereferringsection"(12.4)"iswrong,andshouldbè"(7.1.3,7.3)".>>RecommendedforFortran2000.JP-38)isabsentJP-39)̀Page204/line17(NOTE12.20):̀In6.3.3.2,"Ifapointeriscurrentlyassociatedwithaǹallocatablearray,thepointershallnotbedeallocated".̀So"DEALLOCATE(B)"wouldNOTbepermitted. \.'3 Ї>>Fortran95Interpretation.JP-40)isabsentJP-41)̀p.278,intheitem(3)of14.1.2.4:̀(3)Aprocedureisnotestablishedina_scoping_Ԁunitifitisneither̀establishedtobegenericnorestablishedtobespecific.̀Change"procedure"to"procedurename".>>Deferredtoeditor.JP-42)̀p.289,intheitem(6)of14.7.5:̀(6)Areferencetoaprocedurecausestheentiredummyargument̀dataobjecttobecomedefinediftheentirecorrespondingactual̀argumentisdefined_<obsolescent>with_Ԁavaluethatisnotàstatementlabel.̀Deletetheobsolescent-fontpart.>>RecommendedforFortran2000.JP-43)̀p.304,inthefollowingpartofB.1.1:̀_"R901_Ԁio-implied-do-controlisdo-variable=_scalar-numeric-expr_Ԁ,..."̀Change_"R901"_Ԁto_"R918"._>>Deferredtoeditor.JP-44)̀p.307,inthefollowingpartofB.2.6:̀...keyboardswithscreendisplays,itisanunnecessaryoverhead,andis̀potentiallyerror-prone,tohavetolocatepositions6,7,or72onaline.̀Change"72"to"73".>>Deferredtoeditor.JP-45)̀p.311,inthefollowingpartofC.1.2:̀...anexponentrangefrom10**-50to10**50.̀Change"exponentrange"to"range"or"valuerange". \.'3 Ї>>Deferredtoeditor.JP-46)̀p.311,inthefollowinglineoftheprograminC.1.3:̀CURRENT=>CURRENT%_NEXT_CELL_̀Change"CELL"to"NODE".>>Deferredtoeditor.JP-47)̀p.317,inthefollowinglineoftheprograminC.4.6:̀_X(2:N-1)_Ԁ=_(X(1:N-2)_Ԁ+_2*X(2:N-1)_Ԁ+_X(3:N+1)_Ԁ)/4̀Change_"X(3:N+1)"_Ԁto_"X(3:N)"._>>Deferredtoeditor.JP-48)̀p.342,inthefollowingsentenceinC.11.2.3.2:̀ThisdecisionwillberecordedasthetrueelementsofanarrayFLIP.̀Change"FLIP"to"FLIPS".>>Deferredtoeditor._[EndofJ3/99-2nn]_