From bd4225cbdb4c991e8d96ab5c4f19fa164768f5e6 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Tue, 4 Jul 2023 13:05:28 +0200 Subject: [PATCH 1/2] fixes encountered with wave/ice coupling --- model/src/w3fld1md.F90 | 38 +++++++++++++++++++++++++++----------- model/src/w3iorsmd.F90 | 4 ++-- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/model/src/w3fld1md.F90 b/model/src/w3fld1md.F90 index 960fd185af..ea9ef178ab 100644 --- a/model/src/w3fld1md.F90 +++ b/model/src/w3fld1md.F90 @@ -1115,9 +1115,14 @@ SUBROUTINE APPENDTAIL(INSPC, WN2, NKT, KA1, KA2, KA3, WNDDIR,SAT) !---------------------------------------------- DO K=KA1, KA2-1 AVG=SUM(INSPC(K,:))/MAX(REAL(NTH),1.) - DO T=1,NTH - INSPC(K,T)=BT(K)*INSPC(K,T)/TPI/(WN2(K)**3.0)/AVG - ENDDO + if (AVG == 0.) then + write(6,*)'WARNING: SUM(INSPC(K,:)) is zero for K = ',K + end if + if (AVG /= 0.) then + DO T=1,NTH + INSPC(K,T)=BT(K)*INSPC(K,T)/TPI/(WN2(K)**3.0)/AVG + ENDDO + end if ENDDO !----------------------------------------------------------- ! Region B, Saturation level left flat while spectrum turned @@ -1133,10 +1138,16 @@ SUBROUTINE APPENDTAIL(INSPC, WN2, NKT, KA1, KA2, KA3, WNDDIR,SAT) ENDIF ENDDO AVG=SUM(NORMSPC)/MAX(REAL(NTH),1.) - DO T=1, NTH - INSPC(K,T) = SAT * NORMSPC(T)/TPI/(WN2(K)**3.0)/AVG - ENDDO + if (AVG == 0.) then + write(6,*)'WARNING: SUM(NORMSPC) is zero for K = ',K + end if + if (AVG /= 0.) then + DO T=1, NTH + INSPC(K,T) = SAT * NORMSPC(T)/TPI/(WN2(K)**3.0)/AVG + ENDDO + end if ENDDO + DO T=1, NTH angdif=th(t)-wnddir IF (COS(ANGDIF) .GT. 0.0) THEN @@ -1146,11 +1157,16 @@ SUBROUTINE APPENDTAIL(INSPC, WN2, NKT, KA1, KA2, KA3, WNDDIR,SAT) ENDIF ENDDO AVG=SUM(NORMSPC)/MAX(REAL(NTH),1.)!1./4. - DO K=KA3+1, NKT - DO T=1, NTH - INSPC(K,T)=NORMSPC(T)*(SAT)/TPI/(WN2(K)**3.0)/AVG - ENDDO - ENDDO + if (AVG == 0.) then + write(6,*)'WARNING: SUM(NORMSPC) is zero' + end if + if (AVG /= 0.) then + DO K=KA3+1, NKT + DO T=1, NTH + INSPC(K,T)=NORMSPC(T)*(SAT)/TPI/(WN2(K)**3.0)/AVG + ENDDO + ENDDO + end if DEALLOCATE(ANGLE1) ! ! Formats diff --git a/model/src/w3iorsmd.F90 b/model/src/w3iorsmd.F90 index 2832d08185..66ae32d9ac 100644 --- a/model/src/w3iorsmd.F90 +++ b/model/src/w3iorsmd.F90 @@ -892,7 +892,7 @@ SUBROUTINE W3IORS ( INXOUT, NDSR, DUMFPI, IMOD, FLRSTRT ) WRITEBUFF(:) = 0. WRITE (NDSR,POS=RPOS,ERR=803,IOSTAT=IERR) WRITEBUFF WRITE (NDSR,POS=RPOS,ERR=803,IOSTAT=IERR) & - TLEV, TICE, TRHO + TLEV, TICE, TRHO, TIC1, TIC5 DO IPART=1,NPART NREC = NREC + 1 RPOS = 1_8 + LRECL*(NREC-1_8) @@ -1073,7 +1073,7 @@ SUBROUTINE W3IORS ( INXOUT, NDSR, DUMFPI, IMOD, FLRSTRT ) IF (TYPE.EQ.'FULL') THEN RPOS = 1_8 + LRECL*(NREC-1_8) READ (NDSR,POS=RPOS,ERR=802,IOSTAT=IERR) & - TLEV, TICE, TRHO + TLEV, TICE, TRHO, TIC1, TIC5 DO IPART=1,NPART NREC = NREC + 1 RPOS = 1_8 + LRECL*(NREC-1_8) From fcc62f7741909f923f3e44e6eb7fc2e28ff31a08 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Wed, 5 Jul 2023 09:43:16 +0200 Subject: [PATCH 2/2] changes made to address comments in PR --- model/src/w3fld1md.F90 | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/model/src/w3fld1md.F90 b/model/src/w3fld1md.F90 index ea9ef178ab..500e73e3f7 100644 --- a/model/src/w3fld1md.F90 +++ b/model/src/w3fld1md.F90 @@ -1117,8 +1117,7 @@ SUBROUTINE APPENDTAIL(INSPC, WN2, NKT, KA1, KA2, KA3, WNDDIR,SAT) AVG=SUM(INSPC(K,:))/MAX(REAL(NTH),1.) if (AVG == 0.) then write(6,*)'WARNING: SUM(INSPC(K,:)) is zero for K = ',K - end if - if (AVG /= 0.) then + else DO T=1,NTH INSPC(K,T)=BT(K)*INSPC(K,T)/TPI/(WN2(K)**3.0)/AVG ENDDO @@ -1140,8 +1139,7 @@ SUBROUTINE APPENDTAIL(INSPC, WN2, NKT, KA1, KA2, KA3, WNDDIR,SAT) AVG=SUM(NORMSPC)/MAX(REAL(NTH),1.) if (AVG == 0.) then write(6,*)'WARNING: SUM(NORMSPC) is zero for K = ',K - end if - if (AVG /= 0.) then + else DO T=1, NTH INSPC(K,T) = SAT * NORMSPC(T)/TPI/(WN2(K)**3.0)/AVG ENDDO @@ -1159,8 +1157,7 @@ SUBROUTINE APPENDTAIL(INSPC, WN2, NKT, KA1, KA2, KA3, WNDDIR,SAT) AVG=SUM(NORMSPC)/MAX(REAL(NTH),1.)!1./4. if (AVG == 0.) then write(6,*)'WARNING: SUM(NORMSPC) is zero' - end if - if (AVG /= 0.) then + else DO K=KA3+1, NKT DO T=1, NTH INSPC(K,T)=NORMSPC(T)*(SAT)/TPI/(WN2(K)**3.0)/AVG