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 5770 for branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN – NEMO

Ignore:
Timestamp:
2015-10-01T14:48:08+02:00 (9 years ago)
Author:
gm
Message:

#1593: LDF-ADV, step II.2: phasing the improvements/simplifications of advective tracer trend (see wiki page)

Location:
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN
Files:
4 edited

Legend:

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

    r5737 r5770  
    1818   !!             -   ! 2010-10  (R. Furner, G. Madec) runoff and cla added directly here 
    1919   !!            3.6  ! 2014-11  (P. Mathiot)          isf            added directly here 
     20   !!            3.7  ! 2015-10  (G. Madec) remove cross-land advection 
    2021   !!---------------------------------------------------------------------- 
    2122 
     
    2930   USE sbcrnf          ! river runoff  
    3031   USE sbcisf          ! ice shelf  
    31    USE cla             ! cross land advection             (cla_div routine) 
    3232   USE in_out_manager  ! I/O manager 
    3333   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
     
    6868      !!         - compute the now divergence given by : 
    6969      !!         hdivn = 1/(e1t*e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] ) 
    70       !!      correct hdiv with runoff inflow (div_rnf), ice shelf melting (div_isf) 
    71       !!      and cross land flow (div_cla)  
     70      !!      correct hdiv with runoff inflow (div_rnf) and ice shelf melting (div_isf) 
    7271      !!              II. vorticity : 
    7372      !!         - save the curl computed at the previous time-step 
     
    226225      IF( ln_rnf      )   CALL sbc_rnf_div( hdivn )          ! runoffs   (update hdivn field) 
    227226      IF( ln_divisf .AND. (nn_isf /= 0) )   CALL sbc_isf_div( hdivn )          ! ice shelf (update hdivn field) 
    228       IF( nn_cla == 1 )   CALL cla_div    ( kt )             ! Cross Land Advection (Update Hor. divergence) 
    229227       
    230228      ! 4. Lateral boundary conditions on hdivn and rotn 
     
    256254      !!      - compute the now divergence given by : 
    257255      !!         hdivn = 1/(e1t*e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] ) 
    258       !!      correct hdiv with runoff inflow (div_rnf) and cross land flow (div_cla)  
     256      !!      correct hdiv with runoff inflow (div_rnf) 
    259257      !!              - Relavtive Vorticity : 
    260258      !!      - save the curl computed at the previous time-step (rotb = rotn) 
     
    325323      IF( ln_rnf      )   CALL sbc_rnf_div( hdivn )                            ! runoffs (update hdivn field) 
    326324      IF( ln_divisf .AND. (nn_isf .GT. 0) )   CALL sbc_isf_div( hdivn )          ! ice shelf (update hdivn field) 
    327       IF( nn_cla == 1 )   CALL cla_div    ( kt )             ! Cross Land Advection (update hdivn field) 
    328325      ! 
    329326      CALL lbc_lnk( hdivn, 'T', 1. )   ;   CALL lbc_lnk( rotn , 'F', 1. )     ! lateral boundary cond. (no sign change) 
  • branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r5120 r5770  
    271271      CALL solver_init( nit000 )   ! Elliptic solver initialisation 
    272272#endif 
    273  
    274       !                        ! Control of timestep choice 
    275       IF( lk_dynspg_ts .OR. lk_dynspg_exp ) THEN 
    276          IF( nn_cla == 1 )   CALL ctl_stop( 'Crossland advection not implemented for this free surface formulation' ) 
    277       ENDIF 
    278  
    279273      !               ! Control of hydrostatic pressure choice 
    280       IF( lk_dynspg_ts .AND. ln_dynhpg_imp ) THEN 
    281          CALL ctl_stop( 'Semi-implicit hpg not compatible with time splitting' ) 
    282       ENDIF 
     274      IF( lk_dynspg_ts .AND. ln_dynhpg_imp )   CALL ctl_stop( 'Semi-implicit hpg not compatible with time splitting' ) 
    283275      ! 
    284276      IF( nn_timing == 1 )  CALL timing_stop('dyn_spg_init') 
  • branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r4990 r5770  
    1414   !!            3.2  !  2009-03  (G. Madec, M. Leclair, R. Benshila) introduce sshwzv module 
    1515   !!            3.7  !  2014-04  (F. Roquet, G. Madec)  add some trends diag 
     16   !!             -   !  2014-12  (G. Madec) remove cross-land advection (cla) 
    1617   !!---------------------------------------------------------------------- 
    1718#if defined key_dynspg_flt   ||   defined key_esopa   
     
    3637   USE bdydyn          ! ocean open boundary condition on dynamics 
    3738   USE bdyvol          ! ocean open boundary condition (bdy_vol routine) 
    38    USE cla             ! cross land advection 
    3939   USE trd_oce         ! trends: ocean variables 
    4040   USE trddyn          ! trend manager: dynamics 
     
    206206      CALL Agrif_dyn( kt )    ! Update velocities on each coarse/fine interfaces  
    207207#endif 
    208       IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 )   CALL cla_dynspg( kt )      ! Cross Land Advection (update (ua,va)) 
    209208 
    210209      ! compute the next vertically averaged velocity (effect of the additional force not included) 
  • branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90

    r5737 r5770  
    8080      IF( nn_timing == 1 )  CALL timing_start('ssh_nxt') 
    8181      ! 
    82       CALL wrk_alloc( jpi, jpj, zhdiv )  
     82      CALL wrk_alloc( jpi,jpj,  zhdiv )  
    8383      ! 
    8484      IF( kt == nit000 ) THEN 
    85          ! 
    8685         IF(lwp) WRITE(numout,*) 
    8786         IF(lwp) WRITE(numout,*) 'ssh_nxt : after sea surface height' 
    8887         IF(lwp) WRITE(numout,*) '~~~~~~~ ' 
    89          ! 
    9088      ENDIF 
    9189      ! 
     
    159157      !! Reference  : Leclair, M., and G. Madec, 2009, Ocean Modelling. 
    160158      !!---------------------------------------------------------------------- 
    161       ! 
    162       INTEGER, INTENT(in) ::   kt           ! time step 
     159      INTEGER, INTENT(in) ::   kt   ! time step 
     160      ! 
     161      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     162      REAL(wp) ::   z1_2dt       ! local scalars 
    163163      REAL(wp), POINTER, DIMENSION(:,:  ) ::  z2d 
    164164      REAL(wp), POINTER, DIMENSION(:,:,:) ::  z3d, zhdiv 
    165       ! 
    166       INTEGER             ::   ji, jj, jk   ! dummy loop indices 
    167       REAL(wp)            ::   z1_2dt       ! local scalars 
    168       !!---------------------------------------------------------------------- 
    169        
     165      !!---------------------------------------------------------------------- 
     166      ! 
    170167      IF( nn_timing == 1 )  CALL timing_start('wzv') 
    171168      ! 
    172169      IF( kt == nit000 ) THEN 
    173          ! 
    174170         IF(lwp) WRITE(numout,*) 
    175171         IF(lwp) WRITE(numout,*) 'wzv : now vertical velocity ' 
     
    177173         ! 
    178174         wn(:,:,jpk) = 0._wp                  ! bottom boundary condition: w=0 (set once for all) 
    179          ! 
    180175      ENDIF 
    181176      !                                           !------------------------------! 
     
    216211 
    217212#if defined key_bdy 
    218       IF (lk_bdy) THEN 
     213      IF( lk_bdy ) THEN 
    219214         DO jk = 1, jpkm1 
    220215            wn(:,:,jk) = wn(:,:,jk) * bdytmask(:,:) 
     
    224219      ! 
    225220      IF( nn_timing == 1 )  CALL timing_stop('wzv') 
    226  
    227  
     221      ! 
    228222   END SUBROUTINE wzv 
     223 
    229224 
    230225   SUBROUTINE ssh_swp( kt ) 
     
    265260         sshb(:,:) = sshn(:,:)                           ! before <-- now 
    266261         sshn(:,:) = ssha(:,:)                           ! now    <-- after  (before already = now) 
     262         ! 
    267263      ELSE                                         !** Leap-Frog time-stepping: Asselin filter + swap 
    268264         sshb(:,:) = sshn(:,:) + atfp * ( sshb(:,:) - 2 * sshn(:,:) + ssha(:,:) )     ! before <-- now filtered 
Note: See TracChangeset for help on using the changeset viewer.