Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Numerical Solution for Wave Attenuation in sea ice #1294

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions model/src/w3gdatmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ MODULE W3GDATMD
! for individual grid points.
! IICEDISP Log. Public Flag for use of the ice covered dispertion relation.
! IICESMOOTH Log. Public Flag to smooth the ice covered dispertion relation in broken ice.
! IC_NUMERICS Log. Public Turn on/off IC numerics fix
!
!
! GNAME C*30 Public Grid name.
Expand Down Expand Up @@ -700,6 +701,7 @@ MODULE W3GDATMD

LOGICAL :: GINIT, FLDRY, FLCX, FLCY, FLCTH, FLCK, FLSOU, IICEDISP,&
IICESMOOTH
LOGICAL, POINTER :: IC_NUMERICS

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this supposed to be a pointer in both places?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not 100% sure to be honest - I don't understand why some of the namlist settings here are pointers... but other are not... for example, most of the IC4 namelist settings are pointers in both places? but the IICEDISP is only a pointer in one place?

LOGICAL :: FLAGLL
LOGICAL :: CMPRTRCK
LOGICAL, POINTER :: FLAGST(:)
Expand Down Expand Up @@ -1216,6 +1218,7 @@ MODULE W3GDATMD

LOGICAL, POINTER :: GINIT, FLDRY, FLCX, FLCY, FLCTH, FLCK, FLSOU, IICEDISP,&
IICESMOOTH
LOGICAL, POINTER :: IC_NUMERICS
LOGICAL, POINTER :: FLAGLL
LOGICAL, POINTER :: CMPRTRCK
LOGICAL, POINTER :: FLAGST(:)
Expand Down Expand Up @@ -2385,6 +2388,7 @@ SUBROUTINE W3SETG ( IMOD, NDSE, NDST )
FLSOU => GRIDS(IMOD)%FLSOU
IICEDISP => GRIDS(IMOD)%IICEDISP
IICESMOOTH => GRIDS(IMOD)%IICESMOOTH
IC_NUMERICS => GRIDS(IMOD)%IC_NUMERICS
!
GNAME => GRIDS(IMOD)%GNAME
FILEXT => GRIDS(IMOD)%FILEXT
Expand Down
11 changes: 7 additions & 4 deletions model/src/w3gridmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -809,6 +809,7 @@ MODULE W3GRIDMD
!
REAL(8) :: GSHIFT ! see notes in WMGHGH
LOGICAL :: FLC, ICEDISP, TRCKCMPR
LOGICAL :: ICNUMERICS

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a nit-picky thing, but do we need both ICNUMERICS and IC_NUMERICS? I feel like the other ice flags have IICESMOOTH and ICESMOOTH.

Copy link
Contributor Author

@erinethomas erinethomas Feb 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was following the naming convention for "IC4KI and IC4_KI" - but the MISC namelist settings seem to have the 'extra I' rather than the underscore... we could probably pick either convention. I have no strong opinion on this.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is fine, IMO.

INTEGER :: PTM ! Partitioning method
REAL :: PTFC ! Part. cut off freq (for method 5)
REAL :: AIRCMIN, AIRGB
Expand Down Expand Up @@ -1113,7 +1114,7 @@ MODULE W3GRIDMD
STDX, STDY, STDT, ICEHMIN, ICEHINIT, ICEDISP, &
ICESLN, ICEWIND, ICESNL, ICESDS, ICEHFAC, &
ICEHDISP, ICEDDISP, ICEFDISP, CALTYPE, &
TRCKCMPR, PTM, PTFC, BTBET
TRCKCMPR, PTM, PTFC, BTBET, ICNUMERICS
NAMELIST /OUTS/ P2SF, I1P2SF, I2P2SF, &
US3D, I1US3D, I2US3D, &
USSP, IUSSP, STK_WN, &
Expand Down Expand Up @@ -2765,6 +2766,7 @@ SUBROUTINE W3GRID()
STDY = -1.
STDT = -1.
ICEDISP = .FALSE.
ICNUMERICS=.FALSE.
CALTYPE = 'standard'
! Variables for 3D array output
E3D=0
Expand Down Expand Up @@ -3035,6 +3037,7 @@ SUBROUTINE W3GRID()
IICEHDISP = ICEHDISP
IICEDDISP = ICEDDISP
IICEFDISP = ICEFDISP
IC_NUMERICS=ICNUMERICS
PMOVE = MAX ( 0. , PMOVE )
PFMOVE = PMOVE
!
Expand Down Expand Up @@ -3424,7 +3427,7 @@ SUBROUTINE W3GRID()
ICEHINIT, ICEDISP, ICEHDISP, &
ICESLN, ICEWIND, ICESNL, ICESDS, &
ICEDDISP,ICEFDISP, CALTYPE, TRCKCMPR, &
BTBETA
BTBETA,ICNUMERICS
ELSE
WRITE (NDSO,2966) CICE0, CICEN, LICE, PMOVE, XSEED, FLAGTR, &
XP, XR, XFILT, IHMAX, HSPMIN, WSMULT, &
Expand All @@ -3434,7 +3437,7 @@ SUBROUTINE W3GRID()
ICEHINIT, ICEDISP, ICEHDISP, &
ICESLN, ICEWIND, ICESNL, ICESDS, &
ICEDDISP, ICEFDISP, CALTYPE, TRCKCMPR,&
BTBETA
BTBETA,ICNUMERICS
END IF
!
#ifdef W3_FLD1
Expand Down Expand Up @@ -6833,7 +6836,7 @@ SUBROUTINE W3GRID()
', ICESNL = ',F6.2,', ICESDS = ',F5.2,','/ &
' ICEDDISP = ',F5.2,', ICEFDISP = ',F5.2, &
', CALTYPE = ',A8,' , TRCKCMPR = ', L3,','/ &
' BTBET = ', F6.2, ' /')
' BTBET = ', F6.2, ', ICNUMERICS =',L3,' /')
!
2976 FORMAT ( ' &OUTS P2SF =',I2,', I1P2SF =',I2,', I2P2SF =',I3,','/&
' US3D =',I2,', I1US3D =',I3,', I2US3D =',I3,','/&
Expand Down
Loading
Loading