CROCO-PISCES with AGRIF - gfortran causing runtime errors

Hi there,

I can get CROCO-PISCES and CROCO-AGRIF working fine on the HPC system I’m using. The HPC system only provides the gnu compiler stack.

I’m getting a lot of runtime errors, such as:

Fortran runtime error: Actual string length does not match the declared one for dummy argument 'ctrcnu' (500/20) at trcnam_pisces_.f90:415.
(where the namelist is being read). AGRIF tabvars are set to size 500 here.

  1. read_inp_.f:1804:54: runtime error: load of value 3200171710, which is not a valid value for type ‘logical(kind=4)’

The detail above emerges when using the gfortran debug flags. Without the debug flags I get a malloc issue.

I suspect that gfortran may be the root cause here, and I will have to get to the bottom of the issue as ifort is not an option.

I’m using CROCO v2.1.1 and I don’t see anything in CROCO v2.1.2 to suggest an issue like this has been resolved between the two releases. Any suggestions would be greatly appreciated.

Thanks,

Joe

1 Like

Hi Joe McGovern, @jvmcgovern
Have a very good morning.
Is it with master branch? ‘ctrcnu’ (500/20) mean CHARACTER ( len= " " )
I saw AGRIF modtypes.F90 used 500 for, same time PISCES used 20 ( short name), 80 for long name and restart case 256 in trc.F90 .
can you please check if you make in 500 for all.
you may try like:
add in top:
INTEGER, PARAMETER :: LTRC_STR = 500
then (example)
CHARACTER(len=LTRC_STR) :: clsname
CHARACTER(len=LTRC_STR) :: cllname
CHARACTER(len=LTRC_STR) :: clunit

Please check and let me know.
please share log before and after (compilation as well run-time)
Thank you!
Best,

Thanks for the suggestion. I actually tried that yesterday and ended up with another issue further down where there is now a different runtime error relating to AGRIF indices. I have revised the set of gfortran flags to see if something more machine-specific might change things. I’m going to give that a go to see if it makes a difference.

The runtime errors I get are the runtime manifestation of some of the following compilation warnings, especially about bounds.

I’m assuming that the code combination (CROCO-PISCES-AGRIF, v2.1.1) works OK on other systems. The System I’m using is a Cray-HP system using AMD EPYC chips, and I’m using the gfortran compiler.

Any suggestions are most welcome. I’m conscious that some debugging suggests editing the code significantly which could have cascading effects.

I’m wondering would anyone else be able to trial my configuration on a different HPC system with gfortran and then with ifort?

295 | call MPI_SEND(sendtoproc(k),1,MPI_LOGICAL,k,etiquette,Agrif_mpi_comm,code)
| 1

623 | call MPI_SEND( tab3D( imin(1):imax(1), &
| 2
Warning: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/REAL(8)).
AGRIF_FILES/modmpp.F90:308:22:

308 | call MPI_RECV(res,1,MPI_LOGICAL,k,etiquette,Agrif_mpi_comm,statut,code)
| 1

463 | call MPI_RECV(temprecv%array1,datasize,Agrif_MPI_prec,k,etiquette, &
| 2
Warning: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/REAL(8)).

AGRIF_FILES/modinterp.F90:340:27:

319 | call MPI_ALLGATHER(tab3,4nbdim,MPI_INTEGER,tab4,4nbdim,MPI_INTEGER,Agrif_mpi_comm,code)
| 2

340 | call MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall,1,MPI_LOGICAL,Agrif_mpi_comm,code)
| 1
Warning: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/INTEGER(4)).

AGRIF_FILES/modupdate.F90:579:27:

567 | call MPI_ALLGATHER(tab3,4nbdim,MPI_INTEGER,tab4,4nbdim,MPI_INTEGER,Agrif_mpi_comm,code)
| 2

579 | call MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall,1,MPI_LOGICAL,Agrif_mpi_comm,code)
| 1
Warning: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/INTEGER(4)).
rm -f AGRIF_YOURFILES/modbcfunction.f90

:3015:27: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
:2098:39: warning: missing terminating ’ character
:2099:39: warning: missing terminating ’ character
:2100:39: warning: missing terminating ’ character
:2101:39: warning: missing terminating ’ character

ncjoin._.f:1876:72:

1876 | & start1,count1, vdims(i))
| 1
Warning: Type mismatch in argument ‘buff’ at (1); passed REAL(8) to CHARACTER(1)
ncjoin._.f:1880:72:

1880 | & start1,count1, vdims(i))
| 1
Warning: Type mismatch in argument ‘buff’ at (1); passed REAL(8) to INTEGER(1)
ncjoin._.f:1884:72:

1884 | & start1,count1, vdims(i))
| 1
Warning: Type mismatch in argument ‘buff’ at (1); passed REAL(8) to INTEGER(2)
ncjoin._.f:1888:72:

1888 | & start1,count1, vdims(i))
| 1
Warning: Type mismatch in argument ‘buff’ at (1); passed REAL(8) to INTEGER(4)
ncjoin._.f:1892:72:

1892 | & start1,count1, vdims(i))
| 1
Warning: Type mismatch in argument ‘buff’ at (1); passed REAL(8) to REAL(4)

WARNING : The dimension of the character blk_vname
is upper than 200. You must change
the dimension of carray2
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 163. Replace 200 with 350.
WARNING : The dimension of the character blk_vname
is upper than 200. You must change
the dimension of carray2
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 163. Replace 200 with 350.
WARNING : The dimension of the character bulkfilename
is upper than 200. You must change
the dimension of carray1
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 162. Replace 200 with 350.
WARNING : The dimension of the character bulkfilename
is upper than 200. You must change
the dimension of carray1
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 162. Replace 200 with 350.
-comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile setup_kwds.F)
WARNING : The dimension of the character Coptions
is upper than 2400. You must change
the dimension of carray0
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 161. Replace 2400 with 5100.

WARNING : The dimension of the character Coptions
is upper than 2400. You must change
the dimension of carray0
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 161. Replace 2400 with 5100.
WARNING : The dimension of the character Coptions
is upper than 2400. You must change
the dimension of carray0
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 161. Replace 2400 with 5100.

WARNING : The dimension of the character srcs
is upper than 2400. You must change
the dimension of carray0
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 161. Replace 2400 with 5100.
WARNING : The dimension of the character Coptions
is upper than 2400. You must change
the dimension of carray0
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 161. Replace 2400 with 5100.
WARNING : The dimension of the character Coptions
is upper than 2400. You must change
the dimension of carray0
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 161. Replace 2400 with 5100.
WARNING : The dimension of the character srcs
is upper than 2400. You must change
the dimension of carray0
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 161. Replace 2400 with 5100.

put_global_atts_.f:2712:64:

2695 | & 1, theta_s)
| 2

2712 | & sc_w)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
put_global_atts_.f:2716:64:

2695 | & 1, theta_s)
| 2

2716 | & Cs_w)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
put_global_atts_.f:2719:63:

2695 | & 1, theta_s)
| 2

2719 | ierr=nf_put_att_double(ncid,nf_global,‘s_rho’,nf_ftype,N,sc_r)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
put_global_atts_.f:2722:64:

2695 | & 1, theta_s)
| 2

2722 | ierr=nf_put_att_double(ncid,nf_global,‘Cs_rho’,nf_ftype,N,Cs_r)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
put_global_atts_.f:2737:64:

2695 | & 1, theta_s)
| 2

2737 | ierr=nf_put_att_double(ncid,nf_global,‘tnu4’, nf_ftype, 1,tnu4)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
put_global_atts_.f:2749:61:

2695 | & 1, theta_s)
| 2

2749 | & Akt_bak)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)

def_grid_3d_.f:2449:47:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2449 | ierr=nf_def_var (ncid, ‘h’, nf_ftype, 2, r2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2459:46:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2459 | ierr=nf_def_var (ncid,‘f’, nf_ftype, 2, r2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2469:48:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2469 | ierr=nf_def_var (ncid, ‘pm’, nf_ftype, 2, r2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2478:48:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2478 | ierr=nf_def_var (ncid, ‘pn’, nf_ftype, 2, r2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2487:53:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2487 | ierr=nf_def_var (ncid, ‘lon_rho’, nf_ftype, 2, r2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2494:53:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2494 | ierr=nf_def_var (ncid, ‘lat_rho’, nf_ftype, 2, r2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2502:51:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2502 | ierr=nf_def_var (ncid, ‘lon_u’, nf_ftype, 2, u2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2510:51:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2510 | ierr=nf_def_var (ncid, ‘lat_u’, nf_ftype, 2, u2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2519:51:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2519 | ierr=nf_def_var (ncid, ‘lon_v’, nf_ftype, 2, v2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2527:51:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2527 | ierr=nf_def_var (ncid, ‘lat_v’, nf_ftype, 2, v2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2536:51:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2536 | ierr=nf_def_var (ncid, ‘angle’, nf_ftype, 2, r2dgrd,varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
def_grid_3d_.f:2543:54:

2361 | ierr=nf_def_var (ncid, ‘spherical’, nf_char, 0, 0, varid)
| 2

2543 | ierr=nf_def_var (ncid, ‘mask_rho’, nf_ftype, 2, r2dgrd, varid)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)

def_his_.f:6251:48:

6244 | ierr=nf_def_var (ncid, ‘time_step’, nf_int, 2, auxil,
| 2

6251 | & NF_DOUBLE, 1, timedim, avgTime)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
def_his_.f:6267:48:

6244 | ierr=nf_def_var (ncid, ‘time_step’, nf_int, 2, auxil,
| 2

6267 | & NF_DOUBLE, 1, timedim, avgTime2)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
def_his_.f:2686:48:

2686 | & NF_DOUBLE, 1, timedim, hisTime)
| 1

6244 | ierr=nf_def_var (ncid, ‘time_step’, nf_int, 2, auxil,
| 2
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
def_his_.f:2701:48:

2701 | & NF_DOUBLE, 1, timedim, hisTime2)
| 1

6244 | ierr=nf_def_var (ncid, ‘time_step’, nf_int, 2, auxil,
| 2
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)

def_rst_.f:2629:50:

2622 | ierr=nf_def_var (ncid, ‘time_step’, nf_int, 2, auxil,
| 2

2629 | & NF_DOUBLE, 1, timedim, rstTime)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
def_rst_.f:2644:50:

2622 | ierr=nf_def_var (ncid, ‘time_step’, nf_int, 2, auxil,
| 2

2644 | & NF_DOUBLE, 1, timedim, rstTime2)
| 1
Warning: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)

WARNING : The dimension of the character blk_vname
is upper than 200. You must change
the dimension of carray2
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 163. Replace 200 with 350.
WARNING : The dimension of the character bulkfilename
is upper than 200. You must change
the dimension of carray1
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 162. Replace 200 with 350.
WARNING : The dimension of the character blk_vname
is upper than 200. You must change
the dimension of carray2
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 163. Replace 200 with 350.
WARNING : The dimension of the character blk_vname
is upper than 200. You must change
the dimension of carray2
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 163. Replace 200 with 350.
WARNING : The dimension of the character bulkfilename
is upper than 200. You must change
the dimension of carray1
in the file AGRIF/AGRIF_FILES/modtypes.F90
line 162. Replace 200 with 350.
MessPass2D_.f:1725:15:

1723 | do jpts=1,Npts
| 2
1724 | do i=imin,imax
1725 | A(i,jpts-Npts)=ibuf_revS(i-imin+(jpts-1)*ishft)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1734:15:

1732 | do jpts=1,Npts
| 2
1733 | do i=imin,imax
1734 | A(i,jpts-Npts)=A(i,jpts)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1765:22:

1763 | do jpts=1,Npts
| 2
1764 | do ipts=1,Npts
1765 | A(ipts-Npts,jpts-Npts)=buf_rev1(ipts+Npts*(jpts-1))
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1765:12:

1764 | do ipts=1,Npts
| 2
1765 | A(ipts-Npts,jpts-Npts)=buf_rev1(ipts+Npts*(jpts-1))
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1775:23:

1773 | do jpts=1,Npts
| 2
1774 | do ipts=1,Npts
1775 | A(ipts-Npts,jpts-Npts)=A(ipts,jpts)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1775:13:

1774 | do ipts=1,Npts
| 2
1775 | A(ipts-Npts,jpts-Npts)=A(ipts,jpts)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1807:25:

1805 | do jpts=1,Npts
| 2
1806 | do ipts=1,Npts
1807 | A(Lmmpi+ipts,jpts-Npts)=buf_rev3(ipts+Npts*(jpts-1))
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1817:25:

1815 | do jpts=1,Npts
| 2
1816 | do ipts=1,Npts
1817 | A(Lmmpi+ipts,jpts-Npts)=A(Lmmpi+ipts-Npts,jpts)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1828:14:

1827 | do ipts=1,Npts
| 2
1828 | A(ipts-Npts,Mmmpi+jpts)=buf_rev4(ipts+Npts*(jpts-1))
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass2D_.f:1838:14:

1837 | do ipts=1,Npts
| 2
1838 | A(ipts-Npts,Mmmpi+jpts)=A(ipts,Mmmpi+jpts-NPts)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)

MessPass3D_.f:1828:18:

1826 | do jpts=1,Npts
| 2
1827 | do i=imin,imax
1828 | A(i,jpts-Npts,k)=ibuf_revS_3D(k+nmax*(i-imin+(jpts-1)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1873:26:

1871 | do jpts=1,Npts
| 2
1872 | do ipts=1,Npts
1873 | A(ipts-Npts,jpts-Npts,k)=
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1873:16:

1872 | do ipts=1,Npts
| 2
1873 | A(ipts-Npts,jpts-Npts,k)=
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1886:26:

1884 | do jpts=1,Npts
| 2
1885 | do ipts=1,Npts
1886 | A(ipts-Npts,jpts-Npts,k)=
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1886:16:

1885 | do ipts=1,Npts
| 2
1886 | A(ipts-Npts,jpts-Npts,k)=
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1923:27:

1921 | do jpts=1,Npts
| 2
1922 | do ipts=1,Npts
1923 | A(Lmmpi+ipts,jpts-Npts,k)=
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1936:28:

1934 | do jpts=1,Npts
| 2
1935 | do ipts=1,Npts
1936 | A(Lmmpi+ipts,jpts-Npts,k)=
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1948:16:

1947 | do ipts=1,Npts
| 2
1948 | A(ipts-Npts,Mmmpi+jpts,k)=
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)
MessPass3D_.f:1961:16:

1960 | do ipts=1,Npts
| 2
1961 | A(ipts-Npts,Mmmpi+jpts,k)=A(ipts,Mmmpi+jpts-Npts,k)
| 1
Warning: Array reference at (1) out of bounds (-2 < -1) in loop beginning at (2)