Opened 7 years ago

Closed 7 years ago

Last modified 3 years ago

#1128 closed Bug (fixed)

Agrif sponge

Reported by: jchanut Owned by: nemo
Priority: low Milestone:
Component: AGRIF Version: release-3.4
Severity: Keywords:
Cc:

Description

I guess that the definition of sponge coefficients does not account for possible regional domain open boundary corners.
Moreover, as it is defined, the sponge layer is active all along the regional domain boundaries. This implies that even if the outermost points of the zoom domain are in land, the sponge is still active up to 6 points inside. This means that you may have have unwanted damping in some bays close to the regional domain boundaries.
Jerome

Commit History (0)

(No commits)

Attachments (1)

agrif_opa_sponge.F90 (15.5 KB) - added by jchanut 7 years ago.
Here is what I think would be the correct way to do. Seb: I wait for your approval.

Download all attachments as: .zip

Change History (12)

comment:1 Changed 7 years ago by jchanut

"6 points inside" is valid for a refinement factor of 3… That's rather "2 coarse grid points".

comment:2 Changed 7 years ago by smasson

Can you gave us a little more details about your first sentence? I didn't really understood your point :-)

comment:3 Changed 7 years ago by jchanut

That's not really clear, indeed.
The "zlocalviscsponge" array (which defines the sponge viscosities) is reset for each open boundary. One should have maybe something like that:

ztmp = visc_tra * ( ispongearea-jj ) * z1spongearea
zlocalviscsponge(ji,jj)=Max(zlocalviscsponge(ji,jj),ztmp)

to account for bdy corners. Otherwise you may have a discontinuity in the coefficient
Hum. May be more easy in French ;-)

Changed 7 years ago by jchanut

Here is what I think would be the correct way to do. Seb: I wait for your approval.

comment:4 Changed 7 years ago by jchanut

Possible patch for nemo_3_5_alpha attached. Seb: waiting for your approval.

comment:5 Changed 7 years ago by smasson

I carefully looked at your code.
I liked it and It looks ok to me expect 3 points:

  • when you compute the arrays for the dynamics (spe1ur2 and spe2vr2) you use zlocalviscsponge that was multiplied by visc_tra or in this part of the code it should be multiplied by visc_dyn
  • there is a small typo
    IF (( .NOT. spongedoneT ).OR.( .NOT. spongedoneT )) THEN
    

should be

IF (( .NOT. spongedoneT ).OR.( .NOT. spongedoneU )) THEN
  • lk_spdone should be named ll_spdone

comment:6 Changed 7 years ago by jchanut

  • Resolution set to fixed
  • Status changed from new to closed

comment:7 Changed 4 years ago by nicolasmartin

  • Keywords agrif removed

comment:8 Changed 4 years ago by nicolasmartin

  • Keywords nemo_v3_4* added

comment:9 Changed 4 years ago by nicolasmartin

  • Keywords sponge removed

comment:10 Changed 3 years ago by nemo

  • Keywords release-3.4* added; nemo_v3_4* removed

comment:11 Changed 3 years ago by nemo

  • Keywords release-3.4* removed
Note: See TracTickets for help on using tickets.