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

Ignore:
Timestamp:
2015-11-13T08:01:08+01:00 (9 years ago)
Author:
gm
Message:

#1613: vvl by default: TRA/TRC remove optimization associated with linear free surface

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

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_cen2.F90

    r5866 r5883  
    1010 
    1111   !!---------------------------------------------------------------------- 
    12    !!   dyn_adv_cen2       : flux form momentum advection (ln_dynadv_cen2=T) 
    13    !!                        trends using a 2nd order centred scheme   
     12   !!   dyn_adv_cen2  : flux form momentum advection (ln_dynadv_cen2=T) using a 2nd order centred scheme   
    1413   !!---------------------------------------------------------------------- 
    1514   USE oce            ! ocean dynamics and tracers 
     
    6766      ENDIF 
    6867      ! 
    69       IF( l_trddyn ) THEN           ! Save ua and va trends 
     68      IF( l_trddyn ) THEN           ! trends: store the input trends 
    7069         zfu_uw(:,:,:) = ua(:,:,:) 
    7170         zfv_vw(:,:,:) = va(:,:,:) 
    7271      ENDIF 
    73  
    74       !                                      ! ====================== ! 
    75       !                                      !  Horizontal advection  ! 
    76       DO jk = 1, jpkm1                       ! ====================== ! 
    77          !                                         ! horizontal volume fluxes 
     72      ! 
     73      !                             !==  Horizontal advection  ==! 
     74      ! 
     75      DO jk = 1, jpkm1                    ! horizontal transport 
    7876         zfu(:,:,jk) = 0.25 * e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 
    7977         zfv(:,:,jk) = 0.25 * e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 
    80          ! 
    81          DO jj = 1, jpjm1                          ! horizontal momentum fluxes at T- and F-point 
     78         DO jj = 1, jpjm1                 ! horizontal momentum fluxes (at T- and F-point) 
    8279            DO ji = 1, fs_jpim1   ! vector opt. 
    83                zfu_t(ji+1,jj  ,jk) = ( zfu(ji,jj,jk) + zfu(ji+1,jj  ,jk) ) * ( un(ji,jj,jk) + un(ji+1,jj  ,jk) ) 
    84                zfv_f(ji  ,jj  ,jk) = ( zfv(ji,jj,jk) + zfv(ji+1,jj  ,jk) ) * ( un(ji,jj,jk) + un(ji  ,jj+1,jk) ) 
    85                zfu_f(ji  ,jj  ,jk) = ( zfu(ji,jj,jk) + zfu(ji  ,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji+1,jj  ,jk) ) 
    86                zfv_t(ji  ,jj+1,jk) = ( zfv(ji,jj,jk) + zfv(ji  ,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji  ,jj+1,jk) ) 
     80               zfu_t(ji+1,jj  ,jk) = ( zfu(ji,jj,jk) + zfu(ji+1,jj,jk) ) * ( un(ji,jj,jk) + un(ji+1,jj  ,jk) ) 
     81               zfv_f(ji  ,jj  ,jk) = ( zfv(ji,jj,jk) + zfv(ji+1,jj,jk) ) * ( un(ji,jj,jk) + un(ji  ,jj+1,jk) ) 
     82               zfu_f(ji  ,jj  ,jk) = ( zfu(ji,jj,jk) + zfu(ji,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji+1,jj  ,jk) ) 
     83               zfv_t(ji  ,jj+1,jk) = ( zfv(ji,jj,jk) + zfv(ji,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji  ,jj+1,jk) ) 
    8784            END DO 
    8885         END DO 
    89          DO jj = 2, jpjm1                          ! divergence of horizontal momentum fluxes 
     86         DO jj = 2, jpjm1                 ! divergence of horizontal momentum fluxes 
    9087            DO ji = fs_2, fs_jpim1   ! vector opt. 
    9188               zbu = e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
    9289               zbv = e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
    9390               ! 
    94                ua(ji,jj,jk) = ua(ji,jj,jk) - (  zfu_t(ji+1,jj  ,jk) - zfu_t(ji  ,jj  ,jk)    & 
    95                   &                           + zfv_f(ji  ,jj  ,jk) - zfv_f(ji  ,jj-1,jk)  ) / zbu 
    96                va(ji,jj,jk) = va(ji,jj,jk) - (  zfu_f(ji  ,jj  ,jk) - zfu_f(ji-1,jj  ,jk)    & 
    97                   &                           + zfv_t(ji  ,jj+1,jk) - zfv_t(ji  ,jj  ,jk)  ) / zbv 
     91               ua(ji,jj,jk) = ua(ji,jj,jk) - (  zfu_t(ji+1,jj,jk) - zfu_t(ji,jj  ,jk)    & 
     92                  &                           + zfv_f(ji  ,jj,jk) - zfv_f(ji,jj-1,jk)  ) / zbu 
     93               va(ji,jj,jk) = va(ji,jj,jk) - (  zfu_f(ji,jj  ,jk) - zfu_f(ji-1,jj,jk)    & 
     94                  &                           + zfv_t(ji,jj+1,jk) - zfv_t(ji  ,jj,jk)  ) / zbv 
    9895            END DO 
    9996         END DO 
    10097      END DO 
    10198      ! 
    102       IF( l_trddyn ) THEN                          ! save the horizontal advection trend for diagnostic 
     99      IF( l_trddyn ) THEN           ! trends: send trend to trddyn for diagnostic 
    103100         zfu_uw(:,:,:) = ua(:,:,:) - zfu_uw(:,:,:) 
    104101         zfv_vw(:,:,:) = va(:,:,:) - zfv_vw(:,:,:) 
     
    108105      ENDIF 
    109106      ! 
    110  
    111       !                                      ! ==================== ! 
    112       !                                      !  Vertical advection  ! 
    113       DO jk = 1, jpkm1                       ! ==================== ! 
    114          !                                         ! Vertical volume fluxesÊ 
    115          zfw(:,:,jk) = 0.25 * e1e2t(:,:) * wn(:,:,jk) 
    116          ! 
    117          IF( jk == 1 ) THEN                        ! surface/bottom advective fluxes                    
    118             zfu_uw(:,:,jpk) = 0.e0                      ! Bottom  value : flux set to zero 
    119             zfv_vw(:,:,jpk) = 0.e0 
    120             !                                           ! Surface value : 
    121             IF( .NOT.ln_linssh ) THEN                        ! variable volume : flux set to zero 
    122                zfu_uw(:,:, 1 ) = 0._wp     
    123                zfv_vw(:,:, 1 ) = 0._wp 
    124             ELSE                                             ! constant volume : advection through the surface 
    125                DO jj = 2, jpjm1 
    126                   DO ji = fs_2, fs_jpim1 
    127                      zfu_uw(ji,jj, 1 ) = 2.e0 * ( zfw(ji,jj,1) + zfw(ji+1,jj  ,1) ) * un(ji,jj,1) 
    128                      zfv_vw(ji,jj, 1 ) = 2.e0 * ( zfw(ji,jj,1) + zfw(ji  ,jj+1,1) ) * vn(ji,jj,1) 
    129                   END DO 
    130                END DO 
    131             ENDIF 
    132          ELSE                                      ! interior fluxes 
    133             DO jj = 2, jpjm1 
    134                DO ji = fs_2, fs_jpim1   ! vector opt. 
    135                   zfu_uw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji+1,jj  ,jk) ) * ( un(ji,jj,jk) + un(ji,jj,jk-1) ) 
    136                   zfv_vw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji  ,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji,jj,jk-1) ) 
    137                END DO 
     107      !                             !==  Vertical advection  ==! 
     108      ! 
     109      DO jj = 2, jpjm1                    ! surface/bottom advective fluxes set to zero 
     110         DO ji = fs_2, fs_jpim1 
     111            zfu_uw(ji,jj,jpk) = 0._wp   ;   zfv_vw(jj,jj,jpk) = 0._wp 
     112            zfu_uw(ji,jj, 1 ) = 0._wp   ;   zfv_vw(jj,jj, 1 ) = 0._wp 
     113         END DO 
     114      END DO 
     115      IF( ln_linssh ) THEN                ! linear free surface: advection through the surface 
     116         DO jj = 2, jpjm1 
     117            DO ji = fs_2, fs_jpim1 
     118               zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * wn(ji,jj,1) + e1e2t(ji+1,jj) * wn(ji+1,jj,1) ) * un(ji,jj,1) 
     119               zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * wn(ji,jj,1) + e1e2t(ji,jj+1) * wn(ji,jj+1,1) ) * vn(ji,jj,1) 
    138120            END DO 
    139          ENDIF 
    140       END DO 
    141       DO jk = 1, jpkm1                             ! divergence of vertical momentum flux divergence 
    142          DO jj = 2, jpjm1  
     121         END DO 
     122      ENDIF 
     123      DO jk = 2, jpkm1                    ! interior advective fluxes 
     124         DO jj = 2, jpjm1                       ! 1/4 * Vertical transport 
     125            DO ji = fs_2, fs_jpim1 
     126               zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * wn(ji,jj,jk) 
     127            END DO 
     128         END DO 
     129         DO jj = 2, jpjm1 
    143130            DO ji = fs_2, fs_jpim1   ! vector opt. 
    144                ua(ji,jj,jk) =  ua(ji,jj,jk) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) )    & 
    145                   &  / ( e1e2u(ji,jj) * e3u_n(ji,jj,jk) ) 
    146                va(ji,jj,jk) =  va(ji,jj,jk) - ( zfv_vw(ji,jj,jk) - zfv_vw(ji,jj,jk+1) )    & 
    147                   &  / ( e1e2v(ji,jj) * e3v_n(ji,jj,jk) ) 
     131               zfu_uw(ji,jj,jk) = ( zfw(ji,jj,jk) + zfw(ji+1,jj  ,jk) ) * ( un(ji,jj,jk) + un(ji,jj,jk-1) ) 
     132               zfv_vw(ji,jj,jk) = ( zfw(ji,jj,jk) + zfw(ji  ,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji,jj,jk-1) ) 
    148133            END DO 
    149134         END DO 
    150135      END DO 
    151136      ! 
    152       IF( l_trddyn ) THEN                          ! save the vertical advection trend for diagnostic 
     137      DO jk = 1, jpkm1                    ! divergence of vertical momentum flux divergence 
     138         DO jj = 2, jpjm1  
     139            DO ji = fs_2, fs_jpim1   ! vector opt. 
     140               ua(ji,jj,jk) = ua(ji,jj,jk) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) ) * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk) 
     141               va(ji,jj,jk) = va(ji,jj,jk) - ( zfv_vw(ji,jj,jk) - zfv_vw(ji,jj,jk+1) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 
     142            END DO 
     143         END DO 
     144      END DO 
     145      ! 
     146      IF( l_trddyn ) THEN                 ! trends: send trend to trddyn for diagnostic 
    153147         zfu_t(:,:,:) = ua(:,:,:) - zfu_t(:,:,:) 
    154148         zfv_t(:,:,:) = va(:,:,:) - zfv_t(:,:,:) 
    155149         CALL trd_dyn( zfu_t, zfv_t, jpdyn_zad, kt ) 
    156150      ENDIF 
    157       !                                            ! Control print 
     151      !                                   ! Control print 
    158152      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' cen2 adv - Ua: ', mask1=umask,   & 
    159153         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90

    r5866 r5883  
    100100      zlu_uv(:,:,:,:) = 0._wp  
    101101      zlv_vu(:,:,:,:) = 0._wp  
    102  
    103       IF( l_trddyn ) THEN           ! Save ua and va trends 
     102      ! 
     103      IF( l_trddyn ) THEN           ! trends: store the input trends 
    104104         zfu_uw(:,:,:) = ua(:,:,:) 
    105105         zfv_vw(:,:,:) = va(:,:,:) 
    106106      ENDIF 
    107  
    108107      !                                      ! =========================== ! 
    109108      DO jk = 1, jpkm1                       !  Laplacian of the velocity  ! 
     
    115114         DO jj = 2, jpjm1                          ! laplacian 
    116115            DO ji = fs_2, fs_jpim1   ! vector opt. 
    117                ! 
    118116               zlu_uu(ji,jj,jk,1) = ( ub (ji+1,jj  ,jk) - 2.*ub (ji,jj,jk) + ub (ji-1,jj  ,jk) ) * umask(ji,jj,jk) 
    119117               zlv_vv(ji,jj,jk,1) = ( vb (ji  ,jj+1,jk) - 2.*vb (ji,jj,jk) + vb (ji  ,jj-1,jk) ) * vmask(ji,jj,jk) 
     
    136134      CALL lbc_lnk( zlv_vv(:,:,:,1), 'V', 1. )   ;   CALL lbc_lnk( zlv_vu(:,:,:,1), 'V', 1. ) 
    137135      CALL lbc_lnk( zlv_vv(:,:,:,2), 'V', 1. )   ;   CALL lbc_lnk( zlv_vu(:,:,:,2), 'V', 1. )  
    138        
     136      ! 
    139137      !                                      ! ====================== ! 
    140138      !                                      !  Horizontal advection  ! 
     
    149147               zvj = ( vn(ji,jj,jk) + vn(ji  ,jj+1,jk) ) 
    150148               ! 
    151                IF (zui > 0) THEN   ;   zl_u = zlu_uu(ji  ,jj,jk,1) 
    152                ELSE                ;   zl_u = zlu_uu(ji+1,jj,jk,1) 
    153                ENDIF 
    154                IF (zvj > 0) THEN   ;   zl_v = zlv_vv(ji,jj  ,jk,1) 
    155                ELSE                ;   zl_v = zlv_vv(ji,jj+1,jk,1) 
     149               IF( zui > 0 ) THEN   ;   zl_u = zlu_uu(ji  ,jj,jk,1) 
     150               ELSE                 ;   zl_u = zlu_uu(ji+1,jj,jk,1) 
     151               ENDIF 
     152               IF( zvj > 0 ) THEN   ;   zl_v = zlv_vv(ji,jj  ,jk,1) 
     153               ELSE                 ;   zl_v = zlv_vv(ji,jj+1,jk,1) 
    156154               ENDIF 
    157155               ! 
     
    165163               zfuj = ( zfu(ji,jj,jk) + zfu(ji  ,jj+1,jk) ) 
    166164               zfvi = ( zfv(ji,jj,jk) + zfv(ji+1,jj  ,jk) ) 
    167                IF (zfuj > 0) THEN   ;    zl_v = zlv_vu( ji  ,jj  ,jk,1) 
    168                ELSE                 ;    zl_v = zlv_vu( ji+1,jj,jk,1) 
    169                ENDIF 
    170                IF (zfvi > 0) THEN   ;    zl_u = zlu_uv( ji,jj  ,jk,1) 
    171                ELSE                 ;    zl_u = zlu_uv( ji,jj+1,jk,1) 
     165               IF( zfuj > 0 ) THEN   ;    zl_v = zlv_vu( ji  ,jj  ,jk,1) 
     166               ELSE                  ;    zl_v = zlv_vu( ji+1,jj,jk,1) 
     167               ENDIF 
     168               IF( zfvi > 0 ) THEN   ;    zl_u = zlu_uv( ji,jj  ,jk,1) 
     169               ELSE                  ;    zl_u = zlu_uv( ji,jj+1,jk,1) 
    172170               ENDIF 
    173171               ! 
     
    190188         END DO 
    191189      END DO 
    192       IF( l_trddyn ) THEN                          ! save the horizontal advection trend for diagnostic 
     190      IF( l_trddyn ) THEN                          ! trends: send trends to trddyn for diagnostic 
    193191         zfu_uw(:,:,:) = ua(:,:,:) - zfu_uw(:,:,:) 
    194192         zfv_vw(:,:,:) = va(:,:,:) - zfv_vw(:,:,:) 
     
    197195         zfv_t(:,:,:) = va(:,:,:) 
    198196      ENDIF 
    199  
    200197      !                                      ! ==================== ! 
    201198      !                                      !  Vertical advection  ! 
    202       DO jk = 1, jpkm1                       ! ==================== ! 
    203          !                                         ! Vertical volume fluxesÊ 
    204          zfw(:,:,jk) = 0.25 * e1e2t(:,:) * wn(:,:,jk) 
    205          ! 
    206          IF( jk == 1 ) THEN                        ! surface/bottom advective fluxes                    
    207             zfu_uw(:,:,jpk) = 0.e0                      ! Bottom  value : flux set to zero 
    208             zfv_vw(:,:,jpk) = 0.e0 
    209             !                                           ! Surface value : 
    210             IF( .NOT.ln_linssh ) THEN                        ! variable volume : flux set to zero 
    211                zfu_uw(:,:, 1 ) = 0._wp 
    212                zfv_vw(:,:, 1 ) = 0._wp 
    213             ELSE                                             ! constant volume : advection through the surface 
    214                DO jj = 2, jpjm1 
    215                   DO ji = fs_2, fs_jpim1 
    216                      zfu_uw(ji,jj, 1 ) = 2._wp * ( zfw(ji,jj,1) + zfw(ji+1,jj  ,1) ) * un(ji,jj,1) 
    217                      zfv_vw(ji,jj, 1 ) = 2._wp * ( zfw(ji,jj,1) + zfw(ji  ,jj+1,1) ) * vn(ji,jj,1) 
    218                   END DO 
    219                END DO 
    220             ENDIF 
    221          ELSE                                      ! interior fluxes 
    222             DO jj = 2, jpjm1 
    223                DO ji = fs_2, fs_jpim1   ! vector opt. 
    224                   zfu_uw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji+1,jj  ,jk) ) * ( un(ji,jj,jk) + un(ji,jj,jk-1) ) 
    225                   zfv_vw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji  ,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji,jj,jk-1) ) 
    226                END DO 
    227             END DO 
    228          ENDIF 
    229       END DO 
    230       DO jk = 1, jpkm1                             ! divergence of vertical momentum flux divergence 
    231          DO jj = 2, jpjm1  
    232             DO ji = fs_2, fs_jpim1   ! vector opt. 
    233                ua(ji,jj,jk) =  ua(ji,jj,jk) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) )    & 
    234                   &  / ( e1e2u(ji,jj) * e3u_n(ji,jj,jk) ) 
    235                va(ji,jj,jk) =  va(ji,jj,jk) - ( zfv_vw(ji,jj,jk) - zfv_vw(ji,jj,jk+1) )    & 
    236                   &  / ( e1e2v(ji,jj) * e3v_n(ji,jj,jk) ) 
    237             END DO 
    238          END DO 
    239       END DO 
    240       ! 
    241       IF( l_trddyn ) THEN                          ! save the vertical advection trend for diagnostic 
     199      !                                      ! ==================== ! 
     200      DO jj = 2, jpjm1                             ! surface/bottom advective fluxes set to zero                   
     201         DO ji = fs_2, fs_jpim1 
     202            zfu_uw(ji,jj,jpk) = 0._wp 
     203            zfv_vw(ji,jj,jpk) = 0._wp 
     204            zfu_uw(ji,jj, 1 ) = 0._wp 
     205            zfv_vw(ji,jj, 1 ) = 0._wp 
     206         END DO 
     207      END DO 
     208      IF( ln_linssh ) THEN                         ! constant volume : advection through the surface 
     209         DO jj = 2, jpjm1 
     210            DO ji = fs_2, fs_jpim1 
     211               zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * wn(ji,jj,1) + e1e2t(ji+1,jj) * wn(ji+1,jj,1) ) * un(ji,jj,1) 
     212               zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * wn(ji,jj,1) + e1e2t(ji,jj+1) * wn(ji,jj+1,1) ) * vn(ji,jj,1) 
     213            END DO 
     214         END DO 
     215      ENDIF 
     216      DO jk = 2, jpkm1                          ! interior fluxes 
     217         DO jj = 2, jpjm1 
     218            DO ji = fs_2, fs_jpim1 
     219               zfw(ji,jj,jk) = 0.25 * e1e2t(ji,jj) * wn(ji,jj,jk) 
     220            END DO 
     221         END DO 
     222         DO jj = 2, jpjm1 
     223            DO ji = fs_2, fs_jpim1   ! vector opt. 
     224               zfu_uw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji+1,jj,jk) ) * ( un(ji,jj,jk) + un(ji,jj,jk-1) ) 
     225               zfv_vw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji,jj+1,jk) ) * ( vn(ji,jj,jk) + vn(ji,jj,jk-1) ) 
     226            END DO 
     227         END DO 
     228      END DO 
     229      DO jk = 1, jpkm1                          ! divergence of vertical momentum flux divergence 
     230         DO jj = 2, jpjm1 
     231            DO ji = fs_2, fs_jpim1   ! vector opt. 
     232               ua(ji,jj,jk) =  ua(ji,jj,jk) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) ) * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk) 
     233               va(ji,jj,jk) =  va(ji,jj,jk) - ( zfv_vw(ji,jj,jk) - zfv_vw(ji,jj,jk+1) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 
     234            END DO 
     235         END DO 
     236      END DO 
     237      ! 
     238      IF( l_trddyn ) THEN                       ! save the vertical advection trend for diagnostic 
    242239         zfu_t(:,:,:) = ua(:,:,:) - zfu_t(:,:,:) 
    243240         zfv_t(:,:,:) = va(:,:,:) - zfv_t(:,:,:) 
    244241         CALL trd_dyn( zfu_t, zfv_t, jpdyn_zad, kt ) 
    245242      ENDIF 
    246       !                                            ! Control print 
     243      !                                         ! Control print 
    247244      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' ubs2 adv - Ua: ', mask1=umask,   & 
    248245         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynbfr.F90

    r5845 r5883  
    6363        zm1_2dt = - 1._wp / ( 2._wp * rdt ) 
    6464 
    65         IF( l_trddyn )   THEN                      ! temporary save of ua and va trends 
    66            CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
     65        IF( l_trddyn ) THEN      ! trends: store the input trends 
     66           CALL wrk_alloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    6767           ztrdu(:,:,:) = ua(:,:,:) 
    6868           ztrdv(:,:,:) = va(:,:,:) 
     
    8080           END DO 
    8181        END DO 
    82          
    83         IF ( ln_isfcav ) THEN 
     82        ! 
     83        IF( ln_isfcav ) THEN        ! ocean cavities 
    8484           DO jj = 2, jpjm1 
    8585              DO ji = 2, jpim1 
     
    9797           END DO 
    9898        END IF 
    99  
    10099        ! 
    101         IF( l_trddyn )   THEN                      ! save the vertical diffusive trends for further diagnostics 
     100        IF( l_trddyn ) THEN      ! trends: send trends to trddyn for further diagnostics 
    102101           ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    103102           ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    104103           CALL trd_dyn( ztrdu(:,:,:), ztrdv(:,:,:), jpdyn_bfr, kt ) 
    105            CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
     104           CALL wrk_dealloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    106105        ENDIF 
    107106        !                                          ! print mean trends (used for debugging) 
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_lap_blp.F90

    r5866 r5883  
    44   !! Ocean dynamics:  lateral viscosity trend (laplacian and bilaplacian) 
    55   !!====================================================================== 
    6    !! History :  OPA  ! 1990-09 (G. Madec) Original code 
    7    !!            4.0  ! 1991-11 (G. Madec) 
    8    !!            6.0  ! 1996-01 (G. Madec) statement function for e3 and ahm 
    9    !!   NEMO     1.0  ! 2002-06 (G. Madec)  F90: Free form and module 
    10    !!             -   ! 2004-08 (C. Talandier) New trends organization 
    11    !!            3.7  ! 2014-01  (F. Lemarie, G. Madec)  restructuration/simplification of ahm specification, 
    12    !!                 !                                  add velocity dependent coefficient and optional read in file 
     6   !! History : 3.7  ! 2014-01  (G. Madec, S. Masson)  Original code, re-entrant laplacian 
    137   !!---------------------------------------------------------------------- 
    148 
Note: See TracChangeset for help on using the changeset viewer.