Opened 11 years ago

Closed 10 years ago

Last modified 3 years ago

#625 closed Enhancement (fixed)

About limtrp and limtrp_2

Reported by: ch Owned by: somebody
Priority: low Milestone:
Component: LIM2 Version: release-3.2
Severity: Keywords: LIM*
Cc: Review:
MP ready?:
Progress:

Description

In these 2 routines, the call to the advection routine lim_adv_x is done alternately before and after the call to lim_adv_y. Why is the switch done in function of the values of nday?

  • In limmsh, the coriolis parameter is recomputed in function of the latitude. This can be a pb if a cartesian grid is used.

Commit History (2)

ChangesetAuthorTimeChangeLog
1923rblod2010-06-09T10:46:19+02:00

Add a stop on coriols parameter computation in case of f or beta plane, see ticket #625 second part

1922rblod2010-06-09T10:24:58+02:00

Correct alternate direction switch frenquence in LIM2 and LIM3, see ticket #625 and #605

Attachments (1)

limtrp_2.F90 (16.1 KB) - added by gm 10 years ago.
#625 answer + suggestion of optimization

Download all attachments as: .zip

Change History (5)

comment:1 Changed 11 years ago by gm

same remark in ticket #605

I agree on that. Verification and test at UCL are welcome

gurvan

comment:2 Changed 10 years ago by gm

It is clear that the frequency of the alterate direction should be as high as possible.

Therefore the change must be done at odd-even ice time step. Therefore in both limtrp and limtrp_2, the day odd-even check:

         IF ( MOD( nday , 2 ) == 0) THEN

should be transformed into a test on the odd-even check of ice time step = 1 + ( kt - 1) / nn_fsbc

         IF( MOD( ( kt - 1) / nn_fsbc , 2 ) == 0) THEN        !==  odd ice time step:  adv_x then adv_y  ==!

On the second point, it is much less obvious. I agree that there should be a problem here, but only if a a f-plane or a beta-plane is used (jphgr_msh = 2, 3 or 5). These are a very unlikely cases. I suggest to add simply in limmsh and limmsh_2 the following stop :

      IF( jphgr_msh == 2 .OR. jphgr_msh == 3 .OR. jphgr_msh == 4 )   &
         &      CALL ctl_stop(' Coriolis parameter in LIM not set for f- or beta-plane' )

NB: A limtrp_2 module is in attachment. It includes comments on some quick modification that should substantially speed-up the lim_trp routine

Changed 10 years ago by gm

#625 answer + suggestion of optimization

comment:3 Changed 10 years ago by rblod

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

comment:4 Changed 3 years ago by nemo

  • Keywords LIM* added
Note: See TracTickets for help on using tickets.