+
    TBi(                         R t ^ RIt^ RIHtHtHtHtHtHt ^ RI	H
t
HtHtHtHtHtHtHtHt RR.t ! R R]4      t ! R R]4      tR# )z
pygments.lexers.fortran
~~~~~~~~~~~~~~~~~~~~~~~

Lexers for Fortran languages.

:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
N)
RegexLexerbygroupsincludewordsusingdefault)	TextCommentOperatorKeywordNameStringNumberPunctuationGenericFortranLexerFortranFixedLexerc                      ] tR t^tRtRtRtRR.t. R"OtR.t	Rt
]P                  ]P                  ,          tRR	]P                   3R
]3]! R4      ]! R4      R]3]! R4      R]P(                  3.RR]! ]]P(                  ]4      3R]! ]]P(                  ]4      3]! R#RRR7      ]3]! R$RRR7      ]P0                  3R]3R]P4                  3R]3]! R%RRR7      ]P8                  3R]P8                  3R]P:                  3.
RR]P>                  3R]P@                  3.RR]!PD                  3R]!PF                  3R]!PF                  3R]!PF                  3./t$R t%R!# )&r   z
Lexer for FORTRAN 90 code.
Fortranhttps://fortran-lang.org/fortranf90ztext/x-fortranz0.10rootz^#.*\nz!.*\nstringscorez[a-z][\w$]*numsz[\s]+z\b(DO)(\s+)(CONCURRENT)\bz\b(GO)(\s*)(TO)\bz\bz\s*\b)prefixsuffixz$(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)z(::)z[()\[\],:&%;.]z\.(true|false)\.z+\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.z"(\\[0-7]+|\\[^0-7]|[^"\\])*"z'(\\[0-7]+|\\[^0-7]|[^'\\])*'z\d+(?![.e])(_([1-9]|[a-z]\w*))?z0[+-]?\d*\.\d+([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?z0[+-]?\d+\.\d*([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?z0[+-]?\d+(\.\d*)?[ed][-+]?\d+(_([1-9]|[a-z]\w*))? N)z*.f03z*.f90z*.F03z*.F90)ABSTRACTACCEPTALLALLSTOPALLOCATABLEALLOCATEARRAYASSIGN	ASSOCIATEASYNCHRONOUS	BACKSPACEBINDBLOCK	BLOCKDATABYTECALLCASECLASSCLOSECODIMENSIONCOMMON
CONTIGUOUSCONTAINSCONTINUECRITICALCYCLEDATA
DEALLOCATEDECODEDEFERRED	DIMENSIONDO	ELEMENTALELSEELSEIFENCODEENDENDASSOCIATEENDBLOCKENDDOENDENUM	ENDFORALLENDFUNCTIONENDIFENDINTERFACE	ENDMODULE
ENDPROGRAM	ENDSELECTENDSUBMODULEENDSUBROUTINEENDTYPEENDWHEREENTRYENUM
ENUMERATOREQUIVALENCEz
ERROR STOPEXITEXTENDSEXTERNAL	EXTRINSICFILEFINALFORALLFORMATFUNCTIONGENERICIFIMAGESIMPLICITIMPORTIMPUREINCLUDEINQUIREINTENT	INTERFACE	INTRINSICISLOCKMEMORYMODULENAMELISTNULLIFYNONENON_INTRINSICNON_OVERRIDABLENOPASSONLYOPENOPTIONALOPTIONS	PARAMETERPASSPAUSEPOINTERPRINTPRIVATEPROGRAM	PROCEDURE	PROTECTEDPUBLICPUREREAD	RECURSIVERESULTRETURNREWINDSAVESELECTSEQUENCESTOP	SUBMODULE
SUBROUTINESYNCSYNCALL
SYNCIMAGES
SYNCMEMORYTARGETTHENTYPEUNLOCKUSEVALUEVOLATILEWHEREWRITEWHILE)%	CHARACTERCOMPLEXzDOUBLE PRECISIONzDOUBLE COMPLEXINTEGERLOGICALREALC_INTC_SHORTC_LONGC_LONG_LONGC_SIGNED_CHARC_SIZE_TC_INT8_T	C_INT16_T	C_INT32_T	C_INT64_TC_INT_LEAST8_TC_INT_LEAST16_TC_INT_LEAST32_TC_INT_LEAST64_TC_INT_FAST8_TC_INT_FAST16_TC_INT_FAST32_TC_INT_FAST64_T
C_INTMAX_T
C_INTPTR_TC_FLOATC_DOUBLEC_LONG_DOUBLEC_FLOAT_COMPLEXC_DOUBLE_COMPLEXC_LONG_DOUBLE_COMPLEXC_BOOLC_CHARC_PTRC_FUNPTR(1  AbortAbsAccessACharACosACosHAdjustLAdjustRAImagAIntAlarmAll	AllocatedALogAMaxAMinAModAndANIntAnyASinASinH
AssociatedATanATanHAtomic_Define
Atomic_RefBesJBesJN	Bessel_J0	Bessel_J1	Bessel_JN	Bessel_Y0	Bessel_Y1	Bessel_YNBesYBesYNBGEBGTBLEBLTBit_SizeBTestCAbsCCosCeilingCExpCharChDirChModCLogCmplxCommand_Argument_CountComplexConjgCosCosHCountCPU_TimeCShiftCSinCSqRtCTimeC_LocC_Associated
C_Null_PtrC_Null_FunptrC_F_PointerC_F_ProcPointerC_Null_CharC_AlertC_BackspaceC_Form_FeedC_FunLocC_Sizeof
C_New_LineC_Carriage_ReturnC_Horizontal_TabC_Vertical_TabDAbsDACosDASinDATanDate_and_TimeDbesJDbesJNDbesYDbesYNDbleDCosDCosHDDiMDErFDErFCDExpDigitsDiMDIntDLogDMaxDMinDModDNIntDot_ProductDProdDSignDSinHDShiftLDShiftRDSinDSqRtDTanHDTanDTimeEOShiftEpsilonErFErFCErFC_ScaledETimeExecute_Command_LineExitExpExponentExtends_Type_OfFDateFGetFGetCFindLocFloatFloorFlushFNumFPutCFPutFractionFSeekFStatFTellGammaGErrorGetArgGet_CommandGet_Command_ArgumentGet_Environment_VariableGetCWDGetEnvGetGIdGetLogGetPIdGetUIdGMTimeHostNmHugeHypotIAbsIACharIAllIAndIAnyIArgCIBClrIBitsIBSetICharIDateIDiMIDIntIDNIntIEOrIErrNoIFixImagImagPartImage_IndexIndexIntIOrIParityIRandIsaTtyIShftIShftCISignIso_C_BindingIs_ContiguousIs_Iostat_EndIs_Iostat_EorITimeKillKindLBoundLCoBoundLenLen_TrimLGeLGtLinkLLeLLtLnBlnkLocLog	Log_GammaLogicalLongLShiftLStatLTimeMaskLMaskRMatMulMaxMaxExponentMaxLocMaxValMClockMerge
Merge_Bits
Move_AllocMinMinExponentMinLocMinValModModuloMvBitsNearestNew_LineNIntNorm2NotNull
Num_ImagesOrPackParityPError	PrecisionPresentProductRadixRandRandom_NumberRandom_SeedRangeRealRealPartRenameRepeatReshape	RRSpacingRShiftSame_Type_AsScaleScanSecondSelected_Char_KindSelected_Int_KindSelected_Real_KindSet_ExponentShapeShiftAShiftLShiftRShortSignSignalSinHSinSleepSnglSpacingSpreadSqRtSRandStatStorage_SizeSumSymLnkSystemSystem_ClockTanTanHTime
This_ImageTinyTrailZTransfer	TransposeTrimTtyNamUBoundUCoBoundUMaskUnlinkUnpackVerifyXOrZAbsZCosZExpZLogZSinZSqRt)&__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenames	mimetypesversion_addedre
IGNORECASE	MULTILINEflagsr	   Preprocr   r   r   
Whitespacer   r   r   Typer
   Declarationr   BuiltinWordr   DoubleSingler   IntegerrA  tokens__static_attributes__r       </usr/lib/python3.14/site-packages/pygments/lexers/fortran.pyr   r      s    D
%C% G4I!"IMMMBLL(E 	(wIFOT"FOt'
 	 *8GT__g+VW!8GT__g#NO 7* @EX+W, -2  R  	2 \\
 5h?g))*, 2)d 27xe2If \\g3l !$,,/;X]]KUk
Z 	-v}}=-v}}=

 	/@@&,,O@&,,O@&,,O	
yBFr  c                   T  a  ] tR t^t o RtRtR.tRR.tRtRt	]
P                  tRR	 ltR
R]3R]P                  3R]3R]P"                  R3R]! ]4      3.RR]R3R]R3R]P,                  R3.RR]! ]]]P0                  4      R
3R]! ]]P0                  4      R
3]! R
4      ./tRtV tR# )r   z!
Lexer for fixed format Fortran.
FortranFixedfortranfixedz*.fz*.Fr   z2.1Nc              #     "   \        4       pVP                  ^ 4      R,           pVP                  V4       F'  w  rVpVP                  RR4      pVR8w  g   K!  WVV3x  K)  	  R# 5i)z8Lex a line just as free form fortran without line break.
 N)r   groupget_tokens_unprocessedreplace)selfmatchctxlexertextindextokenvalues   &&&     r  _lex_fortranFortranFixedLexer._lex_fortran   s[     {{1~$#(#?#?#EE%MM$+E{E)) $Fs   AA#A#r   z[C*].*\nz#.*\nz {0,4}!.*\nz(.{5})z	cont-charz.*\n code0.z(.{66})(.*)(\n)z(.*)(\n)r   )N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	   r   r   Labelr   r   r   r   Strongr   r  r   r	  r
  __classdictcell__)__classdict__s   @r  r   r      s      DGI
%CMMME* 	'"w'W%

K0eL)*
 	$'6"'..&)

 	lGT__=vG(<A6JFO	
Fr  )r  r  pygments.lexerr   r   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   r   __all__r   r   r   r  r  <module>r+     sL    
 O O! ! ! .
/U: Up(
 (r  