Hi every one.
When I used Relaxation and Sponge area, i have problem that current appeared shape of tile.
This problem appeared in figure relaxation_error.png.
Relaxation and Sponge area applied in east, west, north, south boundary.
This shape appeared in structure of temperature too.
I have difficulty about this problem.
I performed relaxation used script below in ana_nudgcoef.h.
elif defined nwp
cff1=0.5_r8/(5.0_r8*86400.0_r8) ! 5 days
Iwrk=20.0
!southern region
DO j=JstrR,MIN(Iwrk,JendR)
DO i=MAX(IstrR,j),MIN(IendR-j,IendR)
wrk(i,j)=cff1*((1.0_r8-COS(pi*REAL(j+Iwrk,r8)/ &
& REAL(Iwrk,r8)))/2.0_r8)
END DO
END DO
!northern region
DO j=JendR-Iwrk,JendR
DO i=MAX(IstrR,JendR-j),MIN(j-(Iwrk+(JendR-Iwrk-IendR)),IendR)
wrk(i,j)=cff1*((1.0_r8-COS(pi*REAL(j-JendR+Iwrk,r8)/ &
& REAL(Iwrk,r8)))/2.0_r8)
END DO
END DO
!western reigon
DO i=IstrR,MIN(Iwrk,IendR)
DO j=MAX(JstrR,i),MIN(JendR-i,JendR)
wrk(i,j)=cff1*((1.0_r8-COS(pi*REAL(i+Iwrk,r8)/ &
& REAL(Iwrk,r8)))/2.0_r8)
END DO
END DO
!eastern region
DO i=IendR-Iwrk,IendR
DO j=MAX(JstrR,IendR-i),MIN(JendR-IendR+i,JendR)
wrk(i,j)=cff1*((1.0_r8-COS(pi*REAL(i-IendR+Iwrk,r8)/ &
& REAL(Iwrk,r8)))/2.0_r8)
END DO
END DO
# ifdef TCLM_NUDGING
DO itrc=1,NT(ng)
DO j=JstrR,JendR
DO i=IstrR,IendR
CLIMA(ng)%Tnudgcof(i,j,itrc)=wrk(i,j)
END DO
END DO
END DO
# endif
This script used for sponge area in ana_hmixcoef.h too.
To solved this problem, I am using ROMS version 3.2, 3.3, 3.7. But this problem occurred in used all ROMS version.
Open boundary scheme of M3 and TS used radiation nudging.
I want any advice and comment to solved this problem.
thanks.
problem about Relaxation/Sponge area
-
- Posts: 4
- Joined: Thu Jan 06, 2011 2:52 pm
Re: problem about Relaxation/Sponge area
This is why Hernan is now recommending that you set up your nudging coefficients with an external program and write them to a NetCDF file. IstrR is the starting index for the i-direction on the tile. Each process has its own value for IstrR for its own tile. The global i,j range is more like 1 to Lm, 1 to Mm. Here is my ana_nudgcoef code:
Note that IstrR became IstrT in some revision change. I've hard-coded the 120 and the 410 for a specific application where the boundary is only open over a certain j range. The advantage of doing this outside of ROMS is that you can see your field in ncview to check it.
Code: Select all
! Set nudging boundaries coefficients zone for ARCTIC2
! nudging coefficients vary from a thirty
! days time scale at the boundary point to decrease linearly to 0 days
! (i.e no nudging) 15 grids points away from the boundary.
!
cff1=1.0_r8/(30_r8*86400.0_r8) ! 30-day outer limit
cff2=0.0_r8 ! Inf days (no nudge) inner limit
cff3=20.0_r8 ! width of layer in grid points
! cff3-point wide linearly tapered nudging zone
DO j=JstrT,MIN(INT(cff3),JendT) ! SOUTH boundary
DO i=IstrT,IendT
wrk(i,j)=cff2+(cff3-REAL(j,r8))*(cff1-cff2)/cff3
END DO
END DO
! cff3-point wide linearly tapered nudging zone
DO j=MAX(JstrT,Mm(ng)+1-INT(cff3)),JendT ! NORTH boundary
DO i=IstrT,IendT
wrk(i,j)=MAX(wrk(i,j), &
& cff1+REAL(Mm(ng)+1-j,r8)*(cff2-cff1)/cff3)
END DO
END DO
! cff3-point wide linearly tapered nudging zone
DO i=IstrT,MIN(INT(cff3),IendT) ! WEST boundary
DO j=JstrT,MIN(JendT,120)
wrk(i,j)=MAX(wrk(i,j), &
& cff2+(cff3-REAL(i,r8))*(cff1-cff2)/cff3)
END DO
END DO
! cff3-point wide linearly tapered nudging zone
DO i=MAX(IstrT,Lm(ng)+1-INT(cff3)),IendT ! EAST boundary
DO j=JstrT,MIN(JendT,410)
wrk(i,j)=MAX(wrk(i,j), &
& cff1+REAL(Lm(ng)+1-i,r8)*(cff2-cff1)/cff3)
END DO
END DO