Skip to content

Commit

Permalink
integrate st4 cleanup only
Browse files Browse the repository at this point in the history
from ST4table branch
  • Loading branch information
mickaelaccensi committed Dec 22, 2023
1 parent d3ea810 commit 51071a7
Show file tree
Hide file tree
Showing 8 changed files with 131 additions and 79 deletions.
11 changes: 9 additions & 2 deletions model/src/w3gdatmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -897,7 +897,7 @@ MODULE W3GDATMD
REAL, POINTER :: DCKI(:,:), SATWEIGHTS(:,:),CUMULW(:,:),QBI(:,:)
REAL :: AALPHA, BBETA, ZZ0MAX, ZZ0RAT, ZZALP,&
SSINTHP, TTAUWSHELTER, SSWELLF(1:7), &
SSDSC(1:21), SSDSBR, &
SSDSC(1:21), SSDSBR, SINTAILPAR(1:5),&
SSDSP, WWNMEANP, SSTXFTF, SSTXFTWN, &
FFXPM, FFXFM, FFXFA, &
SSDSBRF1, SSDSBRF2, SSDSBINT,SSDSBCK,&
Expand Down Expand Up @@ -1317,7 +1317,7 @@ MODULE W3GDATMD
FFXFM, FFXPM, SSDSBRF1, SSDSBRF2, &
SSDSBINT, SSDSBCK, SSDSHCK, SSDSABK, &
SSDSPBK, SSINBR,SSINTHP,TTAUWSHELTER,&
SSWELLF(:), SSDSC(:), SSDSBR, &
SINTAILPAR(:), SSWELLF(:), SSDSC(:), SSDSBR, &
SSDSP, WWNMEANP, SSTXFTF, SSTXFTWN, &
SSDSBT, SSDSCOS, SSDSDTH, SSDSBM(:)
#endif
Expand Down Expand Up @@ -2074,12 +2074,18 @@ SUBROUTINE W3DIMS ( IMOD, MK, MTH, NDSE, NDST )
MPARS(IMOD)%SRCPS%QBI(NKHS,NKD), &
STAT=ISTAT )
CHECK_ALLOC_STATUS ( ISTAT )
MPARS(IMOD)%SRCPS%IKTAB(:,:)=0.
MPARS(IMOD)%SRCPS%DCKI(:,:)=0.
MPARS(IMOD)%SRCPS%QBI(:,:)=0.
SDSNTH = MTH/2-1 !MIN(NINT(SSDSDTH/(DTH*RADE)),MTH/2-1)
ALLOCATE( MPARS(IMOD)%SRCPS%SATINDICES(2*SDSNTH+1,MTH), &
MPARS(IMOD)%SRCPS%SATWEIGHTS(2*SDSNTH+1,MTH), &
MPARS(IMOD)%SRCPS%CUMULW(MSPEC,MSPEC), &
STAT=ISTAT )
CHECK_ALLOC_STATUS ( ISTAT )
MPARS(IMOD)%SRCPS%SATINDICES(:,:)=0.
MPARS(IMOD)%SRCPS%SATWEIGHTS(:,:)=0.
MPARS(IMOD)%SRCPS%CUMULW(:,:)=0.
#endif
!
SGRDS(IMOD)%SINIT = .TRUE.
Expand Down Expand Up @@ -2648,6 +2654,7 @@ SUBROUTINE W3SETG ( IMOD, NDSE, NDST )
ZZ0RAT => MPARS(IMOD)%SRCPS%ZZ0RAT
ZZALP => MPARS(IMOD)%SRCPS%ZZALP
TTAUWSHELTER => MPARS(IMOD)%SRCPS%TTAUWSHELTER
SINTAILPAR => MPARS(IMOD)%SRCPS%SINTAILPAR
SSWELLFPAR => MPARS(IMOD)%SRCPS%SSWELLFPAR
SSWELLF => MPARS(IMOD)%SRCPS%SSWELLF
SSDSC => MPARS(IMOD)%SRCPS%SSDSC
Expand Down
58 changes: 37 additions & 21 deletions model/src/w3gridmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -839,7 +839,8 @@ MODULE W3GRIDMD
#endif
!
#ifdef W3_ST4
INTEGER :: SWELLFPAR, SDSISO, SDSBRFDF
INTEGER :: SWELLFPAR, SDSISO, SDSBRFDF, SINTABLE,&
TAUWBUG
REAL :: SDSBCHOICE
REAL :: ZWND, ALPHA0, Z0MAX, BETAMAX, SINTHP,&
ZALP, Z0RAT, TAUWSHELTER, SWELLF, &
Expand All @@ -855,7 +856,8 @@ MODULE W3GRIDMD
SDSBRF1, &
SDSBM0, SDSBM1, SDSBM2, SDSBM3, &
SDSBM4, SDSFACMTF, SDSCUMP, SDSNUW, &
SDSL, SDSMWD, SDSMWPOW, SPMSS, SDSNMTF
SDSL, SDSMWD, SDSMWPOW, SPMSS, SDSNMTF, SINTAIL1, SINTAIL2, &
CUMSIGP, VISCSTRESS
#endif
!
#ifdef W3_ST6
Expand Down Expand Up @@ -997,7 +999,7 @@ MODULE W3GRIDMD
NAMELIST /SIN4/ ZWND, ALPHA0, Z0MAX, BETAMAX, SINTHP, ZALP, &
TAUWSHELTER, SWELLFPAR, SWELLF, &
SWELLF2, SWELLF3, SWELLF4, SWELLF5, SWELLF6, &
SWELLF7, Z0RAT, SINBR
SWELLF7, Z0RAT, SINBR, SINTABLE, SINTAIL1, SINTAIL2, TAUWBUG, VISCSTRESS
#endif
#ifdef W3_NL1
NAMELIST /SNL1/ LAMBDA, NLPROP, KDCONV, KDMIN, &
Expand Down Expand Up @@ -1039,7 +1041,7 @@ MODULE W3GRIDMD
SDSC5, SDSC6, SDSBR, SDSBT, SDSP, SDSISO, &
SDSBCK, SDSABK, SDSPBK, SDSBINT, SDSHCK, &
SDSDTH, SDSCOS, SDSBRF1, SDSBRFDF, SDSNUW, &
SDSBM0, SDSBM1, SDSBM2, SDSBM3, SDSBM4, &
SDSBM0, SDSBM1, SDSBM2, SDSBM3, SDSBM4, CUMSIGP,&
WHITECAPWIDTH, WHITECAPDUR, SDSMWD, SDSMWPOW, SDKOF
#endif

Expand Down Expand Up @@ -1718,6 +1720,12 @@ SUBROUTINE W3GRID()
TAUWSHELTER = 0.3
ZALP = 0.006
SINBR = 0.
SINTABLE = 1
SINTAIL1 = 0. ! TAUWSHELTER FOR TAIL (no table)
SINTAIL2 = 0. ! additional peak in capillary range
TAUWBUG = 1 ! TAUWBUG is 1 is the bug is kept:
! initializes TAUWX/Y to zero in W3SRCE
VISCSTRESS =0
#endif
!
#ifdef W3_ST6
Expand Down Expand Up @@ -1801,6 +1809,11 @@ SUBROUTINE W3GRID()
SSWELLF(6) = SWELLF6
SSWELLF(7) = SWELLF7
SSWELLFPAR = SWELLFPAR
SINTAILPAR(1) = FLOAT(SINTABLE)
SINTAILPAR(2) = SINTAIL1
SINTAILPAR(3) = SINTAIL2
SINTAILPAR(4) = FLOAT(TAUWBUG)
SINTAILPAR(5) = VISCSTRESS
#endif
!
#ifdef W3_ST6
Expand Down Expand Up @@ -2106,8 +2119,8 @@ SUBROUTINE W3GRID()
SDSDTH = 80.
SDSCOS = 2.
SDSISO = 2
SDSBM0 = 1.
SDSBM1 = 0.
SDSBM0 = 1. ! All these parameters are related to finite depth
SDSBM1 = 0. ! scaling of breaking
SDSBM2 = 0.
SDSBM3 = 0.
SDSBM4 = 0.
Expand All @@ -2117,8 +2130,9 @@ SUBROUTINE W3GRID()
SDSBINT = 0.3
SDSHCK = 1.5
WHITECAPWIDTH = 0.3
SDSSTRAIN = 0.
SDSFACMTF = 400 ! MTF factor for Lambda , Romero (2019)
CUMSIGP = 0.
SDSSTRAIN = 0.
SDSSTRAINA = 15.
SDSSTRAIN2 = 0.
WHITECAPDUR = 0.56 ! breaking duration factor
Expand All @@ -2129,7 +2143,7 @@ SUBROUTINE W3GRID()
! MTF
SPMSS = 0.5 ! cmss^SPMSS
SDSNMTF = 1.5 ! MTF power
SDSCUMP = 2.
SDSCUMP = 2. ! 2 for cumulative mss, 1 for cumulative orb. vel.
! MW
SDSMWD = .9 ! new AFo
SDSMWPOW = 1. ! (k )^pow
Expand Down Expand Up @@ -2211,9 +2225,9 @@ SUBROUTINE W3GRID()
SSDSC(7) = WHITECAPWIDTH
SSDSC(8) = SDSSTRAIN ! Straining constant ...
SSDSC(9) = SDSL
SSDSC(10) = SDSSTRAINA*NTH/360. ! angle Aor enhanced straining
SSDSC(10) = SDSSTRAINA*NTH/360. ! angle for enhanced straining
SSDSC(11) = SDSSTRAIN2 ! straining constant for directional part
SSDSC(12) = SDSBT
SSDSC(12) = CUMSIGP
SSDSC(13) = SDSMWD
SSDSC(14) = SPMSS
SSDSC(15) = SDSMWPOW
Expand Down Expand Up @@ -3197,7 +3211,7 @@ SUBROUTINE W3GRID()
#ifdef W3_ST4
WRITE (NDSO,2920) ZWND, ALPHA0, Z0MAX, BETAMAX, SINTHP, ZALP, &
TAUWSHELTER, SWELLFPAR, SWELLF, SWELLF2, SWELLF3, SWELLF4, &
SWELLF5, SWELLF6, SWELLF7, Z0RAT, SINBR
SWELLF5, SWELLF6, SWELLF7, Z0RAT, SINBR, SINTABLE, TAUWBUG, VISCSTRESS, SINTAIL1, SINTAIL2
#endif
#ifdef W3_ST6
WRITE (NDSO,2920) SINA0, SINWS, SINFC
Expand Down Expand Up @@ -3262,7 +3276,7 @@ SUBROUTINE W3GRID()
SDSBT, SDSP, SDSISO, SDSCOS, SDSDTH, SDSBRF1, &
SDSBRFDF, SDSBM0, SDSBM1, SDSBM2, SDSBM3, SDSBM4, &
SPMSS, SDKOF, SDSMWD, SDSFACMTF, SDSNMTF,SDSMWPOW,&
SDSCUMP, SDSNUW, WHITECAPWIDTH, WHITECAPDUR
SDSCUMP, CUMSIGP, SDSNUW, WHITECAPWIDTH, WHITECAPDUR
#endif
#ifdef W3_ST6
WRITE (NDSO,2924) SDSET, SDSA1, SDSA2, SDSP1, SDSP2
Expand Down Expand Up @@ -3305,7 +3319,7 @@ SUBROUTINE W3GRID()
JGS_TERMINATE_DIFFERENCE, &
JGS_TERMINATE_NORM, &
JGS_LIMITER, &
JGS_LIMITER_FUNC, &
JGS_LIMITER_FUNC, &
JGS_USE_JACOBI, &
JGS_BLOCK_GAUSS_SEIDEL, &
JGS_MAXITER, &
Expand Down Expand Up @@ -3642,7 +3656,7 @@ SUBROUTINE W3GRID()
END SELECT

IF (FSTOTALIMP .or. FSTOTALEXP) THEN
LPDLIB = .TRUE.
LPDLIB = .TRUE.
ENDIF
!
IF (SUM(UNSTSCHEMES).GT.1) WRITE(NDSO,1035)
Expand Down Expand Up @@ -6234,7 +6248,9 @@ SUBROUTINE W3GRID()
' SWELLF =',F8.5,', SWELLF2 =',F8.5, &
', SWELLF3 =',F8.5,', SWELLF4 =',F9.1,','/ &
' SWELLF5 =',F8.5,', SWELLF6 =',F8.5, &
', SWELLF7 =',F12.2,', Z0RAT =',F8.5,', SINBR =',F8.5,' /')
', SWELLF7 =',F12.2,', Z0RAT =',F8.5,', SINBR =',F8.5,','/ &
' SINTABLE =',I2,', TAUWBUG =',I2, &
', VISCSTRESS =',F8.5,', SINTAIL1 =',F8.5,', SINTAIL2 =',F8.5,' /')
#endif
!
#ifdef W3_ST6
Expand Down Expand Up @@ -6407,7 +6423,7 @@ SUBROUTINE W3GRID()
' SPMSS = ',F5.2, ', SDKOF =',F5.2, &
', SDSMWD =',F5.2,', SDSFACMTF =',F5.1,', '/ &
' SDSMWPOW =',F3.1,', SDSNMTF =', F5.2, &
', SDSCUMP =', F3.1,', SDSNUW =', E8.3,', '/, &
', SDSCUMP =', F3.1,', CUMSIGP =', F3.1,', SDSNUW =', E10.3,', '/, &
' WHITECAPWIDTH =',F5.2, ' WHITECAPDUR =',F5.2,' /')
#endif
!
Expand Down Expand Up @@ -6519,20 +6535,20 @@ SUBROUTINE W3GRID()
947 FORMAT (/' Ice scattering ',A,/ &
' --------------------------------------------------')
948 FORMAT (' IS2 Scattering ... '/&
' scattering coefficient : ',E9.3/ &
' 0: no back-scattering : ',E9.3/ &
' scattering coefficient : ',E10.3/ &
' 0: no back-scattering : ',E10.3/ &
' TRUE: istropic back-scattering : ',L3/ &
' TRUE: update of ICEDMAX : ',L3/ &
' TRUE: keeps updated ICEDMAX : ',L3/ &
' flexural strength : ',E9.3/ &
' flexural strength : ',E10.3/ &
' TRUE: uses Robinson-Palmer disp.: ',L3/ &
' attenuation : ',F5.2/ &
' fragility : ',F5.2/ &
' minimum floe size in meters : ',F5.2/ &
' pack scattering coef 1 : ',F5.2/ &
' pack scattering coef 2 : ',F5.2/ &
' scaling by concentration : ',F5.2/ &
' creep B coefficient : ',E9.3/ &
' creep B coefficient : ',E10.3/ &
' creep C coefficient : ',F5.2/ &
' creep D coefficient : ',F5.2/ &
' creep N power : ',F5.2/ &
Expand All @@ -6543,7 +6559,7 @@ SUBROUTINE W3GRID()
' energy of activation : ',F5.2/ &
' anelastic coefficient : ',E11.3/ &
' anelastic exponent : ',F5.2)
2948 FORMAT ( ' &SIS2 ISC1 =',E9.3,', IS2BACKSCAT =',E9.3, &
2948 FORMAT ( ' &SIS2 ISC1 =',E10.3,', IS2BACKSCAT =',E10.3, &
', IS2ISOSCAT =',L3,', IS2BREAK =',L3, &
', IS2DUPDATE =',L3,','/ &
' IS2FLEXSTR =',E11.3,', IS2DISP =',L3, &
Expand Down
59 changes: 37 additions & 22 deletions model/src/w3iogrmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1065,12 +1065,12 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT &

READ(NDSM,END=801,ERR=802,IOSTAT=IERR)GRIDSHIFT
#ifdef W3_SEC1
READ (NDSM) NITERSEC1
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) NITERSEC1
#endif
!
#ifdef W3_RTD
!! Read rotated Polat/lon and AnglD from mod_def JGLi12Jun2012
READ (NDSM) PoLat, PoLon, AnglD, FLAGUNR
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) PoLat, PoLon, AnglD, FLAGUNR

#endif
!
Expand Down Expand Up @@ -1313,35 +1313,35 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT &
FACP, XREL, XFLT, FXFM, FXPM, XFT, XFC, FACSD, FHMAX, &
FFACBERG, DELAB, FWTABLE
#ifdef W3_RWND
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
RWINDC
#endif
#ifdef W3_WCOR
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
WWCOR
#endif
#ifdef W3_REF1
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
RREF, REFPARS, REFLC, REFLD
#endif
#ifdef W3_IG1
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
IGPARS(1:12)
#endif
#ifdef W3_IC2
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
IC2PARS(1:8)
#endif
#ifdef W3_IC3
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
IC3PARS
#endif
#ifdef W3_IC4
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
IC4PARS,IC4_KI,IC4_FC
#endif
#ifdef W3_IC5
READ (NDSM) &
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
IC5PARS
#endif
END IF
Expand Down Expand Up @@ -1506,10 +1506,9 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT &
SSTXFTFTAIL, SSTXFTWN, SSTXFTF, SSTXFTWN, &
SSDSBRF1, SSDSBRF2, SSDSBRFDF,SSDSBCK, SSDSABK, &
SSDSPBK, SSDSBINT, FFXPM, FFXFM, FFXFA, &
SSDSHCK, DELUST, DELTAIL, DELTAUW, &
DELU, DELALP, TAUT, TAUHFT, TAUHFT2, &
SSDSHCK, &
IKTAB, DCKI, QBI, SATINDICES, SATWEIGHTS, &
DIKCUMUL, CUMULW
DIKCUMUL, CUMULW, SINTAILPAR
#ifdef W3_ASCII
WRITE (NDSA,*) &
'ZZWND, AALPHA, ZZ0MAX, BBETA, SSINTHP, ZZALP, &
Expand All @@ -1520,10 +1519,9 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT &
SSTXFTFTAIL, SSTXFTWN, SSTXFTF, SSTXFTWN, &
SSDSBRF1, SSDSBRF2, SSDSBRFDF,SSDSBCK, SSDSABK, &
SSDSPBK, SSDSBINT, FFXPM, FFXFM, FFXFA, &
SSDSHCK, DELUST, DELTAIL, DELTAUW, &
DELU, DELALP, TAUT, TAUHFT, TAUHFT2, &
SSDSHCK, &
IKTAB, DCKI, QBI, SATINDICES, SATWEIGHTS, &
DIKCUMUL, CUMULW:', &
DIKCUMUL, CUMULW, SINTAILPAR:', &
ZZWND, AALPHA, ZZ0MAX, BBETA, SSINTHP, ZZALP, &
TTAUWSHELTER, SSWELLFPAR, SSWELLF, SSINBR, &
ZZ0RAT, SSDSC, &
Expand All @@ -1532,11 +1530,22 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT &
SSTXFTFTAIL, SSTXFTWN, SSTXFTF, SSTXFTWN, &
SSDSBRF1, SSDSBRF2, SSDSBRFDF,SSDSBCK, SSDSABK, &
SSDSPBK, SSDSBINT, FFXPM, FFXFM, FFXFA, &
SSDSHCK, DELUST, DELTAIL, DELTAUW, &
DELU, DELALP, TAUT, TAUHFT, TAUHFT2, &
SSDSHCK, &
IKTAB, DCKI, QBI, SATINDICES, SATWEIGHTS, &
DIKCUMUL, CUMULW
DIKCUMUL, CUMULW, SINTAILPAR
#endif
IF (SINTAILPAR(1).GT.0.5) THEN
WRITE (NDSM) DELUST, DELTAIL, DELTAUW, DELU, DELALP, &
TAUT, TAUHFT
IF (TTAUWSHELTER.GT.0) WRITE (NDSM) TAUHFT2
#ifdef W3_ASCII
WRITE (NDSA,*) 'DELUST, DELTAIL, DELTAUW, DELU, DELALP,&
TAUT, TAUHFT:', &
DELUST, DELTAIL, DELTAUW, DELU, DELALP, &
TAUT, TAUHFT
IF (TTAUWSHELTER.GT.0) WRITE (NDSA,*) 'TAUHFT2:', TAUHFT2
#endif
END IF
ELSE
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
ZZWND, AALPHA, ZZ0MAX, BBETA, SSINTHP, ZZALP, &
Expand All @@ -1547,10 +1556,16 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT &
SSTXFTFTAIL, SSTXFTWN, SSTXFTF, SSTXFTWN, &
SSDSBRF1, SSDSBRF2, SSDSBRFDF,SSDSBCK, SSDSABK, &
SSDSPBK, SSDSBINT, FFXPM, FFXFM, FFXFA, &
SSDSHCK, DELUST, DELTAIL, DELTAUW, &
DELU, DELALP, TAUT, TAUHFT, TAUHFT2, &
SSDSHCK, &
IKTAB, DCKI, QBI, SATINDICES, SATWEIGHTS, &
DIKCUMUL, CUMULW
DIKCUMUL, CUMULW, SINTAILPAR
IF (SINTAILPAR(1).GT.0.5) THEN
CALL INSIN4(.FALSE.)
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
DELUST, DELTAIL, DELTAUW, DELU, DELALP, &
TAUT, TAUHFT
IF (TTAUWSHELTER.GT.0) READ(NDSM,END=801,ERR=802,IOSTAT=IERR) TAUHFT2
END IF
END IF
#endif
!
Expand Down
Loading

0 comments on commit 51071a7

Please sign in to comment.