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.
Ticket Diff – NEMO

Changes between Initial Version and Version 1 of Ticket #1884


Ignore:
Timestamp:
2017-04-13T15:27:42+02:00 (7 years ago)
Author:
gm
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1884 – Description

    initial v1  
    22key_diaar5 defined (diagnostics used for CMIP6) 
    33When double diffusion parameterization is used (key_zdfddm), the diagnostic of the work done against stratification by vertical mixing  ( iom_use( 'tnpeo' ) ) is wrong 
     4In addition there is a out-of-bound  : the jk-do loop should start at jk=2, not 1 !  In case of lk_zdfddm=F we can also start with jk=2 since act(:,:,1) is always zero. 
    45 
    56This concerns the v3.6_STABLE and trunk versions. 
     
    5960 
    6061{{{ 
    61           IF( lk_zdfddm ) THEN 
    62              DO ji=1,jpi 
    63                 DO jj=1,jpj 
    64                    DO jk=1,jpk 
    65                        IF( rn2(ji,jj,jk) > 0._wp ) THEN 
    66                           zrw =   ( gdepw_n(ji,jj,jk  ) - gdept_n(ji,jj,jk) )   & 
    67                             &   / ( gdept_n(ji,jj,jk-1) - gdept_n(ji,jj,jk) ) 
    68                          ! 
    69                          zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 
    70                          zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 
    71                          ! 
    72                          zpe(ji, jj) = zpe(ji, jj)  & 
    73                            &   - grav * (    avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) )  & 
    74                            &             - fsavs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 
    75  
    76                       ENDIF 
    77                    END DO 
    78                 END DO 
     62         IF( ln_zdfddm ) THEN 
     63            DO jk = 2, jpk 
     64               DO jj = 1, jpj 
     65                  DO ji = 1, jpi 
     66                     IF( rn2(ji,jj,jk) > 0._wp ) THEN 
     67                        zrw =   ( gdepw_n(ji,jj,jk  ) - gdept_n(ji,jj,jk) )   & 
     68                           &  / ( gdept_n(ji,jj,jk-1) - gdept_n(ji,jj,jk) ) 
     69                        ! 
     70                        zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 
     71                        zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 
     72                        ! 
     73                        zpe(ji, jj) = zpe(ji, jj)            & 
     74                           &        -  grav * (  avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) )  & 
     75                           &                   - avs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 
     76                     ENDIF 
     77                  END DO 
     78               END DO 
    7979             END DO 
    8080          ELSE 
    81              ... 
     81            DO jk = 1, jpk 
     82               DO ji = 1, jpi 
     83                  DO jj = 1, jpj 
     84                     zpe(ji,jj) = zpe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * e3w_n(ji, jj, jk) 
     85                  END DO 
     86               END DO 
     87            END DO 
     88         ENDIF 
    8289}}} 
    83  
     90NB: I also invert  the-do-loop order (i.e. from i-j-k to k-j-i) as it is faster due to the model 3D array structure