From 846ca2a8b11581f7bc54286d9addd7f33f65fb3c Mon Sep 17 00:00:00 2001 From: Ming Chen Date: Thu, 11 Dec 2025 20:33:51 +0000 Subject: [PATCH 1/5] resolve Intel remark #7712 in w3adatmd --- model/src/w3adatmd.F90 | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/model/src/w3adatmd.F90 b/model/src/w3adatmd.F90 index fc40222a81..d4c5f0e285 100644 --- a/model/src/w3adatmd.F90 +++ b/model/src/w3adatmd.F90 @@ -757,7 +757,6 @@ SUBROUTINE W3NAUX ( NDSE, NDST ) !/ ------------------------------------------------------------------- / USE W3GDATMD, ONLY: NGRIDS USE W3SERVMD, ONLY: EXTCDE - USE W3ODATMD, ONLY: IAPROC #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif @@ -926,11 +925,9 @@ SUBROUTINE W3DIMA ( IMOD, NDSE, NDST, D_ONLY ) ! !/ ------------------------------------------------------------------- / USE CONSTANTS, ONLY : LPDLIB - USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG, NK, NX, NY, NSEA, & - NSEAL, NSPEC, NTH, E3DF, P2MSF, US3DF, & - USSPF, GTYPE, UNGTYPE - USE W3ODATMD, ONLY: IAPROC, NAPROC, NTPROC, NAPFLD, & - NOSWLL, NOEXTR, UNDEF, FLOGRD, FLOGR2 + USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG, NK, NX, NY, NSEA, & + NSEAL, NSPEC, NTH, E3DF, P2MSF, US3DF, USSPF, GTYPE, UNGTYPE + USE W3ODATMD, ONLY: IAPROC, NAPROC, NOSWLL, NOEXTR, UNDEF USE W3IDATMD, ONLY: FLCUR, FLWIND, FLTAUA, FLRHOA USE W3SERVMD, ONLY: EXTCDE #ifdef W3_S @@ -947,7 +944,7 @@ SUBROUTINE W3DIMA ( IMOD, NDSE, NDST, D_ONLY ) !/ ------------------------------------------------------------------- / !/ Local parameters !/ - INTEGER :: JGRID, NXXX, NSEAL_tmp + INTEGER :: JGRID, NXXX integer :: memunit #ifdef W3_S INTEGER, SAVE :: IENT = 0 @@ -1543,12 +1540,8 @@ SUBROUTINE W3XDMA ( IMOD, NDSE, NDST, OUTFLAGS ) ! 10. Source code : ! !/ ------------------------------------------------------------------- / - USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG, NK, NX, NY, NSEA, & - NSEAL, NSPEC, NTH, E3DF, P2MSF, US3DF, & - USSPF, GTYPE, UNGTYPE - USE W3ODATMD, ONLY: IAPROC, NAPROC, NTPROC, NAPFLD, & - NOSWLL, NOEXTR, UNDEF, FLOGRD, FLOGR2, & - NOGRP, NGRPP + USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG, NK, E3DF, P2MSF, UNGTYPE + USE W3ODATMD, ONLY: IAPROC, NAPROC, NOSWLL, NOEXTR, UNDEF, NOGRP, NGRPP USE W3SERVMD, ONLY: EXTCDE #ifdef W3_S USE W3SERVMD, ONLY: STRACE @@ -2495,9 +2488,7 @@ SUBROUTINE W3DMNL ( IMOD, NDSE, NDST, NSP, NSPX ) ! 10. Source code : ! !/ ------------------------------------------------------------------- / - USE W3GDATMD, ONLY: NGRIDS, IGRID, NK, NX, NY, NSEA, NSEAL, & - NSPEC, NTH, GTYPE, UNGTYPE - USE W3ODATMD, ONLY: NAPROC + USE W3GDATMD, ONLY: NGRIDS, UNGTYPE USE W3SERVMD, ONLY: EXTCDE #ifdef W3_S USE W3SERVMD, ONLY: STRACE @@ -2711,7 +2702,7 @@ SUBROUTINE W3SETA ( IMOD, NDSE, NDST ) !/ ------------------------------------------------------------------- / ! USE W3IDATMD, ONLY: INPUTS - USE W3GDATMD, ONLY: E3DF, P2MSF, US3DF, USSPF, GTYPE, UNGTYPE + USE W3GDATMD, ONLY: GTYPE, UNGTYPE ! USE W3SERVMD, ONLY: EXTCDE #ifdef W3_S @@ -3139,8 +3130,7 @@ SUBROUTINE W3XETA ( IMOD, NDSE, NDST ) ! !/ ------------------------------------------------------------------- / ! - USE W3IDATMD, ONLY: INPUTS - USE W3GDATMD, ONLY: E3DF, P2MSF, US3DF, USSPF, GTYPE, UNGTYPE + USE W3GDATMD, ONLY: UNGTYPE ! USE W3SERVMD, ONLY: EXTCDE #ifdef W3_S From 6dc13d8252224b672be1998f798985c005a7d07a Mon Sep 17 00:00:00 2001 From: Ming Chen Date: Thu, 11 Dec 2025 20:34:22 +0000 Subject: [PATCH 2/5] resolve Intel remark #7712 in w3gdatmd --- model/src/w3gdatmd.F90 | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/model/src/w3gdatmd.F90 b/model/src/w3gdatmd.F90 index 4f5aad1716..a43a4cd822 100644 --- a/model/src/w3gdatmd.F90 +++ b/model/src/w3gdatmd.F90 @@ -2970,7 +2970,10 @@ SUBROUTINE W3GNTX ( IMOD, NDSE, NDST ) LOGICAL, PARAMETER :: SPHERE = .FALSE. INTEGER :: PRANGE(2), QRANGE(2) INTEGER :: LBI(2), UBI(2), LBO(2), UBO(2), ISTAT +#if defined(TEST_W3GDATMD) || defined(TEST_W3GDATMD_W3GNTX) REAL , ALLOCATABLE :: COSA(:,:) +#endif + #ifdef W3_S INTEGER, SAVE :: IENT = 0 CALL STRACE (IENT, 'W3GNTX') @@ -3189,7 +3192,6 @@ SUBROUTINE W3DIMUG ( IMOD, MTRI, MX, COUNTOTA, NNZ, NDSE, NDST ) !/ Parameter list !/ INTEGER, INTENT(IN) :: IMOD, MTRI, MX, COUNTOTA, NNZ, NDSE, NDST - INTEGER :: IAPROC = 1 !/ !/ ------------------------------------------------------------------- / !/ Local parameters @@ -3361,15 +3363,17 @@ SUBROUTINE W3SETREF !/ !/ ------------------------------------------------------------------- / !/ - INTEGER :: ISEA, IX, IY, IXY, IXN, IXP, IYN, IYP - INTEGER :: J, K, NEIGH1(0:7) - INTEGER :: ILEV, NLEV + INTEGER :: IX, IY + INTEGER :: NEIGH1(0:7) #ifdef W3_S INTEGER, SAVE :: IENT = 0 #endif +#ifdef W3_REF1 + REAL :: COSAVG, SINAVG, THAVG, CLAT + INTEGER :: J, K +#endif - REAL :: TRIX(NY*NX), TRIY(NY*NX), DX, DY, & - COSAVG, SINAVG, THAVG, ANGLES(0:7), CLAT + REAL :: ANGLES(0:7) !/ !/ ------------------------------------------------------------------- / !/ From a192da396898928d1d9df30c4f36679aeacd722b Mon Sep 17 00:00:00 2001 From: Ming Chen Date: Tue, 16 Dec 2025 16:16:46 -0600 Subject: [PATCH 3/5] resolve Intel remark #7712 in w3iogomd --- model/src/w3iogomd.F90 | 57 ++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/model/src/w3iogomd.F90 b/model/src/w3iogomd.F90 index c4c78191ed..3422b6bf52 100644 --- a/model/src/w3iogomd.F90 +++ b/model/src/w3iogomd.F90 @@ -401,7 +401,6 @@ SUBROUTINE W3READFLGRD ( NDSI , NDSO, NDSS, NDSEN, COMSTR, & ! !/ ------------------------------------------------------------------- / USE CONSTANTS - USE W3GDATMD, ONLY: US3DF, USSPF USE W3ODATMD, ONLY: NOGRP, NGRPP, NOGE, IDOUT USE W3SERVMD, ONLY: NEXTLN, STRSPLIT, STR_TO_UPPER #ifdef W3_S @@ -657,7 +656,6 @@ SUBROUTINE W3FLGRDFLAG ( NDSO, NDSS, NDSEN, FLDOUT, & USE CONSTANTS USE W3ODATMD, ONLY: NOGRP, NGRPP, IDOUT USE W3SERVMD, ONLY: STRSPLIT, STR_TO_UPPER - USE W3GDATMD, ONLY: US3DF, USSPF #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif @@ -676,7 +674,7 @@ SUBROUTINE W3FLGRDFLAG ( NDSO, NDSS, NDSEN, FLDOUT, & !/ ------------------------------------------------------------------- / !/ Local parameters !/ - INTEGER :: I, IFI, IFJ, IOUT + INTEGER :: IFI, IFJ, IOUT #ifdef W3_S INTEGER, SAVE :: IENT = 0 #endif @@ -1300,24 +1298,23 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 ) !/ ------------------------------------------------------------------- / USE CONSTANTS USE W3GDATMD - USE W3WDATMD, ONLY: UST, FPIS USE W3ADATMD, ONLY: CG, WN, DW USE W3ADATMD, ONLY: HS, WLM, T02, T0M1, T01, FP0, & THM, THS, THP0 USE W3ADATMD, ONLY: ABA, ABD, UBA, UBD, FCUT, SXX, & SYY, SXY, PHS, PTP, PLP, PDIR, PSI, PWS, & - PWST, PNR, USERO, TUSX, TUSY, PRMS, TPMS, & + PWST, PNR, TUSX, TUSY, PRMS, TPMS, & USSX, USSY, MSSX, MSSY, MSSD, MSCX, MSCY, & - MSCD, CHARN, & - BHD, CGE, P2SMS, US3D, EF, TH1M, STH1M, & + MSCD, BHD, CGE, P2SMS, EF, TH1M, STH1M, & TH2M, STH2M, HSIG, STMAXE, STMAXD, & - HCMAXE, HMAXE, HCMAXD, HMAXD, USSP, QP, PQP,& + HCMAXE, HMAXE, HCMAXD, HMAXD, QP, PQP, & PTHP0, PPE, PGW, PSW, PTM1, PT1, PT2, PEP, & WBT, QKK - USE W3ODATMD, ONLY: NDST, UNDEF, IAPROC, NAPROC, NAPFLD, & - ICPRT, DTPRT, WSCUT, NOSWLL, FLOGRD, FLOGR2,& - NOGRP, NGRPP - USE W3ADATMD, ONLY: NSEALM + USE W3ODATMD, ONLY: UNDEF, ICPRT, DTPRT, WSCUT, & + NOSWLL, FLOGRD, FLOGR2, NOGRP, NGRPP +#ifdef W3_T + USE W3ODATMD, ONLY: NDST +#endif #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif @@ -1335,13 +1332,11 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 ) !/ Local parameters !/ INTEGER :: IK, ITH, JSEA, ISEA, IX, IY, & - IKP0(NSEAL), NKH(NSEAL), & - I, J, LKMS, HKMS, ITL + IKP0(NSEAL), NKH(NSEAL), I, J, ITL #ifdef W3_S INTEGER, SAVE :: IENT = 0 #endif REAL :: FXPMC, FACTOR, FACTOR2, EBAND, FKD, & - AABS, UABS, & XL, XH, XL2, XH2, EL, EH, DENOM, KD, & M1, M2, MA, MB, MC, STEX, STEY, STED REAL :: ET(NSEAL), EWN(NSEAL), ETR(NSEAL), & @@ -1367,8 +1362,8 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 ) T02P(NSEAL), NV(NSEAL), NS(NSEAL), & NB(NSEAL), MODE(NSEAL), & MU(NSEAL), NI(NSEAL), STMAXEL(NSEAL),& - PHI(21,NSEAL),PHIST(NSEAL), & - EBC(NK,NSEAL), ABP(NSEAL), & + PHI(21,NSEAL),PHIST(NSEAL), & + EBC(NK,NSEAL), & STMAXDL(NSEAL), TLPHI(NSEAL), & WL02X(NSEAL), WL02Y(NSEAL), & ALPXT(NSEAL), ALPYT(NSEAL), & @@ -2518,7 +2513,7 @@ SUBROUTINE W3IOGO ( INXOUT, NDSOG, IOTST, IMOD & USE W3ADATMD, ONLY: W3SETA, W3DIMA, W3XETA USE W3ODATMD, ONLY: W3SETO !/ - USE W3WDATMD, ONLY: TIME, DINIT, WLV, ICE, ICEF, ICEH, BERG, & + USE W3WDATMD, ONLY: TIME, DINIT, WLV, ICE, BERG, & UST, USTDIR, ASF, RHOAIR USE W3ADATMD, ONLY: AINIT, DW, UA, UD, AS, CX, CY, WN, & TAUA, TAUADIR @@ -2537,18 +2532,23 @@ SUBROUTINE W3IOGO ( INXOUT, NDSOG, IOTST, IMOD & STMAXE, STMAXD, HMAXE, HCMAXE, HMAXD, HCMAXD,& USSP, TAUOCX, TAUOCY, QKK, SKEW, EMBIA1, EMBIA2 !/ - USE W3ODATMD, ONLY: NOGRP, NGRPP, IDOUT, UNDEF, NDST, NDSE, & + USE W3ODATMD, ONLY: NOGRP, NGRPP, UNDEF, NDST, NDSE, & FLOGRD, IPASS => IPASS1, WRITE => WRITE1, & FNMPRE, FNMGRD, NOSWLL, NOEXTR !/ USE W3SERVMD, ONLY: EXTCDE, EXTOPN, EXTIOF - USE W3ODATMD, only: IAPROC USE W3ODATMD, ONLY: OFILES +#ifdef W3_T + USE W3ODATMD, ONLY: IDOUT +#endif #ifdef W3_SETUP USE W3WDATMD, ONLY: ZETA_SETUP #endif #ifdef W3_S USE W3SERVMD, ONLY: STRACE +#endif +#ifdef W3_IS2 + USE W3WDATMD, ONLY: ICEF, ICEH #endif ! IMPLICIT NONE @@ -2569,14 +2569,12 @@ SUBROUTINE W3IOGO ( INXOUT, NDSOG, IOTST, IMOD & !/ Local parameters !/ INTEGER :: IGRD, IERR, I, J, IX, IY, MOGRP, & - MGRPP, ISEA, MOSWLL, IK, IFI, IFJ & - ,IFILOUT + MGRPP, ISEA, MOSWLL, IK, IFI, IFJ INTEGER, ALLOCATABLE :: MAPTMP(:,:) #ifdef W3_S INTEGER, SAVE :: IENT = 0 #endif - REAL :: AUX1(NSEA), AUX2(NSEA), & - AUX3(NSEA), AUX4(NSEA) + REAL :: AUX1(NSEA), AUX2(NSEA) #ifdef W3_SMC REAL :: UDARC #endif @@ -4191,12 +4189,11 @@ SUBROUTINE CALC_U3STOKES ( A , USS_SWITCH ) ! !/ ------------------------------------------------------------------- / USE CONSTANTS, ONLY: TPIINV, GRAV, TPI - USE W3GDATMD, ONLY: DDEN, DSII, XFR, SIG, NK, NTH, NSEAl, & + USE W3GDATMD, ONLY: DDEN, DSII, SIG, NK, NTH, NSEAl, & ECOS, ESIN, US3DF, USSPF, USSP_WN USE W3ADATMD, ONLY: CG, WN, DW - USE W3ADATMD, ONLY: USSX, USSY, US3D, USSP - USE W3ODATMD, ONLY: IAPROC, NAPROC - USE W3PARALL, ONLY: INIT_GET_ISEA + USE W3ADATMD, ONLY: US3D, USSP + USE W3PARALL, ONLY: INIT_GET_ISEA #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif @@ -4645,7 +4642,7 @@ SUBROUTINE SECONDHH(NKHF,FAC0,FAC1,FAC2,FAC3) ! V E ZAKHAROV(1967) !------------------------------------------------------------------- USE CONSTANTS, ONLY: GRAV, TPI - USE W3GDATMD, ONLY: NK, NTH, XFR, SIG, TH, DTH, ECOS, ESIN + USE W3GDATMD, ONLY: NTH, XFR, SIG, TH, DTH, ECOS, ESIN IMPLICIT NONE INTEGER, INTENT(IN) :: NKHF @@ -4930,7 +4927,7 @@ SUBROUTINE SKEWNESS(A) REAL(KIND=4) :: CONX, DELTA REAL(KIND=4) :: FH, DELF, XK1 - REAL(KIND=4) :: XPI, XPJ, XPK, XN, XFAC, CO1 + REAL(KIND=4) :: XPI, XPJ, XPK, XN, CO1 REAL(KIND=4), DIMENSION(:,:), ALLOCATABLE :: F2 REAL(KIND=4), DIMENSION(0:3,0:2,0:2) :: XMU, XLAMBDA REAL(KIND=4), DIMENSION(:) , ALLOCATABLE:: SIGHF, DFIMHF, FAK From 9b2445ef92a1b9df560f81fd22f386deb5668f02 Mon Sep 17 00:00:00 2001 From: Ming Chen Date: Thu, 18 Dec 2025 11:01:39 -0600 Subject: [PATCH 4/5] resolve Intel remark #7712 in w3iopomd.F90 --- model/src/w3iopomd.F90 | 63 +++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/model/src/w3iopomd.F90 b/model/src/w3iopomd.F90 index be7bcbff16..a4c1edb198 100644 --- a/model/src/w3iopomd.F90 +++ b/model/src/w3iopomd.F90 @@ -344,18 +344,15 @@ SUBROUTINE W3IOPP ( NPT, XPT, YPT, PNAMES, IMOD, MPI_COMM_IOPP ) !/ ------------------------------------------------------------------- / USE NETCDF USE W3GSRUMD, ONLY: W3GRMP - USE W3GDATMD, ONLY: NTH, NK, NSPEC, NX, NY, X0, Y0, SX, GSU,& - RLGTYPE, CLGTYPE, UNGTYPE, GTYPE, FLAGLL, & - ICLOSE,ICLOSE_NONE,ICLOSE_SMPL,ICLOSE_TRPL, & - MAPSTA, MAPFS, FILEXT, ZB, TRNX, TRNY - USE W3GDATMD, ONLY: TRIGP,MAXX, MAXY, DXYMAX + USE W3GDATMD, ONLY: GSU, RLGTYPE, CLGTYPE, UNGTYPE, GTYPE, FLAGLL, & + ICLOSE_NONE, ICLOSE_SMPL, ICLOSE_TRPL, MAPSTA, FILEXT #ifdef W3_RTD !! Use rotated N-Pole lat/lon and conversion sub. JGLi12Jun2012 - USE W3GDATMD, ONLY: PoLat, PoLon, FLAGUNR + USE W3GDATMD, ONLY: PoLat, PoLon, FLAGUNR, X0 USE W3SERVMD, ONLY: W3LLTOEQ #endif - USE W3ODATMD, ONLY: W3DMO2, FNMPRE - USE W3ODATMD, ONLY: NDSE, NDST, IAPROC, NAPERR, NAPOUT, SCREEN, & + USE W3ODATMD, ONLY: W3DMO2 + USE W3ODATMD, ONLY: NDSE, NDST, IAPROC, NAPERR, & NOPTS, PTLOC, PTNME, GRDID, IPTINT, PTIFAC USE W3SERVMD, ONLY: EXTOPN, EXTIOF #ifdef W3_S @@ -363,6 +360,10 @@ SUBROUTINE W3IOPP ( NPT, XPT, YPT, PNAMES, IMOD, MPI_COMM_IOPP ) #endif USE W3TRIAMD, ONLY: IS_IN_UNGRID USE W3GDATMD, ONLY: FILEXT +#ifdef W3_O7a + USE W3GDATMD, ONLY: NX, NY, ICLOSE, MAPFS, ZB, TRNX, TRNY + USE W3ODATMD, ONLY: NAPOUT, SCREEN +#endif ! #ifdef W3_MPI use mpi_f08 @@ -385,8 +386,7 @@ SUBROUTINE W3IOPP ( NPT, XPT, YPT, PNAMES, IMOD, MPI_COMM_IOPP ) !/ Local parameters !/ LOGICAL :: INGRID - INTEGER :: IPT, J, K - INTEGER :: IX1, IY1, IXS, IYS + INTEGER :: IPT, K #ifdef W3_S INTEGER, SAVE :: IENT = 0 #endif @@ -397,7 +397,7 @@ SUBROUTINE W3IOPP ( NPT, XPT, YPT, PNAMES, IMOD, MPI_COMM_IOPP ) INTEGER :: ITOUT ! Triangle index in unstructured grids #ifdef W3_O7a INTEGER :: IX0, IXN, IY0, IYN, NNX, & - KX, KY, JX, IIX, IX2, IY2, IS1 + KX, KY, JX, IIX, IX2, IY2, IS1, J, IX1, IY1 REAL :: RD1, RD2, RDTOT, ZBOX(4), DEPTH CHARACTER(LEN=1) :: SEA(5), LND(5), OUT(5) CHARACTER(LEN=9) :: PARTS @@ -954,8 +954,7 @@ SUBROUTINE W3IOPE ( A ) ! !/ ------------------------------------------------------------------- / USE CONSTANTS - USE W3GDATMD, ONLY: NK, NTH, SIG, NX, NY, NSEA, NSEAL, & - MAPSTA, MAPFS + USE W3GDATMD, ONLY: NK, NTH, SIG, NSEAL, MAPSTA, MAPFS #ifdef W3_RTD !! Use spectral rotation sub and angle. JGLi12Jun2012 USE W3GDATMD, ONLY: NSPEC, AnglD, FLAGUNR @@ -970,9 +969,8 @@ SUBROUTINE W3IOPE ( A ) #ifdef W3_FLX5 USE W3ADATMD, ONLY: TAUA, TAUADIR #endif - USE W3ODATMD, ONLY: NDST, NOPTS, IPTINT, PTIFAC, IL, IW, II, & - DPO, WAO, WDO, ASO, CAO, CDO, ICEO, ICEHO, & - ICEFO, SPCO, NAPROC + USE W3ODATMD, ONLY: NOPTS, IPTINT, PTIFAC, IL, IW, II, & + DPO, WAO, WDO, ASO, CAO, CDO, ICEO, ICEHO, ICEFO, SPCO #ifdef W3_FLX5 USE W3ODATMD, ONLY: TAUAO, TAUDO, DAIRO #endif @@ -988,6 +986,10 @@ SUBROUTINE W3IOPE ( A ) #endif #ifdef W3_T USE W3ARRYMD, ONLY: PRT2DS + USE W3ODATMD, ONLY: NDST +#endif +#ifdef W3_DIST + USE W3ODATMD, ONLY: NAPROC #endif ! #ifdef W3_MPI @@ -1003,8 +1005,7 @@ SUBROUTINE W3IOPE ( A ) !/ ------------------------------------------------------------------- / !/ Local parameters !/ - INTEGER :: I, IX1, IY1, IX(4), IY(4), J, IS(4), & - IM(4), IK, ITH, ISP + INTEGER :: I, IX(4), IY(4), J, IS(4), IM(4), IK, ITH, ISP #ifdef W3_MPI INTEGER :: IOFF, IERR_MPI type(MPI_STATUS) :: STAT(4*NOPTS) @@ -1020,6 +1021,7 @@ SUBROUTINE W3IOPE ( A ) #endif INTEGER :: JSEA, ISEA #ifdef W3_T + INTEGER :: IX1, IY1 REAL :: SPTEST(NK,NTH) #endif #ifdef W3_RTD @@ -1328,9 +1330,9 @@ SUBROUTINE W3IOPON_READ(IOTST, IMOD_IN, filename, ncerr, TOUT ) USE W3ODATMD, ONLY: W3DMO2 USE W3WDATMD, ONLY: TIME USE W3GDATMD, ONLY: NTH, NK, NSPEC, FILEXT - USE W3ODATMD, ONLY: NDST, NDSE, IPASS => IPASS2, NOPTS, IPTINT, & - IL, IW, II, PTLOC, PTIFAC, DPO, WAO, WDO, & - ASO, CAO, CDO, SPCO, PTNME, O2INIT, FNMPRE, FNMPNT, & + USE W3ODATMD, ONLY: NDSE, NDST, IPASS => IPASS2, NOPTS, & + IL, IW, II, PTLOC, DPO, WAO, WDO, & + ASO, CAO, CDO, SPCO, PTNME, O2INIT, FNMPRE, & GRDID, ICEO, ICEHO, ICEFO, W3DMO2 USE W3SERVMD, ONLY: EXTCDE #ifdef W3_FLX5 @@ -1350,9 +1352,9 @@ SUBROUTINE W3IOPON_READ(IOTST, IMOD_IN, filename, ncerr, TOUT ) LOGICAL :: per_time_step INTEGER :: IGRD,MK,MTH integer :: fh, itime - integer :: d_nopts, d_nspec, d_vsize, d_namelen, d_grdidlen, d_time, d_ww3time - integer :: d_nopts_len, d_nspec_len, d_vsize_len, d_namelen_len, d_grdidlen_len, d_time_len, d_ww3time_len - integer :: v_idtst, v_vertst, v_nk, v_nth, v_ptloc, v_ptnme, v_time, v_ww3time + integer :: d_nopts, d_nspec, d_vsize, d_namelen, d_grdidlen, d_time + integer :: d_nopts_len, d_nspec_len, d_vsize_len, d_namelen_len, d_grdidlen_len, d_time_len + integer :: v_nk, v_nth, v_ptloc, v_ptnme, v_ww3time integer :: v_dpo, v_wao, v_wdo #ifdef W3_FLX5 integer :: v_tauao,v_taudo, v_dairo @@ -1617,9 +1619,8 @@ SUBROUTINE W3IOPON_WRITE(timestep_only,filename, ncerr, NDSOP, fname, path) USE NETCDF USE W3GDATMD, ONLY: NTH, NK, NSPEC USE W3WDATMD, ONLY: TIME - USE W3ODATMD, ONLY: NDST, NDSE, IPASS => IPASS2, NOPTS, IPTINT, & - PTLOC, PTIFAC, DPO, WAO, WDO, & - ASO, CAO, CDO, SPCO, PTNME, O2INIT, FNMPRE, FNMPNT, & + USE W3ODATMD, ONLY: IPASS => IPASS2, NOPTS, & + PTLOC, DPO, WAO, WDO, ASO, CAO, CDO, SPCO, PTNME, & GRDID, ICEO, ICEHO, ICEFO USE W3TIMEMD, ONLY: CALTYPE, T2D, U2D, TSUB #ifdef W3_FLX5 @@ -1638,9 +1639,9 @@ SUBROUTINE W3IOPON_WRITE(timestep_only,filename, ncerr, NDSOP, fname, path) CHARACTER(LEN=124), INTENT(IN), OPTIONAL :: fname CHARACTER(LEN=256), INTENT(IN), OPTIONAL :: path ! - integer :: ndim, nvar, fmt, itime, fh + integer :: itime, fh integer :: d_nopts, d_nspec, d_vsize, d_namelen, d_grdidlen, d_time - integer :: v_idtst, v_vertst, v_nk, v_nth, v_ptloc, v_ptnme, v_time, v_ww3time + integer :: v_nk, v_nth, v_ptloc, v_ptnme, v_time, v_ww3time integer :: v_dpo, v_wao, v_wdo #ifdef W3_FLX5 integer :: v_tauao, v_taudo, v_dairo @@ -2212,8 +2213,8 @@ SUBROUTINE W3IOPO ( INXOUT, NDSOP, IOTST, IMOD & !/ USE W3GDATMD, ONLY: NTH, NK, NSPEC, FILEXT USE W3WDATMD, ONLY: TIME - USE W3ODATMD, ONLY: NDST, NDSE, IPASS => IPASS2, NOPTS, IPTINT, & - IL, IW, II, PTLOC, PTIFAC, DPO, WAO, WDO, & + USE W3ODATMD, ONLY: NDST, NDSE, IPASS => IPASS2, NOPTS, & + IL, IW, II, PTLOC, DPO, WAO, WDO, & ASO, CAO, CDO, SPCO, PTNME, O2INIT, FNMPRE, FNMPNT, & GRDID, ICEO, ICEHO, ICEFO #ifdef W3_FLX5 From f86d0e0989cc363ce8ca83c103423d86474932f1 Mon Sep 17 00:00:00 2001 From: Ming Chen Date: Thu, 8 Jan 2026 14:06:12 +0000 Subject: [PATCH 5/5] resolve Intel remark #7712 in w3triamd --- model/src/w3triamd.F90 | 104 ++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 59 deletions(-) diff --git a/model/src/w3triamd.F90 b/model/src/w3triamd.F90 index 14c9ec41ac..cc38b5fc46 100644 --- a/model/src/w3triamd.F90 +++ b/model/src/w3triamd.F90 @@ -201,11 +201,10 @@ SUBROUTINE READMSH(NDS,FNAME) ! 10. Source code : ! !/ ------------------------------------------------------------------- / - USE W3ODATMD, ONLY: NDSE, NDST, NDSO + USE W3ODATMD, ONLY: NDSE, NDST USE W3GDATMD, ONLY: ZB, XGRD, YGRD, NTRI, NX, COUNTOT, TRIGP, NNZ, W3DIMUG USE W3SERVMD, ONLY: ITRACE, NEXTLN, EXTCDE USE CONSTANTS, only: LPDLIB - USE W3ODATMD, ONLY: IAPROC ! IMPLICIT NONE !/ @@ -216,20 +215,16 @@ SUBROUTINE READMSH(NDS,FNAME) !/ !/ local parameters !/ - INTEGER :: i,j,k, NODES, NELTS, ID, KID - INTEGER :: ID1, ID2, KID1, ITMP(3) + INTEGER :: i,j,k, NODES, NELTS + INTEGER :: ITMP(3) INTEGER :: I1, I2, I3 INTEGER(KIND=4) :: Ind,eltype,ntag, INode - CHARACTER :: COMSTR*1, SPACE*1 = ' ', CELS*64 + CHARACTER :: COMSTR*1 REAL, ALLOCATABLE :: TAGS(:) - CHARACTER(LEN=64), ALLOCATABLE :: ELS(:) CHARACTER(LEN=120) :: LINE - CHARACTER(LEN=50) :: CHTMP - CHARACTER(LEN=10) :: A, B, C - INTEGER,ALLOCATABLE :: NELS(:), TRIGPTMP1(:,:), TRIGPTMP2(:,:) + INTEGER,ALLOCATABLE :: TRIGPTMP1(:,:), TRIGPTMP2(:,:) INTEGER(KIND=4),ALLOCATABLE :: IFOUND(:), VERTEX(:), BOUNDTMP(:) DOUBLE PRECISION, ALLOCATABLE :: XYBTMP1(:,:),XYBTMP2(:,:) - REAL :: z OPEN(NDS,FILE = FNAME,STATUS='old') READ (NDS,'(A)') COMSTR @@ -456,11 +451,9 @@ SUBROUTINE READMSH_IOBP(NDS,FNAME) ! 10. Source code : ! !/ ------------------------------------------------------------------- / - USE W3ODATMD, ONLY: NDSE, NDST, NDSO + USE W3ODATMD, ONLY: NDSE USE W3GDATMD USE W3SERVMD, ONLY: ITRACE, NEXTLN, EXTCDE - USE CONSTANTS, only: LPDLIB - USE W3ODATMD, ONLY: IAPROC ! IMPLICIT NONE !/ @@ -473,7 +466,7 @@ SUBROUTINE READMSH_IOBP(NDS,FNAME) !/ INTEGER :: i,j,k, NODES LOGICAL :: lfile_exists - CHARACTER :: COMSTR*1, SPACE*1 = ' ', CELS*64 + CHARACTER :: COMSTR*1 DOUBLE PRECISION, ALLOCATABLE :: XYBTMP1(:,:) INQUIRE(FILE=FNAME, EXIST=lfile_exists) @@ -716,8 +709,8 @@ SUBROUTINE READMSHOBC(NDS, FNAME, TMPSTA, UGOBCOK) ! 10. Source code : ! !/ ------------------------------------------------------------------- / - USE W3GDATMD, ONLY: NX, NY, CCON , COUNTCON - USE W3ODATMD, ONLY: NDSE, NDST, NDSO + USE W3GDATMD, ONLY: NX, NY + USE W3ODATMD, ONLY: NDSE USE W3SERVMD, ONLY: ITRACE, NEXTLN, EXTCDE, EXTIOF #ifdef W3_S USE W3SERVMD, ONLY: STRACE @@ -734,9 +727,9 @@ SUBROUTINE READMSHOBC(NDS, FNAME, TMPSTA, UGOBCOK) !/ !/ local parameters !/ - INTEGER :: I, IERR + INTEGER :: IERR INTEGER(KIND=4) :: Ind,ntag, INode - CHARACTER :: COMSTR*1, SPACE*1 = ' ', CELS*64 + CHARACTER :: COMSTR*1 REAL, ALLOCATABLE :: TAGS(:) CHARACTER(LEN=120) :: LINE @@ -825,7 +818,7 @@ SUBROUTINE UG_GETOPENBOUNDARY(TMPSTA,ZBIN,ZLIM) ! 9. Switches : ! ! 10. Source code : - USE W3GDATMD, ONLY: NX, NY, CCON, COUNTCON, IOBP + USE W3GDATMD, ONLY: NX, NY #ifdef W3_S USE W3SERVMD, ONLY: STRACE @@ -933,13 +926,12 @@ SUBROUTINE SPATIAL_GRID #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif - USE W3ODATMD, ONLY: NDSE IMPLICIT NONE ! !local parameters ! - REAL :: TL1, TL2, TL3, TMPTRIGP + REAL :: TMPTRIGP INTEGER :: I1, I2, I3 INTEGER :: K REAL*8 :: PT(3,2) @@ -1046,14 +1038,12 @@ SUBROUTINE NVECTRI ! !local parameter ! - INTEGER :: IP, IE - INTEGER :: I1, I2, I3, I11, I22, I33 + INTEGER :: IE + INTEGER :: I1, I2, I3 ! REAL*8 :: P1(2), P2(2), P3(2) REAL*8 :: R1(2), R2(2), R3(2) REAL*8 :: N1(2), N2(2), N3(2) - REAL*8 :: TMP(3) - REAL*8 :: TMPINV(3) REAL*8 :: PT(3,2) #ifdef W3_S INTEGER :: IENT = 0 @@ -1188,7 +1178,7 @@ SUBROUTINE COUNT(TRIGPTEMP) !/ local parameter INTEGER :: CONN(NX) - INTEGER :: COUNTER, IP, IE, I, J, N(3) + INTEGER :: IP, IE, I, J, N(3) #ifdef W3_S INTEGER :: IENT = 0 #endif @@ -1386,10 +1376,9 @@ SUBROUTINE AREA_SI(IMOD) !/ local parameters - INTEGER :: COUNTER,ifound,alreadyfound - INTEGER :: I, J, K, II - INTEGER :: IP, IE, POS, POS_I, POS_J, POS_K, IP_I, IP_J, IP_K - INTEGER :: I1, I2, I3, IP2, CHILF(NX) + INTEGER :: I, J, K + INTEGER :: IP, IE, POS, POS_J, POS_K, IP_I, IP_J, IP_K + INTEGER :: I1, I2, I3, CHILF(NX) INTEGER :: TMP(NX), CELLVERTEX(NX,COUNTRI,2) INTEGER :: COUNT_MAX DOUBLE PRECISION :: TRIA03 @@ -1696,7 +1685,6 @@ SUBROUTINE IS_IN_UNGRID(IMOD, XTIN, YTIN, ITOUT, IS, JS, RW) #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif - USE W3ODATMD, ONLY: NDSE IMPLICIT NONE !/ ------------------------------------------------------------------- / @@ -1907,7 +1895,6 @@ SUBROUTINE IS_IN_UNGRID2(IMOD, XTIN, YTIN, FORCE, ITOUT, IS, JS, RW) #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif - USE W3ODATMD, ONLY: NDSE IMPLICIT NONE !/ ------------------------------------------------------------------- / @@ -1921,7 +1908,7 @@ SUBROUTINE IS_IN_UNGRID2(IMOD, XTIN, YTIN, FORCE, ITOUT, IS, JS, RW) !/ ------------------------------------------------------------------- / !local parameters - DOUBLE PRECISION :: x1, x2, x3, D1, D2, D3, DISTMIN, DDMIN + DOUBLE PRECISION :: x1, x2, x3, D1, D2, D3 DOUBLE PRECISION :: s1, s2, s3, sg1, sg2, sg3, smin, ssum DOUBLE PRECISION :: y1, y2, y3 INTEGER :: ITRI, ITRIS @@ -2083,8 +2070,7 @@ SUBROUTINE UG_GRADIENTS (PARAM, DIFFX, DIFFY) ! 10. Source code : USE CONSTANTS USE W3GDATMD, ONLY : TRIGP, NTRI, NX, NSEA, MAPFS, CLATIS, & - MAPSTA, ANGLE, FLAGLL, IOBP, IEN, TRIA, NSEAL, NTRI - USE W3ADATMD, ONLY : NSEALM + FLAGLL, IEN, TRIA, NSEAL, NTRI #ifdef W3_PDLIB USE yowElementpool use yowNodepool, only: PDLIB_IEN, PDLIB_TRIA, NPA @@ -2099,15 +2085,18 @@ SUBROUTINE UG_GRADIENTS (PARAM, DIFFX, DIFFY) ! local parameters - INTEGER :: VERTICES(3), NI(3), NI_GL(3) - REAL :: TMP1(3), TMP2(3) - INTEGER :: I, IX, IE, IE_GL + INTEGER :: NI(3) + INTEGER :: IE REAL :: VAR(3), FACT, LATMEAN - REAL :: DIFFXTMP, DIFFYTMP REAL :: DEDX(3), DEDY(3) REAL :: DVDXIE, DVDYIE - REAL :: WEI(NX), WEI_LOCAL(NSEAL) - REAL*8 :: RTMP(NSEAL) + REAL :: WEI(NX) + +#ifdef W3_PDLIB + INTEGER :: NI_GL(3) + INTEGER :: IE_GL + REAL :: WEI_LOCAL(NSEAL) +#endif DIFFX = 0. DIFFY = 0. @@ -2228,10 +2217,14 @@ SUBROUTINE W3NESTUG(DISTMIN,FLOK) !/ ------------------------------------------------------------------- / #ifdef W3_S USE W3SERVMD, ONLY: STRACE +#endif + ! +#ifdef W3_T + USE W3GDATMD, ONLY: MAPSF #endif ! USE W3ODATMD, ONLY: NBI, NDSE, ISBPI, XBPI, YBPI - USE W3GDATMD, ONLY: NX, XGRD, YGRD, MAPSTA, MAPFS, MAPSF + USE W3GDATMD, ONLY: NX, XGRD, YGRD, MAPSTA, MAPFS REAL, INTENT(IN) :: DISTMIN @@ -2371,8 +2364,6 @@ SUBROUTINE SET_IOBP (MASK, STATUS) ! ! USE W3GDATMD, ONLY: NX, NTRI, TRIGP - USE W3ODATMD, ONLY: IAPROC - IMPLICIT NONE @@ -2387,7 +2378,6 @@ SUBROUTINE SET_IOBP (MASK, STATUS) INTEGER :: ISFINISHED !, INEXT, IPREV INTEGER :: INEXT(3), IPREV(3) INTEGER :: ZNEXT, IP, I, IE, IPNEXT, IPPREV, COUNT - integer nb0, nb1, nbM1 STATUS = -1 INEXT=(/ 2, 3, 1 /) !IPREV=1+MOD(I+1,3) IPREV=(/ 3, 1, 2 /) !INEXT=1+MOD(I,3) @@ -2872,19 +2862,13 @@ SUBROUTINE SET_UG_IOBP() USE CONSTANTS ! ! - USE W3GDATMD, ONLY: NX, NY, NSEA, MAPFS, & - NK, NTH, DTH, XFR, MAPSTA, COUNTRI, & - ECOS, ESIN, IEN, NTRI, TRIGP, & - IOBP,IOBPD, IOBPA, & + USE W3GDATMD, ONLY: NX, NTH, MAPSTA, ECOS, ESIN, IEN, & + NTRI, TRIGP, IOBP,IOBPD, IOBPA + #ifdef W3_REF1 - REFPARS, REFLC, REFLD, & + USE W3GDATMD, ONLY: REFPARS, REFLC, REFLD, MAPFS, DTH #endif - ANGLE0, ANGLE - USE W3ODATMD, ONLY: TBPI0, TBPIN, FLBPI - USE W3ADATMD, ONLY: CG, CX, CY, ATRNX, ATRNY, ITIME, CFLXYMAX - USE W3IDATMD, ONLY: FLCUR - USE W3ODATMD, only : IAPROC #ifdef W3_S USE W3SERVMD, ONLY: STRACE #endif @@ -2897,9 +2881,7 @@ SUBROUTINE SET_UG_IOBP() !/ ------------------------------------------------------------------- / !/ Local parameters !/ - INTEGER :: ITH, IX, I, J, IP, IE, NDIRSUM - REAL (KIND = 8) :: COSSUM, SINSUM - REAL (KIND = 8) :: DIRMIN, DIRMAX, SHIFT, TEMPO, DIRCOAST + INTEGER :: ITH, I, IP, IE REAL (KIND = 8) :: X1, X2, Y1, Y2, DXP1, DXP2, DXP3 REAL (KIND = 8) :: DYP1, DYP2, DYP3, eDet1, eDet2, EVX, EVY REAL(KIND=8), PARAMETER :: THR = TINY(1.) @@ -2909,6 +2891,11 @@ SUBROUTINE SET_UG_IOBP() #ifdef W3_S INTEGER, SAVE :: IENT = 0 #endif + +#ifdef W3_REF1 + INTEGER :: NDIRSUM + REAL (KIND = 8) :: COSSUM, SINSUM, DIRCOAST +#endif !/ ------------------------------------------------------------------- / ! ! 1. Preparations --------------------------------------------------- * @@ -3091,7 +3078,6 @@ SUBROUTINE FIX_PERIODCITY(I1,I2,I3,XGRD,YGRD,PT) ! ! Local variables. ! ---------------------------------------------------------------- - INTEGER :: I INTEGER :: R1GT180, R2GT180, R3GT180 ! ---------------------------------------------------------------- !