Description |
Not sure why this was not seen before. But most likely because the idiag index was not exceeded. There is a bug in step3d_uv.F, line 937 needs to be in an idiag loop the code now has:
# if defined DIAGNOSTICS_UV && defined MASKING
DO k=1,N(ng)
DO i=Istr,Iend
DiaV3wrk(i,j,k,idiag)=DiaV3wrk(i,j,k,idiag)*vmask(i,j)
END DO
END DO
# endif
but it really needs to be:
# if defined DIAGNOSTICS_UV && defined MASKING
DO k=1,N(ng)
DO i=Istr,Iend
DO idiag=1,NDM3d
DiaV3wrk(i,j,k,idiag)=DiaV3wrk(i,j,k,idiag)*vmask(i,j)
END DO
END DO
END DO
# endif
|
Description |
Corrected couple of bugs:
- get_nudgcoef.F: Corrected index idM3nc when cheching fro 3D momenutum nudging coefficients.
IF (LnudgeM3CLM(ng)) THEN
IF (.not.find_string(var_name,n_var,Vname(1,idM3nc), &
& NUD(ng)%Vid(idM3nc))) THEN
IF (Master) WRITE (stdout,10) TRIM(Vname(1,idM3nc)), &
& TRIM(ncname)
exit_flag=2
RETURN
END IF
END IF
Many thank to Ryan Holmes for reporting this typo.
- def_rst.F: Corrected the output dimension for wetting and drying variables wetdry_mask_u and wetdry_mask_v. We need to have instead:
!
! Define wet/dry mask on U-points.
!
Vinfo( 1)=Vname(1,idUwet)
Vinfo( 2)=Vname(2,idUwet)
Vinfo( 3)=Vname(3,idUwet)
Vinfo( 9)='land'
Vinfo(10)='water'
Vinfo(14)=Vname(4,idUwet)
Vinfo(16)=Vname(1,idtime)
Vinfo(22)='coordinates'
Aval(5)=REAL(Iinfo(1,idUwet,ng),r8)
status=def_var(ng, iNLM, RST(ng)%ncid, RST(ng)%Vid(idUwet), &
& NF_FOUT, nvd3, su2dgrd, Aval, Vinfo, ncname, &
& SetFillVal = .FALSE.)
IF (exit_flag.ne.NoError) RETURN
!
! Define wet/dry mask on V-points.
!
Vinfo( 1)=Vname(1,idVwet)
Vinfo( 2)=Vname(2,idVwet)
Vinfo( 3)=Vname(3,idVwet)
Vinfo(14)=Vname(4,idVwet)
Vinfo(16)=Vname(1,idtime)
Vinfo( 9)='land'
Vinfo(10)='water'
Vinfo(22)='coordinates'
Aval(5)=REAL(Iinfo(1,idVwet,ng),r8)
status=def_var(ng, iNLM, RST(ng)%ncid, RST(ng)%Vid(idVwet), &
& NF_FOUT, nvd3, sv2dgrd, Aval, Vinfo, ncname, &
& SetFillVal = .FALSE.)
IF (exit_flag.ne.NoError) RETURN
Many thanks to Lyon Lanerolle for bringing this to my attention.
|
Description |
WET_DRY and AVERAGES_DETIDE options fail to compile together.
The solution is very simple:
1) Edit the file set_avg.F
2) Add the usage of mod_grid module in the set_detide_tile subroutine as in the other subroutines in that file. So, just add:
# ifdef WET_DRY
USE mod_grid
# endif
But it would be nice if this correction is added to ROMS files in the repository.
I commented this in the
forum.
Cheers,
Alexis
|