Skip to content

Commit

Permalink
Update Fortran lexer to Fortran 2023.
Browse files Browse the repository at this point in the history
  • Loading branch information
zufuliu committed May 10, 2024
1 parent 4d9169b commit 95ad52a
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 50 deletions.
3 changes: 3 additions & 0 deletions doc/FileExt.txt
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,11 @@ Fortran Source
f95
f03
f08
f18
f77
f2k
hf
cuf

F# Source
fs
Expand Down
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Latest development builds (artifacts in Release configuration for each compiler
* [Dart](tools/lang/Dart.dart), up to Dart 3.3.
* Diff/Patch File
* [F#](tools/lang/FSharp.fs), up to F# 8.0.
* [Fortran](tools/lang/Fortran.f), up to Fortran 2018.
* [Fortran](tools/lang/Fortran.f), up to Fortran 2023.
* [GN Build](tools/lang/GN.gn), up to GN 2019-03-13.
* [Go](tools/lang/Go.go), up to Go 1.21.
* [Go+ (GoPlus)](https://goplus.org/) and the Q language
Expand Down
6 changes: 3 additions & 3 deletions scintilla/lexers/LexFortran.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ enum {
enum class KeywordType {
None = 0,
Change, // change team
Select, // select type
Select, // select type, enumeration type
Else, // else if
Module, // module function, module subroutine
End,
Expand Down Expand Up @@ -173,7 +173,7 @@ void ColouriseFortranDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int ini
kwType = KeywordType::End;
} else if (StrEqual(s, "module")) {
kwType = KeywordType::Module;
} else if (StrEqual(s, "select")) {
} else if (StrEqualsAny(s, "select", "enumeration")) {
kwType = KeywordType::Select;
} else if (StrEqualsAny(s, "function", "subroutine")) {
kwType = KeywordType::Function;
Expand Down Expand Up @@ -304,7 +304,7 @@ void ColouriseFortranDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int ini
sc.SetState(SCE_F_IDENTIFIER);
} else if (sc.ch == '.' && IsAlpha(sc.chNext)) {
sc.SetState(SCE_F_OPERATOR2);
} else if (isoperator(sc.ch)) {
} else if (IsAGraphic(sc.ch)) {
kwType = KeywordType::None;
if (sc.ch == '(' || sc.ch == '[' || sc.ch == '{') {
++parenCount;
Expand Down
79 changes: 42 additions & 37 deletions src/EditLexers/stlFortran.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@

static KEYWORDLIST Keywords_Fortran = {{
//++Autogenerated -- start of section automatically generated
"all allocate assign backspace call case change class close common concurrent contains cycle data deallocate default "
"else elseif elsewhere endfile entry enumerator equivalence error event exit fail file final flush form format "
"generic go goto image images implicit import include inquire is lock map memory namelist none nullify only open "
"pause post print procedure rank read record result return rewind stop structure sync then to union unlock use "
"wait while write "
"all allocate assign backspace call case change class classof close common concurrent contains cycle "
"data deallocate default else elseif elsewhere endfile entry enumerator equivalence error event exit "
"fail file final flush form format generic go goto image images implicit import include inquire is lock map memory "
"namelist none notify nullify only open pause post print procedure rank read record result return rewind "
"stop structure sync then to typeof union unlock use wait while write "

, // 1 code folding
"associate block blockdata continue critical do "
"end endassociate endblock endblockdata endcritical enddo endenum endforall endfunction endif endinterface endmodule "
"endprocedure endprogram endselect endsubmodule endsubroutine endteam endtype endwhere enum "
"endprocedure endprogram endselect endsubmodule endsubroutine endteam endtype endwhere enum enumeration "
"forall function if interface module program select selectcase selectrank selecttype submodule subroutine team type "
"where "

Expand All @@ -23,19 +23,21 @@ static KEYWORDLIST Keywords_Fortran = {{
"abstract access acquired_lock action advance allocatable assignment asynchronous automatic bind blank "
"codimension contiguous convert decimal deferred delim dimension direct "
"elemental encoding eor err errmsg exist extends external fmt formatted "
"id impure in inout intent intrinsic iolength iomsg iostat kind len local local_init mold "
"id impure in inout intent intrinsic iolength iomsg iostat kind leading_zero len local local_init mold "
"name named new_index newunit nextrec nml non_intrinsic non_overridable non_recursive nopass number "
"opened operator optional out pad parameter pass pending pointer pos position private protected public pure quiet "
"readwrite rec recl recursive round save sequence sequential shared sign size source stat static status stream "
"target team_number unformatted unit until_count value volatile "

, // 4 function
"abs( achar( acos( acosh( adjustl( adjustr( aimag( aint( all( allocated( anint( any( asin( asinh( associated( "
"atan( atan2( atanh( atomic_add( atomic_and( atomic_cas( atomic_define( "
"atomic_fetch_add( atomic_fetch_and( atomic_fetch_or( atomic_fetch_xor( atomic_or( atomic_ref( atomic_xor( "
"abs( achar( acos( acosd( acosh( acospi( adjustl( adjustr( aimag( aint( all( allocated( anint( any( "
"asin( asind( asinh( asinpi( associated( atan( atan2( atan2d( atan2pi( atand( atanh( atanhpi( atomic_add( atomic_and( "
"atomic_cas( atomic_define( atomic_fetch_add( atomic_fetch_and( atomic_fetch_or( atomic_fetch_xor( atomic_or( "
"atomic_ref( atomic_xor( "
"backspace( bessel_j0( bessel_j1( bessel_jn( bessel_y0( bessel_y1( bessel_yn( bge( bgt( bit_size( ble( blt( btest( "
"ceiling( char( class( close( cmplx( co_broadcast( co_max( co_min( co_reduce( co_sum( "
"command_argument_count( compiler_options( compiler_version( conjg( cos( cosh( coshape( count( cpu_time( cshift( "
"ceiling( char( class( classof( close( cmplx( co_broadcast( co_max( co_min( co_reduce( co_sum( "
"command_argument_count( compiler_options( compiler_version( conjg( cos( cosd( cosh( coshape( cospi( count( cpu_time( "
"cshift( "
"date_and_time( dble( digits( dim( dimension( dot_product( dprod( dshiftl( dshiftr( "
"endfile( eoshift( epsilon( erf( erfc( erfc_scaled( event_query( execute_command_line( exp( exponent( extends_type_of( "
"failed_images( findloc( floor( flush( format( fraction( "
Expand All @@ -45,32 +47,34 @@ static KEYWORDLIST Keywords_Fortran = {{
"kind( lbound( lcobound( leadz( len( len_trim( lge( lgt( lle( llt( log( log10( log_gamma( logical( "
"maskl( maskr( matmul( max( maxexponent( maxloc( maxval( merge( merge_bits( min( minexponent( minloc( minval( "
"mod( modulo( move_alloc( mvbits( "
"nearest( new_line( nint( norm2( not( null( num_images( open( out_of_range( "
"pack( parity( popcnt( poppar( precision( present( product( "
"nearest( new_line( next( nint( norm2( not( null( num_images( open( out_of_range( "
"pack( parity( popcnt( poppar( precision( present( previous( product( "
"radix( random_init( random_number( random_seed( range( rank( read( real( reduce( repeat( reshape( rewind( rrspacing( "
"same_type_as( scale( scan( selected_char_kind( selected_int_kind( selected_real_kind( set_exponent( "
"shape( shifta( shiftl( shiftr( sign( sin( sinh( size( spacing( spread( sqrt( stopped_images( storage_size( sum( "
"system_clock( "
"tan( tanh( team_number( this_image( tiny( trailz( transfer( transpose( trim( type( ubound( ucobound( unpack( verify( "
"wait( write( "
"same_type_as( scale( scan( "
"selected_char_kind( selected_int_kind( selected_logical_kind( selected_real_kind( set_exponent( "
"shape( shifta( shiftl( shiftr( sign( sin( sind( sinh( sinpi( size( spacing( split( spread( sqrt( "
"stopped_images( storage_size( sum( system_clock( "
"tan( tand( tanh( tanpi( team_number( this_image( tiny( tokenize( trailz( transfer( transpose( trim( type( typeof( "
"ubound( ucobound( unpack( verify( wait( write( "

, // 5 misc
"ABS( ABSTRACT ACCESS ACHAR( ACOS( ACOSH( ACQUIRED_LOCK ACTION ADJUSTL( ADJUSTR( ADVANCE AIMAG( AINT( "
"ALL ALL( ALLOCATABLE ALLOCATE ALLOCATED( ANINT( ANY( ASIN( ASINH( ASSIGN ASSIGNMENT ASSOCIATE ASSOCIATED( ASYNCHRONOUS "
"ATAN( ATAN2( ATANH( ATOMIC_ADD( ATOMIC_AND( ATOMIC_CAS( ATOMIC_DEFINE( "
"ABS( ABSTRACT ACCESS ACHAR( ACOS( ACOSD( ACOSH( ACOSPI( ACQUIRED_LOCK ACTION ADJUSTL( ADJUSTR( ADVANCE AIMAG( AINT( "
"ALL ALL( ALLOCATABLE ALLOCATE ALLOCATED( ANINT( ANY( "
"ASIN( ASIND( ASINH( ASINPI( ASSIGN ASSIGNMENT ASSOCIATE ASSOCIATED( ASYNCHRONOUS "
"ATAN( ATAN2( ATAN2D( ATAN2PI( ATAND( ATANH( ATANHPI( ATOMIC_ADD( ATOMIC_AND( ATOMIC_CAS( ATOMIC_DEFINE( "
"ATOMIC_FETCH_ADD( ATOMIC_FETCH_AND( ATOMIC_FETCH_OR( ATOMIC_FETCH_XOR( ATOMIC_OR( ATOMIC_REF( ATOMIC_XOR( AUTOMATIC "
"BACKSPACE BACKSPACE( BESSEL_J0( BESSEL_J1( BESSEL_JN( BESSEL_Y0( BESSEL_Y1( BESSEL_YN( BGE( BGT( BIND BIT_SIZE( "
"BLANK BLE( BLOCK BLOCKDATA BLT( BTEST( "
"CALL CASE CEILING( CHANGE CHAR( CHARACTER CLASS CLASS( CLOSE CLOSE( CMPLX( CODIMENSION "
"CALL CASE CEILING( CHANGE CHAR( CHARACTER CLASS CLASS( CLASSOF CLASSOF( CLOSE CLOSE( CMPLX( CODIMENSION "
"COMMAND_ARGUMENT_COUNT( COMMON COMPILER_OPTIONS( COMPILER_VERSION( COMPLEX "
"CONCURRENT CONJG( CONTAINS CONTIGUOUS CONTINUE CONVERT COS( COSH( COSHAPE( COUNT( "
"CONCURRENT CONJG( CONTAINS CONTIGUOUS CONTINUE CONVERT COS( COSD( COSH( COSHAPE( COSPI( COUNT( "
"CO_BROADCAST( CO_MAX( CO_MIN( CO_REDUCE( CO_SUM( CPU_TIME( CRITICAL CSHIFT( CYCLE "
"DATA DATE_AND_TIME( DBLE( DEALLOCATE DECIMAL DEFAULT DEFERRED DELIM DIGITS( DIM( DIMENSION DIMENSION( DIRECT "
"DO DOT_PRODUCT( DOUBLE DOUBLEPRECISION DPROD( DSHIFTL( DSHIFTR( "
"ELEMENTAL ELSE ELSEIF ELSEWHERE ENCODING END ENDASSOCIATE ENDBLOCK ENDBLOCKDATA ENDCRITICAL ENDDO ENDENUM "
"ENDFILE ENDFILE( ENDFORALL ENDFUNCTION ENDIF ENDINTERFACE ENDMODULE ENDPROCEDURE ENDPROGRAM "
"ENDSELECT ENDSUBMODULE ENDSUBROUTINE ENDTEAM ENDTYPE ENDWHERE ENTRY ENUM ENUMERATOR EOR EOSHIFT( EPSILON( EQUIVALENCE "
"ERF( ERFC( ERFC_SCALED( ERR ERRMSG ERROR EVENT EVENT_QUERY( EVENT_TYPE "
"ENDSELECT ENDSUBMODULE ENDSUBROUTINE ENDTEAM ENDTYPE ENDWHERE ENTRY ENUM ENUMERATION ENUMERATOR EOR EOSHIFT( EPSILON( "
"EQUIVALENCE ERF( ERFC( ERFC_SCALED( ERR ERRMSG ERROR EVENT EVENT_QUERY( EVENT_TYPE "
"EXECUTE_COMMAND_LINE( EXIST EXIT EXP( EXPONENT( EXTENDS EXTENDS_TYPE_OF( EXTERNAL "
"FAIL FAILED_IMAGES( FILE FINAL FINDLOC( FLOOR( FLUSH FLUSH( FMT FORALL FORM FORMAT FORMAT( FORMATTED FRACTION( FUNCTION "
"GAMMA( GENERIC GET_COMMAND( GET_COMMAND_ARGUMENT( GET_ENVIRONMENT_VARIABLE( GET_TEAM( GO GOTO HUGE( HYPOT( "
Expand All @@ -79,25 +83,26 @@ static KEYWORDLIST Keywords_Fortran = {{
"IN INCLUDE INDEX( INOUT INQUIRE INQUIRE( INT( INTEGER INTENT INTENT( INTERFACE INTRINSIC IOLENGTH IOMSG IOR( IOSTAT "
"IPARITY( IS ISHFT( ISHFTC( IS_CONTIGUOUS( IS_IOSTAT_END( IS_IOSTAT_EOR( "
"KIND KIND( "
"LBOUND( LCOBOUND( LEADZ( LEN LEN( LEN_TRIM( LGE( LGT( LLE( LLT( "
"LBOUND( LCOBOUND( LEADING_ZERO LEADZ( LEN LEN( LEN_TRIM( LGE( LGT( LLE( LLT( "
"LOCAL LOCAL_INIT LOCK LOCK_TYPE LOG( LOG10( LOGICAL LOGICAL( LOG_GAMMA( "
"MAP MASKL( MASKR( MATMUL( MAX( MAXEXPONENT( MAXLOC( MAXVAL( MEMORY MERGE( MERGE_BITS( MIN( MINEXPONENT( MINLOC( MINVAL( "
"MOD( MODULE MODULO( MOLD MOVE_ALLOC( MVBITS( "
"NAME NAMED NAMELIST NEAREST( NEWUNIT NEW_INDEX NEW_LINE( NEXTREC NINT( NML "
"NONE NON_INTRINSIC NON_OVERRIDABLE NON_RECURSIVE NOPASS NORM2( NOT( NULL( NULLIFY NUMBER NUM_IMAGES( "
"NAME NAMED NAMELIST NEAREST( NEWUNIT NEW_INDEX NEW_LINE( NEXT( NEXTREC NINT( NML "
"NONE NON_INTRINSIC NON_OVERRIDABLE NON_RECURSIVE NOPASS NORM2( NOT( NOTIFY NULL( NULLIFY NUMBER NUM_IMAGES( "
"ONLY OPEN OPEN( OPENED OPERATOR OPTIONAL OUT OUT_OF_RANGE( "
"PACK( PAD PARAMETER PARITY( PASS PAUSE PENDING POINTER POPCNT( POPPAR( POS POSITION POST "
"PRECISION PRECISION( PRESENT( PRINT PRIVATE PROCEDURE PRODUCT( PROGRAM PROTECTED PUBLIC PURE "
"PRECISION PRECISION( PRESENT( PREVIOUS( PRINT PRIVATE PROCEDURE PRODUCT( PROGRAM PROTECTED PUBLIC PURE "
"QUIET "
"RADIX( RANDOM_INIT( RANDOM_NUMBER( RANDOM_SEED( RANGE( RANK RANK( "
"READ READ( READWRITE REAL REAL( REC RECL RECORD RECURSIVE REDUCE( REPEAT( RESHAPE( RESULT RETURN REWIND REWIND( ROUND "
"RRSPACING( "
"SAME_TYPE_AS( SAVE SCALE( SCAN( "
"SELECT SELECTCASE SELECTED_CHAR_KIND( SELECTED_INT_KIND( SELECTED_REAL_KIND( SELECTRANK SELECTTYPE SEQUENCE SEQUENTIAL "
"SET_EXPONENT( SHAPE( SHARED SHIFTA( SHIFTL( SHIFTR( SIGN SIGN( SIN( SINH( SIZE SIZE( SOURCE SPACING( SPREAD( SQRT( "
"STAT STATIC STATUS STOP STOPPED_IMAGES( STORAGE_SIZE( STREAM STRUCTURE SUBMODULE SUBROUTINE SUM( SYNC SYSTEM_CLOCK( "
"TAN( TANH( TARGET TEAM TEAM_NUMBER TEAM_NUMBER( TEAM_TYPE THEN THIS_IMAGE( TINY( TO TRAILZ( TRANSFER( TRANSPOSE( TRIM( "
"TYPE TYPE( TYPESPEC "
"SAME_TYPE_AS( SAVE SCALE( SCAN( SELECT SELECTCASE "
"SELECTED_CHAR_KIND( SELECTED_INT_KIND( SELECTED_LOGICAL_KIND( SELECTED_REAL_KIND( SELECTRANK SELECTTYPE "
"SEQUENCE SEQUENTIAL SET_EXPONENT( SHAPE( SHARED SHIFTA( SHIFTL( SHIFTR( SIGN SIGN( SIN( SIND( SINH( SINPI( SIZE SIZE( "
"SOURCE SPACING( SPLIT( SPREAD( SQRT( STAT STATIC STATUS STOP STOPPED_IMAGES( STORAGE_SIZE( STREAM STRUCTURE "
"SUBMODULE SUBROUTINE SUM( SYNC SYSTEM_CLOCK( "
"TAN( TAND( TANH( TANPI( TARGET TEAM TEAM_NUMBER TEAM_NUMBER( TEAM_TYPE THEN THIS_IMAGE( TINY( TO TOKENIZE( "
"TRAILZ( TRANSFER( TRANSPOSE( TRIM( TYPE TYPE( TYPEOF TYPEOF( TYPESPEC "
"UBOUND( UCOBOUND( UNFORMATTED UNION UNIT UNLOCK UNPACK( UNTIL_COUNT USE VALUE VERIFY( VOLATILE "
"WAIT WAIT( WHERE WHILE WRITE WRITE( "

Expand Down Expand Up @@ -144,7 +149,7 @@ EDITLEXER lexFortran = {
SCE_F_STRING_SQ, SCE_F_ESCAPECHAR,
//Settings--Autogenerated -- end of section automatically generated
EDITLEXER_HOLE(L"Fortran Source", Styles_Fortran),
L"f; for; ftn; fpp; f90; f95; f03; f08; f2k; hf",
L"f; for; ftn; fpp; f90; f95; f03; f08; f18; f77; f2k; hf; cuf",
&Keywords_Fortran,
Styles_Fortran
};
52 changes: 43 additions & 9 deletions tools/lang/Fortran.f
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
! https://wg5-fortran.org/
! https://fortranwiki.org/fortran/show/HomePage
! 2018 N2146 https://wg5-fortran.org/documents.html
! https://gcc.gnu.org/onlinedocs/gfortran/
! https://wg5-fortran.org/documents.html
! 2018 N2146 https://wg5-fortran.org/N2101-N2150/N2146.pdf
! 2023 https://j3-fortran.org/doc/year/24/24-007.pdf

!! keywords ===========================================================
INCLUDE ! Including source text
! Types
CLASS ! Type specifier
CLASS TYPEOF CLASSOF ! Type specifier
FINAL ! FINAL statement
ENUMERATOR ! Enumerations and enumerators
! Attribute declarations and specifications
Expand All @@ -31,10 +34,17 @@
GO TO GOTO ! GO TO statement
ERROR STOP
FAIL IMAGE ! FAIL IMAGE statement
SYNC ALL IMAGES MEMORY TEAM
EVENT POST WAIT
NOTIFY WAIT ! NOTIFY WAIT statement
! Image control statements
SYNC ALL
SYNC IMAGES
SYNC MEMORY
SYNC TEAM
EVENT POST
EVENT WAIT
FORM TEAM
LOCK UNLOCK
LOCK
UNLOCK
! Input/output statements
OPEN CLOSE READ WRITE PRINT
WAIT BACKSPACE END FILE ENDFILE REWIND
Expand All @@ -44,7 +54,7 @@
FORMAT
! Program units
USE ONLY ! USE statement
BLOCK DATA
BLOCK DATA
END
! Procedures
PROCEDURE
Expand Down Expand Up @@ -84,7 +94,7 @@
NOPASS PASS POINTER ! proc-component-attr-spec
DEFERRED NON_OVERRIDABLE ! binding-attr
! Use of data objects
STAT TEAM TEAM_NUMBER ! Image selectors
NOTIFY STAT TEAM TEAM_NUMBER ! Image selectors
ERRMSG MOLD SOURCE STAT ! ALLOCATE statement

! Execution control
Expand All @@ -95,9 +105,9 @@
ACQUIRED_LOCK ! LOCK and UNLOCK statements

! OPEN statement
ACCESS ACTION ASYNCHRONOUS BLANK DECIMAL DELIM ENCODING ERR FILE FORM IOMSG IOSTAT NEWUNIT PAD POSITION RECL ROUND SIGN STATUS UNIT
ACCESS ACTION ASYNCHRONOUS BLANK DECIMAL DELIM ENCODING ERR FILE FORM IOMSG IOSTAT LEADING_ZERO NEWUNIT PAD POSITION RECL ROUND SIGN STATUS UNIT
! Control information list
ADVANCE ASYNCHRONOUS BLANK DECIMAL DELIM ERR EOR FMT ID IOMSG IOSTAT NML PAD POS REC ROUND SIGN SIZE UNIT
ADVANCE ASYNCHRONOUS BLANK DECIMAL DELIM ERR EOR FMT ID IOMSG IOSTAT LEADING_ZERO NML PAD POS REC ROUND SIGN SIZE UNIT
! INQUIRE statement
ACCESS ACTION ASYNCHRONOUS BLANK DECIMAL DELIM DIRECT ENCODING ERR EXIST FILE FORM FORMATTED ID IOLENGTH IOMSG IOSTAT NAME NAMED NEXTREC NUMBER OPENED PAD PENDING POS POSITION READWRITE RECL ROUND SEQUENTIAL SIGN SIZE STREAM UNFORMATTED UNIT WRITE

Expand Down Expand Up @@ -131,6 +141,8 @@
ENDTYPE
ENUM ! Enumerations and enumerators
ENDENUM
ENUMERATION TYPE
END ENUMERATION TYPE

! Expressions and assignment
WHERE ! Masked array assignment
Expand Down Expand Up @@ -197,6 +209,8 @@ MODULE SUBROUTINE
!! function ===========================================================
TYPE()
CLASS()
CLASSOF()
TYPEOF()
DIMENSION()
INTENT()

Expand All @@ -213,10 +227,13 @@ MODULE SUBROUTINE
FORMAT()

! standard intrinsic procedures
! TODO: https://gcc.gnu.org/onlinedocs/gfortran/Intrinsic-Procedures.html
ABS(A)
ACHAR(I [, KIND])
ACOS(X)
ACOSD(X)
ACOSH(X)
ACOSPI(X)
ADJUSTL(STRING)
ADJUSTR(STRING)
AIMAG(Z)
Expand All @@ -226,11 +243,17 @@ MODULE SUBROUTINE
ANINT(A [, KIND])
ANY(MASK, DIM)
ASIN(X)
ASIND(X)
ASINH(X)
ASINPI(X)
ASSOCIATED(POINTER [, TARGET])
ATAN(X)
ATAN2(Y, X)
ATAN2D(Y, X)
ATAN2PI(Y, X)
ATAND(X)
ATANH(X)
ATANHPI(X)
ATOMIC_ADD(ATOM, VALUE [, STAT])
ATOMIC_AND(ATOM, VALUE [, STAT])
ATOMIC_CAS(ATOM, OLD, COMPARE, NEW [, STAT])
Expand Down Expand Up @@ -267,8 +290,10 @@ MODULE SUBROUTINE
COMMAND_ARGUMENT_COUNT( )
CONJG(Z)
COS(X)
COSD(X)
COSH(X)
COSHAPE(COARRAY [, KIND])
COSPI(X)
COUNT(MASK [, DIM, KIND])
CPU_TIME(TIME)
CSHIFT(ARRAY, SHIFT [, DIM])
Expand Down Expand Up @@ -361,6 +386,7 @@ MODULE SUBROUTINE

NEAREST(X, S)
NEW_LINE(A)
NEXT(A [, STAT])
NINT(A [, KIND])
NORM2(X, DIM)
NOT(I)
Expand All @@ -374,6 +400,7 @@ MODULE SUBROUTINE
POPPAR(I)
PRECISION(X)
PRESENT(A)
PREVIOUS(A [, STAT])
PRODUCT(ARRAY, DIM [, MASK])

RADIX(X)
Expand All @@ -393,6 +420,7 @@ MODULE SUBROUTINE
SCAN(STRING, SET [, BACK, KIND])
SELECTED_CHAR_KIND(NAME)
SELECTED_INT_KIND(R)
SELECTED_LOGICAL_KIND(BITS)
SELECTED_REAL_KIND([P, R, RADIX])
SET_EXPONENT(X, I)
SHAPE(SOURCE [, KIND])
Expand All @@ -401,9 +429,12 @@ MODULE SUBROUTINE
SHIFTR(I, SHIFT)
SIGN(A, B)
SIN(X)
SIND(X)
SINH(X)
SINPI(X)
SIZE(ARRAY [, DIM, KIND])
SPACING(X)
SPLIT(STRING, SET, POS [, BACK])
SPREAD(SOURCE, DIM, NCOPIES)
SQRT(X)
STOPPED_IMAGES([TEAM, KIND])
Expand All @@ -412,10 +443,13 @@ MODULE SUBROUTINE
SYSTEM_CLOCK([COUNT, COUNT_RATE, COUNT_MAX])

TAN(X)
TAND(X)
TANH(X)
TANPI(X)
TEAM_NUMBER([TEAM])
THIS_IMAGE(COARRAY, DIM [, TEAM])
TINY(X)
TOKENIZE(STRING, SET, TOKENS [, SEPARATOR])
TRAILZ(I)
TRANSFER(SOURCE, MOLD [, SIZE])
TRANSPOSE(MATRIX)
Expand Down

0 comments on commit 95ad52a

Please sign in to comment.