diff --git a/build/with_fcm/arch/arch-MIMPIIFC1805.EPONA.SNG.env b/build/with_fcm/arch/arch-MIMPIIFC1805.EPONA.SNG.env new file mode 100644 index 0000000000000000000000000000000000000000..8fdefeb29c0d0d32e56cf398c1174231fb3729dd --- /dev/null +++ b/build/with_fcm/arch/arch-MIMPIIFC1805.EPONA.SNG.env @@ -0,0 +1 @@ +module load perl/5.30.3 diff --git a/build/with_fcm/arch/arch-MIMPIIFC1805.EPONA.SNG.fcm b/build/with_fcm/arch/arch-MIMPIIFC1805.EPONA.SNG.fcm new file mode 100644 index 0000000000000000000000000000000000000000..99a9ef109ec7e56adfec3be75e4bb3c42d634c78 --- /dev/null +++ b/build/with_fcm/arch/arch-MIMPIIFC1805.EPONA.SNG.fcm @@ -0,0 +1,25 @@ +# Compilation +$FCOMPILER = /home/gmap/mrpm/khatib/public/bin/mimpifc-18.0.5.274 +$BASE_FFLAGS = -c -convert big_endian -assume byterecl -align array64byte,all -traceback -fpic -qopenmp -qopenmp-threadprivate compat -fp-model source -qopt-report=5 -qopt-report-phase=vec -ftz -diag-disable=remark,cpu-dispatch +$PROD_FFLAGS = -g -O2 -march=core-avx2 -finline-functions -finline-limit=500 -Winline -qopt-prefetch=4 -fast-transcendentals -fimf-use-svml -no-fma +$DEV_FFLAGS = -g -O0 +$DEBUG_FFLAGS = -g -O0 -check bounds -init=arrays,snan -fp-stack-check -ftrapuv -fpe0 -fp-speculation=strict -check uninit -check pointers +$CCOMPILER = /home/gmap/mrpm/khatib/public/bin/mimpicc-18.0.5.274 +$BASE_CFLAGS = -c -qopenmp -qopt-report=2 -qopt-report-phase=vec -fpic -malign-double -ftz -fp-model precise -diag-disable=remark,cpu-dispatch +$PROD_CFLAGS = -g -O2 -march=core-avx2 +$DEV_CFLAGS = +$DEBUG_CFLAGS = +$OMP_FFLAGS = + +# Preprocessor +$FPP_FLAGS = LINUX LITTLE_ENDIAN LITTLE ADDRESS64 GRIB_API_1 REPRO48 PARKIND1_SINGLE +$CPP_FLAGS = LINUX LITTLE_ENDIAN LITTLE GRIB_API_1 PARKIND1_SINGLE + +# Linker +$LINK = /home/gmap/mrpm/khatib/public/bin/mimpifc-18.0.5.274 +$BASE_LD = -v -fp-stack-check -qopenmp -qopenmp-threadprivate compat -shared-intel -lrt -lstdc++ +$OMP_LD = +$LD_EXE_TO_SHARED = -shared + +# Other +$AR = /usr/bin/ar diff --git a/build/with_fcm/arch/arch-MPIGFORTRAN920SNG.GMAP.env b/build/with_fcm/arch/arch-MPIGFORTRAN920SNG.GMAP.env new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/build/with_fcm/arch/arch-MPIGFORTRAN920SNG.GMAP.fcm b/build/with_fcm/arch/arch-MPIGFORTRAN920SNG.GMAP.fcm new file mode 100644 index 0000000000000000000000000000000000000000..561a854321ab13c7fb0993f4367fe6252bc95653 --- /dev/null +++ b/build/with_fcm/arch/arch-MPIGFORTRAN920SNG.GMAP.fcm @@ -0,0 +1,25 @@ +# Compilation +$FCOMPILER = mpigfortran.9.2.0 +$BASE_FFLAGS = -c -fconvert=swap -fno-second-underscore -fbacktrace -m64 -fopenmp -ffree-line-length-none -fno-sign-zero -fpic -fno-range-check -g -pipe +$PROD_FFLAGS = -g -O2 +$DEV_FFLAGS = -g -O0 +$DEBUG_FFLAGS = -g -O0 -fbounds-check -finit-real=snan -ffpe-trap=invalid,zero,overflow +$CCOMPILER = mpigcc.9.2.0 +$BASE_CFLAGS = -c -m64 -fopenmp -fpic -g -pipe +$PROD_CFLAGS = -g -O2 +$DEV_CFLAGS = +$DEBUG_CFLAGS = +$OMP_FFLAGS = + +# Preprocessor +$FPP_FLAGS = LINUX LITTLE_ENDIAN LITTLE REPRO48 PARKIND1_SINGLE +$CPP_FLAGS = LINUX LITTLE_ENDIAN LITTLE PARKIND1_SINGLE + +# Linker +$LINK = mpigfortran.9.2.0 +$BASE_LD = -fopenmp -ffast-math -ldl -lrt +$OMP_LD = +$LD_EXE_TO_SHARED = -shared + +# Other +$AR = ar diff --git a/src/common/micro/mode_ice4_stepping.F90 b/src/common/micro/mode_ice4_stepping.F90 index bef9482912011abfdadf6af62327a6c3395c891d..a2b9e46c990826a4b141766f9a782091da51a7ba 100644 --- a/src/common/micro/mode_ice4_stepping.F90 +++ b/src/common/micro/mode_ice4_stepping.F90 @@ -312,6 +312,7 @@ DO WHILE(ANY(ZTIME(1:KMICRO)<PTSTEP)) ! Loop to *really* compute tendencies DO JL=1, KMICRO IF (ZA(JL, JV) < -1.E-20 .AND. PVART(JL, JV) > ICED%XRTMIN(JV)) THEN ZMAXTIME(JL)=MIN(ZMAXTIME(JL), -(ZB(JL, JV)+PVART(JL, JV))/ZA(JL, JV)) + ZMAXTIME(JL)=MAX(ZMAXTIME(JL), CST%XMNH_TINY) !to prevent rounding errors ENDIF ENDDO ENDDO diff --git a/src/testprogs/ice_adjust/main_ice_adjust.F90 b/src/testprogs/ice_adjust/main_ice_adjust.F90 index a9a655ef39d6bd896e3d9d0bac35a3ca2987499c..77b85dac38ad15c9232786e0581fa61edadccfb6 100644 --- a/src/testprogs/ice_adjust/main_ice_adjust.F90 +++ b/src/testprogs/ice_adjust/main_ice_adjust.F90 @@ -8,8 +8,7 @@ USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t USE STACK_MOD USE OMP_LIB -USE YOMHOOK, ONLY : LHOOK, DR_HOOK -USE PARKIND1, ONLY : JPRB, JPIM +USE YOMHOOK, ONLY : LHOOK, DR_HOOK, JPHOOK IMPLICIT NONE @@ -73,7 +72,7 @@ REAL(KIND=8) :: TSC, TEC, TSD, TED, ZTC, ZTD INTEGER :: ITIME, NTIME INTEGER :: IRANK, ISIZE LOGICAL :: LLVERBOSE, LLSTAT, LLBIND -REAL (KIND=JPRB) :: ZHOOK_HANDLE +REAL (KIND=JPHOOK) :: ZHOOK_HANDLE CALL INITOPTIONS () NGPBLKS = 296 diff --git a/src/testprogs/rain_ice/main_rain_ice.F90 b/src/testprogs/rain_ice/main_rain_ice.F90 index d2f53a2727643d60f91a8455ff395449fcdf28be..4a60553414281b5806ddadb10259b3900c629eb1 100644 --- a/src/testprogs/rain_ice/main_rain_ice.F90 +++ b/src/testprogs/rain_ice/main_rain_ice.F90 @@ -8,8 +8,7 @@ USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t USE STACK_MOD USE OMP_LIB -USE YOMHOOK, ONLY : LHOOK, DR_HOOK -USE PARKIND1, ONLY : JPRB, JPIM +USE YOMHOOK, ONLY : LHOOK, DR_HOOK, JPHOOK IMPLICIT NONE @@ -67,7 +66,7 @@ REAL(KIND=8) :: TSC, TEC, TSD, TED, ZTC, ZTD INTEGER :: ITIME, NTIME INTEGER :: IRANK, ISIZE LOGICAL :: LLVERBOSE, LLSTAT, LLBIND -REAL (KIND=JPRB) :: ZHOOK_HANDLE +REAL (KIND=JPHOOK) :: ZHOOK_HANDLE CHARACTER(LEN=32) :: CLTEXT CALL INITOPTIONS () diff --git a/src/testprogs/rain_ice_old/main_rain_ice_old.F90 b/src/testprogs/rain_ice_old/main_rain_ice_old.F90 index 8de4c7cea04b98dc28ec7588e6e54420cd85d49c..55dc41c639460b2c05d8222bf9ad15f3bc0b4391 100644 --- a/src/testprogs/rain_ice_old/main_rain_ice_old.F90 +++ b/src/testprogs/rain_ice_old/main_rain_ice_old.F90 @@ -5,8 +5,7 @@ program main_rain_ice_old use modi_rain_ice_old - use yomhook, only: lhook, dr_hook - use parkind1, only: jprb, jpim + use yomhook, only: lhook, dr_hook, jphook use modd_dimphyex, only: dimphyex_t use modd_cst, only: cst @@ -84,6 +83,8 @@ program main_rain_ice_old integer :: i, j, jrr + real(kind=jphook) :: zhook_handle + real(8) :: time_start_real, time_end_real real(8) :: time_start_cpu, time_end_cpu @@ -235,6 +236,8 @@ ENDDO call system_clock(count=counter, count_rate=c_rate) time_start_real = real(counter,8)/c_rate + if(lhook) call dr_hook ('MAIN',0,zhook_handle) + do i = 1, n_gp_blocks isize = count(llmicro(:,:,i)) @@ -272,6 +275,8 @@ ENDDO enddo + if(lhook) call dr_hook ('MAIN',1,zhook_handle) + call cpu_time(time_end_cpu) call system_clock(count=counter, count_rate=c_rate) time_end_real = real(counter,8)/c_rate diff --git a/src/testprogs/shallow/main_shallow.F90 b/src/testprogs/shallow/main_shallow.F90 index f9b313141e5f47b349d83808a73331e627d373fd..4273072ef361cb3b8579fa9c5f0343c9ce76b9bd 100644 --- a/src/testprogs/shallow/main_shallow.F90 +++ b/src/testprogs/shallow/main_shallow.F90 @@ -8,8 +8,7 @@ USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t USE STACK_MOD USE OMP_LIB -USE YOMHOOK, ONLY : LHOOK, DR_HOOK -USE PARKIND1, ONLY : JPRB, JPIM +USE YOMHOOK, ONLY : LHOOK, DR_HOOK, JPHOOK IMPLICIT NONE @@ -119,7 +118,7 @@ REAL(KIND=8) :: TSC, TEC, TSD, TED, ZTC, ZTD INTEGER :: ITIME, NTIME INTEGER :: IRANK, ISIZE LOGICAL :: LLVERBOSE, LLSTAT, LLBIND -REAL (KIND=JPRB) :: ZHOOK_HANDLE +REAL (KIND=JPHOOK) :: ZHOOK_HANDLE CHARACTER(LEN=32) :: CLTEXT CALL INITOPTIONS () diff --git a/src/testprogs/turb_mnh/main_turb.F90 b/src/testprogs/turb_mnh/main_turb.F90 index 4dfdf8725cd9a370fbd1f7dd2c3c7cacfccbfcbc..423b7b4199c87e0ee3d1cb2f0c8ece8e6c440290 100644 --- a/src/testprogs/turb_mnh/main_turb.F90 +++ b/src/testprogs/turb_mnh/main_turb.F90 @@ -8,8 +8,7 @@ USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t USE STACK_MOD USE OMP_LIB -USE YOMHOOK, ONLY : LHOOK, DR_HOOK -USE PARKIND1, ONLY : JPRB, JPIM +USE YOMHOOK, ONLY : LHOOK, DR_HOOK, JPHOOK USE MODD_LES, ONLY: TLES_t IMPLICIT NONE @@ -131,7 +130,7 @@ REAL(KIND=8) :: TSC, TEC, TSD, TED, ZTC, ZTD INTEGER :: ITIME, NTIME INTEGER :: IRANK, ISIZE LOGICAL :: LLVERBOSE, LLSTAT, LLBIND -REAL (KIND=JPRB) :: ZHOOK_HANDLE +REAL (KIND=JPHOOK) :: ZHOOK_HANDLE CHARACTER(LEN=32) :: CLTEXT CALL INITOPTIONS ()