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 2977 for branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/OPA_SRC/ZDF – NEMO

Ignore:
Timestamp:
2011-10-22T15:46:41+02:00 (13 years ago)
Author:
cetlod
Message:

Add in branch 2011/dev_LOCEAN_2011 changes from 2011/dev_r2787_PISCES_improvment, 2011/dev_r2787_LOCEAN_offline_fldread and 2011/dev_r2787_LOCEAN3_TRA_TRP branches, see ticket #877

Location:
branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/OPA_SRC/ZDF
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r2715 r2977  
    131131      !!              coefficients using the GLS turbulent closure scheme. 
    132132      !!---------------------------------------------------------------------- 
    133       USE oce,     z_elem_a  =>   ua   ! use ua as workspace 
    134       USE oce,     z_elem_b  =>   va   ! use va as workspace 
    135       USE oce,     z_elem_c  =>   ta   ! use ta as workspace 
    136       USE oce,     psi       =>   sa   ! use sa as workspace 
     133      USE oce     , ONLY z_elem_a  =>   ua   ! use ua as workspace 
     134      USE oce     , ONLY z_elem_b  =>   va   ! use va as workspace 
     135      USE oce     , ONLY tsa                 ! use tsa as workspace 
    137136      USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    138137      USE wrk_nemo, ONLY: zdep  => wrk_2d_1 
     
    152151      REAL(wp) ::   prod, buoy, diss, zdiss, sm         !   -      - 
    153152      REAL(wp) ::   gh, gm, shr, dif, zsqen, zav        !   -      - 
     153      REAL(wp), POINTER, DIMENSION(:,:,:) :: z_elem_c, psi 
    154154      !!-------------------------------------------------------------------- 
    155155 
     
    157157         CALL ctl_stop('zdf_gls: requested workspace arrays unavailable.')   ;   RETURN 
    158158      END IF 
     159      ! 
     160      z_elem_c  => tsa(:,:,:,1) 
     161      psi       => tsa(:,:,:,2) 
    159162 
    160163      ! Preliminary computing 
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90

    r2715 r2977  
    206206      !!         the equation number. (LMD94, here after) 
    207207      !!---------------------------------------------------------------------- 
    208 #if defined  key_zdfddm 
    209208      USE oce     , zviscos => ua   ! temp. array for viscosities use ua as workspace 
    210       USE oce     , zdiffut => ta   ! temp. array for diffusivities use sa as workspace 
    211       USE oce     , zdiffus => sa   ! temp. array for diffusivities use sa as workspace 
    212 #else 
    213       USE oce     , zviscos => ua   ! temp. array for viscosities use ua as workspace 
    214       USE oce     , zdiffut => ta   ! temp. array for diffusivities use sa as workspace 
    215 #endif 
     209      USE oce     , zdiffut => va   ! temp. array for diffusivities use sa as workspace 
    216210      USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released, wrk_in_use_xz, wrk_not_released_xz 
    217211      USE wrk_nemo, ONLY: zBo    => wrk_2d_1, &  ! Surface buoyancy forcing, 
     
    229223                          zblct => wrk_xz_2      !  diffusivities/viscosities 
    230224#if defined key_zdfddm 
    231       USE wrk_nemo, ONLY: zblcs => wrk_xz_3 
     225      USE wrk_nemo, ONLY: zdiffus => wrk_3d_1 
     226      USE wrk_nemo, ONLY: zblcs   => wrk_xz_3 
    232227#endif 
    233228      !! 
     
    270265      REAL(wp), POINTER, DIMENSION(:,:) ::     zdifs 
    271266      REAL(wp), POINTER, DIMENSION(:)   ::   za2s, za3s, zkmps 
    272       REAL(wp) ::                       zkm1s 
     267      REAL(wp) ::                            zkm1s 
    273268#endif 
    274269      !!-------------------------------------------------------------------- 
     
    276271      IF( wrk_in_use(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR.   & 
    277272          wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10,11)          .OR.   & 
     273          wrk_in_use(3, 1)                                .OR. & 
    278274          wrk_in_use_xz(1,2,3)                              ) THEN 
    279275         CALL ctl_stop('zdf_kpp : requested workspace arrays unavailable.')   ;   RETURN 
     
    369365               ! only retains positive value of rrau 
    370366               zrrau = MAX( rrau(ji,jj,jk), epsln ) 
    371                zds   = sn(ji,jj,jk-1) - sn(ji,jj,jk) 
     367               zds   = tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) 
    372368               IF( zrrau > 1. .AND. zds > 0.) THEN 
    373369                  ! 
     
    418414         DO ji = fs_2, fs_jpim1      
    419415            IF( nn_eos < 1) THEN    
    420                zt     = tn(ji,jj,1) 
    421                zs     = sn(ji,jj,1) - 35.0 
     416               zt     = tsn(ji,jj,1,jp_tem) 
     417               zs     = tsn(ji,jj,1,jp_sal) - 35.0 
    422418               zh     = fsdept(ji,jj,1) 
    423419               !  potential volumic mass 
     
    449445 
    450446               zthermal = zbeta * zalbet / ( rcp * zrhos + epsln ) 
    451                zhalin   = zbeta * sn(ji,jj,1) * rcs 
     447               zhalin   = zbeta * tsn(ji,jj,1,jp_sal) * rcs 
    452448            ELSE 
    453449               zrhos    = rhop(ji,jj,1) + rau0 * ( 1. - tmask(ji,jj,1) ) 
    454450               zthermal = rn_alpha / ( rcp * zrhos + epsln ) 
    455                zhalin   = rn_beta * sn(ji,jj,1) * rcs 
     451               zhalin   = rn_beta * tsn(ji,jj,1,jp_sal) * rcs 
    456452            ENDIF 
    457453            ! Radiative surface buoyancy force 
     
    462458            wt0(ji,jj) = - ( qsr(ji,jj) + qns(ji,jj) )* ro0cpr * tmask(ji,jj,1) 
    463459            ! Surface salinity flux for non-local term 
    464             ws0(ji,jj) = - ( ( emps(ji,jj)-rnf(ji,jj) ) * sn(ji,jj,1) * rcs ) * tmask(ji,jj,1)  
     460            ws0(ji,jj) = - ( ( emps(ji,jj)-rnf(ji,jj) ) * tsn(ji,jj,1,jp_sal) * rcs ) * tmask(ji,jj,1)  
    465461         ENDDO 
    466462      ENDDO 
     
    543539               ! zref = gdept(1) 
    544540               zref = fsdept(ji,jj,1) 
    545                zt   = tn(ji,jj,1) 
    546                zs   = sn(ji,jj,1) 
     541               zt   = tsn(ji,jj,1,jp_tem) 
     542               zs   = tsn(ji,jj,1,jp_sal) 
    547543               zrh  = rhop(ji,jj,1) 
    548544               zu   = ( ub(ji,jj,1) + ub(ji - 1,jj    ,1) ) / MAX( 1. , umask(ji,jj,1) + umask(ji - 1,jj   ,1) ) 
     
    556552               ! vertically integration over the upper epsilon*gdept(jk) ; del () array is computed once in zdf_kpp_init 
    557553               DO jm = 1, jpkm1 
    558                   zt   = zt  + del(jk,jm) * tn(ji,jj,jm) 
    559                   zs   = zs  + del(jk,jm) * sn(ji,jj,jm) 
     554                  zt   = zt  + del(jk,jm) * tsn(ji,jj,jm,jp_tem) 
     555                  zs   = zs  + del(jk,jm) * tsn(ji,jj,jm,jp_sal) 
    560556                  zu   = zu  + 0.5 * del(jk,jm) & 
    561557                     &            * ( ub(ji,jj,jm) + ub(ji - 1,jj,jm) ) & 
     
    567563               END DO 
    568564#endif 
    569                zsr = SQRT( ABS( sn(ji,jj,jk) ) ) 
     565               zsr = SQRT( ABS( tsn(ji,jj,jk,jp_sal) ) ) 
    570566               ! depth 
    571567               zh = fsdept(ji,jj,jk) 
     
    12341230         ENDIF 
    12351231 
    1236       IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR.   & 
    1237           wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10,11)          .OR.   & 
    1238           wrk_not_released_xz(1,2,3)                               )  & 
    1239           CALL ctl_stop('zdf_kpp : failed to release workspace arrays') 
     1232      IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR. & 
     1233          wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10,11)          .OR. & 
     1234          wrk_not_released(3, 1)                                .OR. & 
     1235          wrk_not_released_xz(1,2,3)  )   CALL ctl_stop('zdf_kpp : failed to release workspace arrays') 
    12401236      ! 
    12411237   END SUBROUTINE zdf_kpp 
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r2715 r2977  
    191191      !! --------------------------------------------------------------------- 
    192192      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released, iwrk_in_use, iwrk_not_released 
    193       USE oce     , ONLY:   zdiag => ua , zd_up => va , zd_lw => ta   ! (ua,va,ta) used as workspace 
     193      USE oce     , ONLY:   zdiag => ua          ! (ua,va) used  as workspace 
     194      USE oce     , ONLY:   tsa                  ! (tsa) used  as workspace 
    194195      USE wrk_nemo, ONLY:   imlc  => iwrk_2d_1   ! 2D INTEGER workspace 
    195196      USE wrk_nemo, ONLY:   zhlc  =>  wrk_2d_1   ! 2D REAL workspace 
    196197      USE wrk_nemo, ONLY:   zpelc =>  wrk_3d_1   ! 3D REAL workspace 
    197       ! 
     198      !! 
    198199      INTEGER  ::   ji, jj, jk                      ! dummy loop arguments 
    199200!!bfr      INTEGER  ::   ikbu, ikbv, ikbum1, ikbvm1      ! temporary scalar 
     
    208209      REAL(wp) ::   zzd_up, zzd_lw                  !    -         - 
    209210!!bfr      REAL(wp) ::   zebot                           !    -         - 
     211      REAL(wp), POINTER, DIMENSION(:,:,:) :: zd_up, zd_lw 
    210212      !!-------------------------------------------------------------------- 
    211213      ! 
     
    215217         CALL ctl_stop('tke_tke: requested workspace arrays unavailable')   ;   RETURN 
    216218      END IF 
     219      ! 
     220      zd_up => tsa(:,:,:,1)  
     221      zd_lw => tsa(:,:,:,2)  
    217222 
    218223      zbbrau = rn_ebb / rau0       ! Local constant initialisation 
     
    471476      !!              - avmu, avmv : now vertical eddy viscosity at uw- and vw-points 
    472477      !!---------------------------------------------------------------------- 
    473       USE oce, ONLY:   zmpdl => ua , zmxlm => va , zmxld => ta   ! (ua,va,ta) used as workspace 
     478      USE oce, ONLY:  zmpdl => ua    ! ua used as workspace 
     479      USE oce, ONLY:  tsa            ! use tsa as workspace 
    474480      !! 
    475481      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    477483      REAL(wp) ::   zdku, zpdlr, zri, zsqen     !   -      - 
    478484      REAL(wp) ::   zdkv, zemxl, zemlm, zemlp   !   -      - 
     485      REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxlm, zmxld 
    479486      !!-------------------------------------------------------------------- 
     487      ! 
     488      zmxlm => tsa(:,:,:,1)  
     489      zmxld => tsa(:,:,:,2)  
    480490 
    481491      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
Note: See TracChangeset for help on using the changeset viewer.