Opened 9 years ago

Closed 8 years ago

Last modified 3 years ago

#807 closed Bug (fixed)

ASSIM: bug in sshwzv.F90 wrong place for ssha update in vvl case

Reported by: gm Owned by: gm
Priority: low Milestone: Unscheduled
Component: OCE Version: release-3.4
Severity: Keywords: ASM
Cc:

Description

In sshwzv.F90, the update of ssha in key_asminc :

#if defined key_asminc
      ! Include the IAU weighted SSH increment
      IF( lk_asminc .AND. ln_sshinc .AND. ln_asmiau ) THEN
         CALL ssh_asm_inc( kt )
         ssha(:,:) = ssha(:,:) + z2dt * ssh_iau(:,:)
      ENDIF
#endif

should be moved before the computation of sshu_a, sshv_a and sshf_a (only done in vvl case),
otherwise the time stepping of the dynamics will be wrong.

Therefore this part of the module should becomes:

...

#if defined key_bdy
      ssha(:,:) = ssha(:,:) * bdytmask(:,:)
      CALL lbc_lnk( ssha, 'T', 1. ) 
#endif

#if defined key_asminc
      !                                                ! Include the IAU weighted SSH increment
      IF( lk_asminc .AND. ln_sshinc .AND. ln_asmiau ) THEN
         CALL ssh_asm_inc( kt )
         ssha(:,:) = ssha(:,:) + z2dt * ssh_iau(:,:)
      ENDIF
#endif
      !                                                ! Sea Surface Height at u-,v- and f-points (vvl case only)
      IF( lk_vvl ) THEN                                ! (required only in key_vvl case)
         DO jj = 1, jpjm1
            DO ji = 1, jpim1      ! NO Vector Opt.
               sshu_a(ji,jj) = 0.5  * umask(ji,jj,1) / ( e1u(ji  ,jj) * e2u(ji  ,jj) )                   &
                  &                                  * ( e1t(ji  ,jj) * e2t(ji  ,jj) * ssha(ji  ,jj)     &
                  &                                    + e1t(ji+1,jj) * e2t(ji+1,jj) * ssha(ji+1,jj) )
               sshv_a(ji,jj) = 0.5  * vmask(ji,jj,1) / ( e1v(ji,jj  ) * e2v(ji,jj  ) )                   &
                  &                                  * ( e1t(ji,jj  ) * e2t(ji,jj  ) * ssha(ji,jj  )     &
                  &                                    + e1t(ji,jj+1) * e2t(ji,jj+1) * ssha(ji,jj+1) )
            END DO
         END DO
         CALL lbc_lnk( sshu_a, 'U', 1. )   ;   CALL lbc_lnk( sshv_a, 'V', 1. )      ! Boundaries conditions
      ENDIF
      

Commit History (1)

ChangesetAuthorTimeChangeLog
3689gm2012-11-27T17:19:49+01:00

trunk: #807 : ASSIM: bug in sshwzv.F90 wrong place for ssha update in vvl

Change History (5)

comment:1 Changed 8 years ago by vichi

  • Owner changed from NEMO team to gm
  • Version changed from nemo_v3_3 to nemo_v3_4

comment:2 Changed 8 years ago by gm

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

Without any response from ASM developers the change has been made.

see Changeset 3689

comment:3 Changed 4 years ago by nicolasmartin

  • Keywords ASM added; ASSIM removed

comment:4 Changed 3 years ago by nemo

  • Keywords Misc. added

comment:5 Changed 3 years ago by nemo

  • Keywords Misc. removed
Note: See TracTickets for help on using tickets.