# CAMx v7.3 compiling with GFortran 13.2

**URL:** <https://forum.cmascenter.org/t/camx-v7-3-compiling-with-gfortran-13-2/5235>\
**Category:** Other Software\
**Created:** [September 19, 2024, 3:36pm UTC](https://forum.cmascenter.org/t/camx-v7-3-compiling-with-gfortran-13-2/5235 "2024-09-19T15:36:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![flyenz0](https://avatars.discourse-cdn.com/v4/letter/f/bbe5ce/32.png) [@flyenz0](https://forum.cmascenter.org/u/flyenz0)\
**Post date:** [September 19, 2024, 3:36pm UTC](https://forum.cmascenter.org/t/camx-v7-3-compiling-with-gfortran-13-2/5235/1 "2024-09-19T15:36:33Z")

</div>

Hello all,

I have been practicing with CAMx v6.5 since June 2024 and have run test cases successfully, and with v7.1 since August 2024 with similar results. Both tests used preexisting GFortran and PGFortran compilers on our Dell T640 40- and 88-core computing clusters running CentOS 7 Linux. We are anticipating a hardware upgrade for our Linux clusters within the year, so I am learning to install and administer an OS upgrade to either Linux Mint or Rocky Linux.

I have Linux experience as a user but none as administrator, so I am practicing on a Windows PC running VirtualBox 7.1. I created a virtual machine and installed Linux Mint 22 on it, and it has been updated and upgraded to the newest build versions. At this early stage I have only installed the GFortran libraries to meet the minimal requirements for compiling CAMx v7.3, which is reflected in the minimal makefile configuration I used.

I have attached the error messages I get when trying to compile CAMx v7.3 – I have not encountered this problem before, so I’d like to ask if anyone else has had similar issues. I don’t think it has anything to do with the VirtualBox environment, but suspect it might be a GFortran 13.2 problem – I did update and upgrade my version after installing. I don’t think the MPI and NCF libraries are to blame as they haven’t been installed yet and aren’t invoked during compilation.

I have not found any relevant discussions online or on GFortran or CAMx forums. Does anyone have any suggestions or comments? Thanks!

Compiling CAMx 7.3 using GFortran 13.2 on Linux Mint 22 on VirtualBox 7.1

make clean  
make COMPILER=gfortran MPI=false NCF=false IEEE=false

GFORTRAN 13.2 COMPILE ERRORS FROM STDOUT

* * *

- 

```
                                                          *

```

- MPI will NOT be built in \*
- 

```
                                                          *

```

- NetCDF will NOT be built in \*
- 

```
                                                          *

```

- The IEEE option NOT will be used \*
- 

```
                                                          *

```

- 

```
 Executable is: CAMx.v7.30.noMPI.gfortran

```

- 

```
                                                          *

```

* * *

make modules  
make[1]: Entering directory ‘/home/enzo/Desktop/src.v7.31’  
gfortran -c -o Mod\_src/camx\_includes.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/camx\_includes.f  
gfortran -c -o Mod\_src/grid\_dims\_mod.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/grid\_dims\_mod.f  
gfortran -c -o Mod\_src/node\_mod.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/node\_mod.f  
gfortran -c -o Mod\_src/o3colmap.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/o3colmap.f  
gfortran -c -o Mod\_src/bndary.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/bndary.f  
gfortran -c -o Mod\_src/camxcom.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/camxcom.f  
gfortran -c -o Mod\_src/camxfld.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/camxfld.f  
gfortran -c -o Mod\_src/chmstry.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/chmstry.f  
gfortran -c -o Mod\_src/filunit.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/filunit.f  
gfortran -c -o Mod\_src/grid.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/grid.f  
gfortran -c -o Mod\_src/grid\_nodes.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/grid\_nodes.f  
gfortran -c -o Mod\_src/master\_mod.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/master\_mod.f  
gfortran -c -o Mod\_src/ncf\_iomod.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/ncf\_iomod.f  
gfortran -c -o Mod\_src/pigsty.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/pigsty.f  
gfortran -c -o Mod\_src/ptemiss.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/ptemiss.f  
gfortran -c -o Mod\_src/procan.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/procan.f  
gfortran -c -o Mod\_src/rtracchm.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/rtracchm.f  
gfortran -c -o Mod\_src/rtcmcchm.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/rtcmcchm.f  
gfortran -c -o Mod\_src/tracer.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules Mod\_src/tracer.f  
make[1]: Leaving directory ‘/home/enzo/Desktop/src.v7.31’  
make model  
make[1]: Entering directory ‘/home/enzo/Desktop/src.v7.31’  
gfortran -c -o CAMx/CAMx.o -I./Includes -I./Dummy\_MPI -I./Dummy\_NCF -O2 -mcmodel=medium -J./Modules -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Modules CAMx/CAMx.f  
make[1]: Leaving directory ‘/home/enzo/Desktop/src.v7.31’

GFORTRAN 13.2 COMPILE ERRORS FROM STDERR

CAMx/CAMx.f:195:24:

194 | call nodes\_pass(date,1,MPI\_INTEGER,itag,numprocs,iproc\_id)  
| 2  
195 | call nodes\_pass(time,1,MPI\_REAL,itag,numprocs,iproc\_id)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/INTEGER(4)).  
CAMx/CAMx.f:213:24:

194 | call nodes\_pass(date,1,MPI\_INTEGER,itag,numprocs,iproc\_id)  
| 2  
…  
213 | call nodes\_pass(bndtim,1,MPI\_REAL,itag,numprocs,iproc\_id)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/INTEGER(4)).  
CAMx/CAMx.f:215:24:

194 | call nodes\_pass(date,1,MPI\_INTEGER,itag,numprocs,iproc\_id)  
| 2  
…  
215 | call nodes\_pass(toptim,1,MPI\_REAL,itag,numprocs,iproc\_id)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/INTEGER(4)).  
CAMx/CAMx.f:217:24:

194 | call nodes\_pass(date,1,MPI\_INTEGER,itag,numprocs,iproc\_id)  
| 2  
…  
217 | call nodes\_pass(inptim,1,MPI\_REAL,itag,numprocs,iproc\_id)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/INTEGER(4)).  
CAMx/CAMx.f:219:24:

194 | call nodes\_pass(date,1,MPI\_INTEGER,itag,numprocs,iproc\_id)  
| 2  
…  
219 | call nodes\_pass(emstim,1,MPI\_REAL,itag,numprocs,iproc\_id)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/INTEGER(4)).  
CAMx/CAMx.f:232:26:

194 | call nodes\_pass(date,1,MPI\_INTEGER,itag,numprocs,iproc\_id)  
| 2  
…  
232 | call nodes\_pass(lupdtdep,ngrid,MPI\_INTEGER,  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/INTEGER(4)).  
CAMx/CAMx.f:254:26:

194 | call nodes\_pass(date,1,MPI\_INTEGER,itag,numprocs,iproc\_id)  
| 2  
…  
254 | call nodes\_pass(ozntim,1,MPI\_REAL,itag,numprocs,iproc\_id)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/INTEGER(4)).  
CAMx/CAMx.f:740:28:

469 | call zeros(rtsolmas(ipsa2d(igrd)),nodes)  
| 2  
…  
740 | call zeros(nkill,9)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)).  
CAMx/CAMx.f:741:28:

469 | call zeros(rtsolmas(ipsa2d(igrd)),nodes)  
| 2  
…  
741 | call zeros(nage,ngrid)  
| 1  
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)).  
make[1]: \*\*\* [Makefile:1221: CAMx/CAMx.o] Error 1  
make: \*\*\* [Makefile:549: comp\_gfortran] Error 2

---

<div class="post-metadata">

**Author:** ![cjcoats](https://avatars.discourse-cdn.com/v4/letter/c/ac8455/32.png) [@cjcoats](https://forum.cmascenter.org/u/cjcoats)\
**Post date:** [September 19, 2024, 4:34pm UTC](https://forum.cmascenter.org/t/camx-v7-3-compiling-with-gfortran-13-2/5235/2 "2024-09-19T16:34:48Z")

</div>

We’ve seen this before, with I/O API stuff: see [https://cjcoats.github.io/ioapi/ERRORS.html#gfort10](https://cjcoats.github.io/ioapi/ERRORS.html#gfort10): starting with Version 10, _gfortran_ takes a particularly idiosyncratic interpretation of the (latest) Fortran-2018 Standard (not Fortran-90 nor Fortran-95).

You need to add the compile flag

> `-std=legacy`

so that this interpretation does not cause a compile-error.

---

<div class="post-metadata">

**Author:** ![flyenz0](https://avatars.discourse-cdn.com/v4/letter/f/bbe5ce/32.png) [@flyenz0](https://forum.cmascenter.org/u/flyenz0)\
**Post date:** [September 19, 2024, 7:11pm UTC](https://forum.cmascenter.org/t/camx-v7-3-compiling-with-gfortran-13-2/5235/3 "2024-09-19T19:11:26Z")

</div>

Thank you very much, this solved the problem and I now have a CAMx v7.3 executable!
