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 8077 – NEMO

Changeset 8077


Ignore:
Timestamp:
2017-05-26T11:13:07+02:00 (7 years ago)
Author:
timgraham
Message:

#1884 fix bug in diaar5 for calculation of tnpeo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90

    r7515 r8077  
    206206      ! Exclude points where rn2 is negative as convection kicks in here and 
    207207      ! work is not being done against stratification 
    208           pe(:,:) = 0._wp 
    209           IF( lk_zdfddm ) THEN 
    210              DO ji=1,jpi 
    211                 DO jj=1,jpj 
    212                    DO jk=1,jpk 
    213                       zrw =   ( fsdepw(ji,jj,jk  ) - fsdept(ji,jj,jk) )   & 
    214                          &  / ( fsdept(ji,jj,jk-1) - fsdept(ji,jj,jk) ) 
    215                       ! 
    216                       zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 
    217                       zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 
    218                       ! 
    219                       pe(ji, jj) = pe(ji, jj) - MIN(0._wp, rn2(ji,jj,jk)) * & 
    220                            &       grav * (avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) )  & 
    221                            &       - fsavs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 
    222  
    223                    ENDDO 
    224                 ENDDO 
    225              ENDDO 
     208         pe(:,:) = 0._wp 
     209         IF( ln_zdfddm ) THEN 
     210            DO jk = 2, jpk 
     211               DO jj = 1, jpj 
     212                  DO ji = 1, jpi 
     213                     IF( rn2(ji,jj,jk) > 0._wp ) THEN 
     214                        zrw =   ( gdepw_n(ji,jj,jk  ) - gdept_n(ji,jj,jk) )   & 
     215                           &  / ( gdept_n(ji,jj,jk-1) - gdept_n(ji,jj,jk) ) 
     216                        ! 
     217                        zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 
     218                        zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 
     219                        ! 
     220                        zpe(ji, jj) = zpe(ji, jj)            & 
     221                           &        -  grav * (    avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) )  & 
     222                           &                   - fsavs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 
     223                     ENDIF 
     224                  END DO 
     225               END DO 
     226             END DO 
    226227          ELSE 
    227              DO ji=1,jpi 
    228                 DO jj=1,jpj 
    229                    DO jk=1,jpk 
    230                        pe(ji,jj) = pe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * fse3w(ji, jj, jk) 
    231                    ENDDO 
    232                 ENDDO 
    233              ENDDO 
    234           ENDIF 
    235           CALL lbc_lnk(pe, 'T', 1._wp)          
    236           CALL iom_put( 'tnpeo', pe ) 
     228            DO jk = 1, jpk 
     229               DO ji = 1, jpi 
     230                  DO jj = 1, jpj 
     231                     zpe(ji,jj) = zpe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * e3w_n(ji, jj, jk) 
     232                  END DO 
     233               END DO 
     234            END DO 
     235         ENDIF 
     236         CALL lbc_lnk(pe, 'T', 1._wp)          
     237         CALL iom_put( 'tnpeo', pe ) 
    237238      ENDIF 
    238239      ! 
Note: See TracChangeset for help on using the changeset viewer.