# BCS Fortran Specialist Group & speakers wanted

**URL:** <https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471>\
**Category:** Announcements\
**Created:** [May 16, 2022, 5:34pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471 "2022-05-16T17:34:31Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnp](https://avatars.discourse-cdn.com/v4/letter/j/db5fbb/32.png) [@johnp](https://fortran-lang.discourse.group/u/johnp)\
**Post date:** [May 16, 2022, 5:34pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/1 "2022-05-16T17:34:31Z")

</div>

The [BCS Fortran Specialist Group](https://fortran.bcs.org/) was created in 1970 to provide an open forum for Fortran users.

**Its main aims are:**

- to disseminate information about Fortran and its application in various fields,
- to provide a platform for discussion of users’ needs and requirements in future versions of Fortran,
- to encourage the development of the language in collaboration with national and international standardization bodies,
- to promote the use of the Fortran language.

The [committee](https://fortran.bcs.org/contact.php) is comprised of academic and commercial programmers, past and present WG5 members, representatives from compiler companies and also experienced educators, amongst others.

Members have normally been [BCS](https://www.bcs.org/) members but we have accepted non-BCS members subject to conditions imposed by BCS. If you would like to [join BCS](https://www.bcs.org/membership-and-registrations/become-a-member/) you can use the code BCSFORT20 to get a 20% discount if you join online. Anyone can attend our meetings - you don’t have to be a member of the Fortran SG or BCS.

If you just want to hear about activities of the group, we can commit to sending announcements here, if that is acceptable. This is very low traffic and normally relates to one event a year. We are always on the look out for speakers for our annual talks - this year it will be in the afternoon of 29th September in London.

---

<div class="post-metadata">

**Author:** ![wyphan](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/wyphan/32/632_2.png) [@wyphan](https://fortran-lang.discourse.group/u/wyphan)\
**Post date:** [May 17, 2022, 5:31pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/2 "2022-05-17T17:31:51Z")

</div>

Is this open worldwide or only for British nationals?

---

<div class="post-metadata">

**Author:** ![johnp](https://avatars.discourse-cdn.com/v4/letter/j/db5fbb/32.png) [@johnp](https://fortran-lang.discourse.group/u/johnp)\
**Post date:** [June 2, 2022, 11:39am UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/3 "2022-06-02T11:39:53Z")

</div>

Sorry for the delay in responding - I don’t use this platform very often.

Anyone can [join the BCS](https://www.bcs.org/membership-and-registrations/become-a-member/) - there are no nationality or residence requirements. If you do join the BCS please use the discount code BCSFORT20 to get a 20% discount. This also helps the Fortran SG from a internal kudos perspective.

Given that all our meetings (aside from the AGM) are open to the public, Fortran SG membership is really just a subscription to an announcement mailing list.

---

<div class="post-metadata">

**Author:** ![lkedward](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/lkedward/32/72_2.png) [@lkedward](https://fortran-lang.discourse.group/u/lkedward)\
**Post date:** [September 23, 2022, 1:25pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/4 "2022-09-23T13:25:07Z")

</div>

You can register for the joint IoP/BCS Conference (online or in-person) using this link (it’s free!):

> **[Fortran Specialist Group AGM - 2022 and joint IoP/BCS Conference](https://www.eventbrite.co.uk/e/fortran-specialist-group-agm-2022-and-joint-iopbcs-conference-registration-403995390087)**
>
> No admission without pre-booking

During the afternoon conference I will be giving an overview of Fortran-Lang and its projects, and a demonstration of fpm/stdlib. (The presentation is based on the _State of Fortran_ presentation given during last FortranCon).

See the full agenda here: [BCS Fortran Specialist Group Annual General Meeting 2022 Agenda](https://fortran.bcs.org/2022/agenda22.php)

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [September 23, 2022, 3:15pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/5 "2022-09-23T15:15:06Z")

</div>

Completely forgot about this. Just registered for in person and hopefully I will see you there!

---

<div class="post-metadata">

**Author:** ![vmagnin](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/vmagnin/32/28_2.png) [@vmagnin](https://fortran-lang.discourse.group/u/vmagnin)\
**Post date:** [January 24, 2023, 1:21pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/6 "2023-01-24T13:21:35Z")

</div>

> [@lkedward](#):
>
> See the full agenda here: [BCS Fortran Specialist Group Annual General Meeting 2022 Agenda](https://fortran.bcs.org/2022/agenda22.php)

Note that on the above cited page, these three presentations are now freely available in PDF:

[The new features of Fortran 2023](https://fortran.bcs.org/2022/AGM22_Reid.pdf) (pdf)  
_ **John Reid** _

[NVIDIA Fortran Compiler](https://fortran.bcs.org/2022/AGM22_Hammond.pdf) (4MB pdf)  
_ **Jeff Larkin** & **Jeff Hammond** , NVIDIA_

[Fortran Lang Projects — FPM & others](https://fortran.bcs.org/2022/AGM22_Kedward.pdf) (pdf)  
_ **Laurence Kedward** , University of Bristol_

---

<div class="post-metadata">

**Author:** ![conradoat](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/conradoat/32/1537_2.png) [@conradoat](https://fortran-lang.discourse.group/u/conradoat)\
**Post date:** [January 24, 2023, 3:41pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/7 "2023-01-24T15:41:41Z")

</div>

I saw this today. I was looking how to register to discover I was four months late… 🤯

@lkedward, congrats for your presentation

---

<div class="post-metadata">

**Author:** ![Robpk](https://avatars.discourse-cdn.com/v4/letter/r/8797f3/32.png) [@Robpk](https://fortran-lang.discourse.group/u/Robpk)\
**Post date:** [January 24, 2023, 4:39pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/8 "2023-01-24T16:39:13Z")

</div>

Are there any other uses for the array index operator `@[...]` besides those shown in the `The new features of Fortran 2023` PDF (slide 16)?  
Every example shows to the right how it is done currently, simply using the semicolon, which is shorter (fewer characters to type, even more so considering in many keyboards `@`, `[` and `]` probably require holding Shift or AltGr).

And the new `enumeratoion` type, does it not allow to specify the value of each enumerator (as the `enum, bind(C)` example shows?

---

<div class="post-metadata">

**Author:** ![FortranFan](https://avatars.discourse-cdn.com/v4/letter/f/96bed5/32.png) [@FortranFan](https://fortran-lang.discourse.group/u/FortranFan)\
**Post date:** [January 24, 2023, 5:13pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/9 "2023-01-24T17:13:37Z")

</div>

> [@Robpk](#):
>
> … And the new `enumeratoion` type, does it not allow to specify the value of each enumerator (as the `enum, bind(C)` example shows?

Unfortunately no.

Having the ability to specify the type and kind of the enumerator and its value was a strong use case for me and the peers in the domains of interest to me.

I tried very, very hard to convince the designer of the feature in Fortran 2023 but I failed. If the `enumeration` type were to be restricted to integral enumerators only in Fortran and that is all the implementors could manage (C++ is like so), then at least the ability to specify the kind and value was a compromise I sought but I failed with that too. So 1980s Pascal style `enumeration type` is all the designer would pursue for Fortran 2023 and all the voting members on the committee went along with that which I think it is handing out a far inferior product in year 2023 for the practitioners in actual practice.

---

<div class="post-metadata">

**Author:** ![FortranFan](https://avatars.discourse-cdn.com/v4/letter/f/96bed5/32.png) [@FortranFan](https://fortran-lang.discourse.group/u/FortranFan)\
**Post date:** [January 24, 2023, 6:32pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/10 "2023-01-24T18:32:49Z")

</div>

> [@Robpk](#):
>
> Are there any other uses for the array index operator `@[...]` besides those shown in the `The new features of Fortran 2023` PDF (slide 16)?  
> Every example shows to the right how it is done currently, simply using the semicolon, which is shorter (fewer characters to type, even more so considering in many keyboards `@`, `[` and `]` probably require holding Shift or AltGr).

Fortran practitioners can hope the value with the Fortran 2023 facility toward array notation using multiple subscripts or subscript triplets is with the use of rank-one arrays programmatically during run-time to work with array sections and elements.

This Fortran 2023 improvement can then help get over the hurdles with the current standard around sticking with constant expressions e.g., Fortran 2023 will permit

```fortran
..
real(WP) :: a ( .. , .. ) !<- some rank-2 array
real(WP), allocatable :: b(:,:)
..
b = a(@v1:v2:v3) ! this can be the same as b = a( 3:9:2, 5:10:3 ) assuming
                  ! v1, v2, and v3 are rank-1 arrays with the same size as rank(a) and
                  ! the values of these 3 rank-1 arrays are presently 
                  ! v1 = [3, 5], v2 = [9, 10], v3 = [2, 3]

```

---

<div class="post-metadata">

**Author:** ![Robpk](https://avatars.discourse-cdn.com/v4/letter/r/8797f3/32.png) [@Robpk](https://fortran-lang.discourse.group/u/Robpk)\
**Post date:** [January 25, 2023, 1:54pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/11 "2023-01-25T13:54:12Z")

</div>

The issue I see with that notation is that it hides the rank of the array. If one is not familiar with the code, `a(@v1:v2:v3)` doesn’t tell you whether it is `a(:,:)`, `a(:,:,:)` or something else. You have to go back and check the definition of `a` or `v`.

---

<div class="post-metadata">

**Author:** ![everythingfunctional](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/everythingfunctional/32/176_2.png) [@everythingfunctional](https://fortran-lang.discourse.group/u/everythingfunctional)\
**Post date:** [January 25, 2023, 3:41pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/12 "2023-01-25T15:41:12Z")

</div>

But in essence, that’s the point. The plan is for eventually things like this work.

```fortran
subroutine foo(x)
  integer, intent(inout) :: x(..) ! assumed rank

  ...
  ! This is purely speculative and hypothetical at this point
  ! But the intent is to loop over each element in x
  do concurrent (i = @lbound(x) : @ubound(x))
    ...
     x(@i) = ...
  end do

```

Where even the declaration of `x` does not tell you its rank.

---

<div class="post-metadata">

**Author:** ![RonShepard](https://avatars.discourse-cdn.com/v4/letter/r/a3d4f5/32.png) [@RonShepard](https://fortran-lang.discourse.group/u/RonShepard)\
**Post date:** [January 25, 2023, 5:01pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/13 "2023-01-25T17:01:22Z")

</div>

Could you go into a little more detail for this example? How would one write expressions on the rhs of that statement that depend on the value of array `i(..)` which has assumed rank?

---

<div class="post-metadata">

**Author:** ![everythingfunctional](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/everythingfunctional/32/176_2.png) [@everythingfunctional](https://fortran-lang.discourse.group/u/everythingfunctional)\
**Post date:** [January 25, 2023, 9:30pm UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/14 "2023-01-25T21:30:39Z")

</div>

`i` is would not be assumed rank, but assumed/automatic shape (we haven’t begun to discuss how exactly to declare it). It would be a 1-D array with size equal to the rank of `x`. But you could do something a little goofy like:

```fortran
subroutine foo(x)
  integer, intent(out) :: x(..) ! assumed rank

  ! This is purely speculative and hypothetical at this point
  ! But the intent is to loop over each element in x
  do concurrent (i = @lbound(x) : @ubound(x))
     x(@i) = sum(i)
  end do
end subroutine

```

---

<div class="post-metadata">

**Author:** ![RonShepard](https://avatars.discourse-cdn.com/v4/letter/r/a3d4f5/32.png) [@RonShepard](https://fortran-lang.discourse.group/u/RonShepard)\
**Post date:** [January 26, 2023, 12:44am UTC](https://fortran-lang.discourse.group/t/bcs-fortran-specialist-group-speakers-wanted/3471/15 "2023-01-26T00:44:59Z")

</div>

Ah yes, you are right, I was thinking of it wrong. Your explanation makes it clear. It is more like an allocatable array` i(:)` whose size depends on the rank of the array that is being indexed. I can see how the indices could be extracted from `i(:)` within the loop.
