diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index c7f998073b949330d2373d35e8062d6b5b0af8bd..cd9f74ac16fba58ff9cc3490cf07885dd3743f45 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -579,9 +579,9 @@ IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_EOL_ADR) CALL POSNAM( TPEXSEGFILE, 'NAM_EOL_ALM', GFOUND ) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_EOL_ALM) CALL POSNAM( TPEXSEGFILE, 'NAM_PROFILERN', GFOUND ) -IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PROFILERn) +IF (GFOUND) CALL READ_PROFILERN_NML() CALL POSNAM( TPEXSEGFILE, 'NAM_STATIONN', GFOUND ) -IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_STATIONn) +IF (GFOUND) CALL READ_STATIONN_NML() CALL POSNAM( TPEXSEGFILE, 'NAM_FIREN', GFOUND ) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_FIREn) ! @@ -3109,4 +3109,21 @@ WRITE(UNIT=ILUOUT,FMT='(/)') ! !------------------------------------------------------------------------------- ! +CONTAINS + SUBROUTINE READ_PROFILERN_NML() + ! This intermediate subroutine is necessary to work around a bug in the gfortran compiler + ! (versions > 13: at least 14.1.0 and 14.2.0) + USE MODN_PROFILER_n + + READ(UNIT=ILUSEG,NML=NAM_PROFILERn) + END SUBROUTINE READ_PROFILERN_NML + + SUBROUTINE READ_STATIONN_NML() + ! This intermediate subroutine is necessary to work around a bug in the gfortran compiler + ! (versions > 13: at least 14.1.0 and 14.2.0) + USE MODN_STATION_n + + READ(UNIT=ILUSEG,NML=NAM_STATIONn) + END SUBROUTINE READ_STATIONN_NML + END SUBROUTINE READ_EXSEG_n diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90 index 207db65bb7679bc719d8779734a3b128e62259b5..f03405a2493b187391c63f3b9f8e52e4dc7f41af 100644 --- a/src/MNH/write_desfmn.f90 +++ b/src/MNH/write_desfmn.f90 @@ -404,10 +404,10 @@ IF(LBLOWSNOW) WRITE(UNIT=ILUSEG,NML=NAM_BLOWSNOWn) IF(LBLOWSNOW) WRITE(UNIT=ILUSEG,NML=NAM_BLOWSNOW) ! CALL INIT_NAM_PROFILERn -IF(LPROFILER) WRITE(UNIT=ILUSEG,NML=NAM_PROFILERn) +IF(LPROFILER) CALL WRITE_PROFILERN_NML() ! CALL INIT_NAM_STATIONn -IF(LSTATION) WRITE(UNIT=ILUSEG,NML=NAM_STATIONn) +IF(LSTATION) CALL WRITE_STATIONN_NML() ! IF(LDUST) WRITE(UNIT=ILUSEG,NML=NAM_DUST) IF(LSALT) WRITE(UNIT=ILUSEG,NML=NAM_SALT) @@ -723,4 +723,21 @@ ENDIF CALL UPDATE_NAM_DYNn !------------------------------------------------------------------------------ ! +CONTAINS + SUBROUTINE WRITE_PROFILERN_NML() + ! This intermediate subroutine is necessary to work around a bug in the gfortran compiler + ! (versions > 13: at least 14.1.0 and 14.2.0) + USE MODN_PROFILER_n + + WRITE(UNIT=ILUSEG,NML=NAM_PROFILERn) + END SUBROUTINE WRITE_PROFILERN_NML + + SUBROUTINE WRITE_STATIONN_NML() + ! This intermediate subroutine is necessary to work around a bug in the gfortran compiler + ! (versions > 13: at least 14.1.0 and 14.2.0) + USE MODN_STATION_n + + WRITE(UNIT=ILUSEG,NML=NAM_STATIONn) + END SUBROUTINE WRITE_STATIONN_NML + END SUBROUTINE WRITE_DESFM_n