New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 5777 for branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90 – NEMO

Ignore:
Timestamp:
2015-10-06T13:40:42+02:00 (9 years ago)
Author:
gm
Message:

#1593: LDF-ADV, III. Phasing of the improvements/simplifications of ADV & LDF momentum trends (see wiki page)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r5770 r5777  
    7777      !!             Note that as all external forcing a time averaging over a two rdt 
    7878      !!             period is used to prevent the divergence of odd and even time step. 
    79       !! 
    80       !! N.B. : When key_esopa is used all the scheme are tested, regardless  
    81       !!        of the physical meaning of the results.  
    8279      !!---------------------------------------------------------------------- 
    8380      ! 
     
    121118               DO ji = fs_2, fs_jpim1   ! vector opt. 
    122119                  spgu(ji,jj) = spgu(ji,jj) + zg_2 * (  ssh_ib (ji+1,jj) - ssh_ib (ji,jj)    & 
    123                      &                      + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj)  ) /e1u(ji,jj) 
     120                     &                      + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj)  ) * r1_e1u(ji,jj) 
    124121                  spgv(ji,jj) = spgv(ji,jj) + zg_2 * (  ssh_ib (ji,jj+1) - ssh_ib (ji,jj)    & 
    125                      &                      + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj)  ) /e2v(ji,jj) 
     122                     &                      + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj)  ) * r1_e2v(ji,jj) 
    126123               END DO 
    127124            END DO 
     
    135132            DO jj = 2, jpjm1                         ! add tide potential forcing 
    136133               DO ji = fs_2, fs_jpim1   ! vector opt. 
    137                   spgu(ji,jj) = spgu(ji,jj) + grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) / e1u(ji,jj) 
    138                   spgv(ji,jj) = spgv(ji,jj) + grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) / e2v(ji,jj) 
     134                  spgu(ji,jj) = spgu(ji,jj) + grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) * r1_e1u(ji,jj) 
     135                  spgv(ji,jj) = spgv(ji,jj) + grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) * r1_e2v(ji,jj) 
    139136               END DO  
    140137            END DO 
     
    149146            DO jj = 2, jpjm1 
    150147               DO ji = fs_2, fs_jpim1   ! vector opt. 
    151                   spgu(ji,jj) = spgu(ji,jj) + ( zpice(ji+1,jj) - zpice(ji,jj) ) / e1u(ji,jj) 
    152                   spgv(ji,jj) = spgv(ji,jj) + ( zpice(ji,jj+1) - zpice(ji,jj) ) / e2v(ji,jj) 
     148                  spgu(ji,jj) = spgu(ji,jj) + ( zpice(ji+1,jj) - zpice(ji,jj) ) * r1_e1u(ji,jj) 
     149                  spgv(ji,jj) = spgv(ji,jj) + ( zpice(ji,jj+1) - zpice(ji,jj) ) * r1_e2v(ji,jj) 
    153150               END DO 
    154151            END DO 
     
    176173      CASE (  2 )   ;   CALL dyn_spg_flt( kt, kindic )      ! filtered 
    177174      !                                                     
    178       CASE ( -1 )                                ! esopa: test all possibility with control print 
    179                         CALL dyn_spg_exp( kt ) 
    180                         CALL prt_ctl( tab3d_1=ua, clinfo1=' spg0 - Ua: ', mask1=umask, & 
    181          &                            tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    182                         CALL dyn_spg_ts ( kt ) 
    183                         CALL prt_ctl( tab3d_1=ua, clinfo1=' spg1 - Ua: ', mask1=umask, & 
    184          &                           tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    185                         CALL dyn_spg_flt( kt, kindic ) 
    186                         CALL prt_ctl( tab3d_1=ua, clinfo1=' spg2 - Ua: ', mask1=umask, & 
    187          &                            tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    188175      END SELECT 
    189176      !                     
     
    248235      IF(lk_dynspg_flt)   ioptio = ioptio + 1 
    249236      ! 
    250       IF( ( ioptio > 1 .AND. .NOT. lk_esopa ) .OR. ( ioptio == 0 .AND. .NOT. lk_c1d ) )   & 
     237      IF(  ioptio > 1 .OR. ( ioptio == 0 .AND. .NOT. lk_c1d ) )   & 
    251238           &   CALL ctl_stop( ' Choose only one surface pressure gradient scheme with a key cpp' ) 
    252239      IF( ( lk_dynspg_ts .OR. lk_dynspg_exp ) .AND. ln_isfcav )   & 
    253240           &   CALL ctl_stop( ' dynspg_ts and dynspg_exp not tested with ice shelf cavity ' ) 
    254241      ! 
    255       IF( lk_esopa     )   nspg = -1 
    256242      IF( lk_dynspg_exp)   nspg =  0 
    257243      IF( lk_dynspg_ts )   nspg =  1 
    258244      IF( lk_dynspg_flt)   nspg =  2 
    259245      ! 
    260       IF( lk_esopa     )   nspg = -1 
    261       ! 
    262246      IF(lwp) THEN 
    263247         WRITE(numout,*) 
    264          IF( nspg == -1 )   WRITE(numout,*) '     ESOPA test All scheme used' 
    265248         IF( nspg ==  0 )   WRITE(numout,*) '     explicit free surface' 
    266249         IF( nspg ==  1 )   WRITE(numout,*) '     free surface with time splitting scheme' 
     
    268251      ENDIF 
    269252 
    270 #if defined key_dynspg_flt || defined key_esopa 
     253#if defined key_dynspg_flt 
    271254      CALL solver_init( nit000 )   ! Elliptic solver initialisation 
    272255#endif 
Note: See TracChangeset for help on using the changeset viewer.