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 10115 for NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90 – NEMO

Ignore:
Timestamp:
2018-09-12T15:59:13+02:00 (6 years ago)
Author:
cbricaud
Message:

phase 3.6 coarsening branch with nemo_3.6_rev9192

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90

    r7806 r10115  
    8181      ! 
    8282      REAL(wp), POINTER, DIMENSION(:,:)     :: zarea_ssh , zbotpres       ! 2D workspace  
    83       REAL(wp), POINTER, DIMENSION(:,:)     :: pe                         ! 2D workspace  
     83      REAL(wp), POINTER, DIMENSION(:,:)     :: zpe                        ! 2D workspace  
    8484      REAL(wp), POINTER, DIMENSION(:,:,:)   :: zrhd , zrhop               ! 3D workspace 
    8585      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztsn                       ! 4D workspace 
     
    9191      IF( kt == nit000 )     CALL dia_ar5_init 
    9292  
    93       CALL wrk_alloc( jpi , jpj              , zarea_ssh , zbotpres, pe ) 
    94       CALL wrk_alloc( jpi , jpj , jpk        , zrhd      , zrhop    ) 
    95       CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn                 ) 
     93      CALL wrk_alloc( jpi , jpj              , zarea_ssh , zbotpres, zpe ) 
     94      CALL wrk_alloc( jpi , jpj , jpk        , zrhd      , zrhop         ) 
     95      CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn                      ) 
    9696 
    9797      zarea_ssh(:,:) = area(:,:) * sshn(:,:) 
     
    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         zpe(:,:) = 0._wp 
     209         IF( lk_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 =   ( fsdepw(ji,jj,jk  ) - fsdept(ji,jj,jk) )   & 
     215                           &  / ( fsdept(ji,jj,jk-1) - fsdept(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 * fse3w(ji, jj, jk) 
     232                  END DO 
     233               END DO 
     234            END DO 
     235         ENDIF 
     236         CALL lbc_lnk(zpe, 'T', 1._wp)          
     237         CALL iom_put( 'tnpeo', zpe ) 
    237238      ENDIF 
    238239      ! 
    239       CALL wrk_dealloc( jpi , jpj              , zarea_ssh , zbotpres, pe ) 
    240       CALL wrk_dealloc( jpi , jpj , jpk        , zrhd      , zrhop    ) 
    241       CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn                 ) 
     240      CALL wrk_dealloc( jpi , jpj              , zarea_ssh , zbotpres, zpe ) 
     241      CALL wrk_dealloc( jpi , jpj , jpk        , zrhd      , zrhop         ) 
     242      CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn                      ) 
    242243      ! 
    243244      IF( nn_timing == 1 )   CALL timing_stop('dia_ar5') 
Note: See TracChangeset for help on using the changeset viewer.