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 8143 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/TRD – NEMO

Ignore:
Timestamp:
2017-06-06T15:55:44+02:00 (7 years ago)
Author:
gm
Message:

#1880 (HPC-09) - step-7: top/bottom drag computed at T-points, zdfbfr.F90 replaced by zdfdrg.F90 + changes in namelist

Location:
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/TRD
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/TRD/trd_oce.F90

    r7646 r8143  
    7272   INTEGER, PUBLIC, PARAMETER ::   jpdyn_atf  = 10     !: Asselin time filter 
    7373   INTEGER, PUBLIC, PARAMETER ::   jpdyn_tau  = 11     !: surface stress 
    74    INTEGER, PUBLIC, PARAMETER ::   jpdyn_bfri = 12     !: implicit bottom friction (ln_bfrimp=.TRUE.) 
     74   INTEGER, PUBLIC, PARAMETER ::   jpdyn_bfri = 12     !: implicit bottom friction (ln_drgimp=.TRUE.) 
    7575   INTEGER, PUBLIC, PARAMETER ::   jpdyn_ken  = 13     !: use for calculation of KE 
    7676   ! 
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/TRD/trddyn.F90

    r6140 r8143  
    1515   USE oce            ! ocean dynamics and tracers variables 
    1616   USE dom_oce        ! ocean space and time domain variables 
    17    USE zdf_oce        ! ocean vertical physics variables 
     17   USE phycst         ! physical constants 
     18   USE sbc_oce        ! surface boundary condition: ocean 
     19   USE zdf_oce        ! ocean vertical physics: variables 
     20   USE zdfdrg         ! ocean vertical physics: bottom friction 
    1821   USE trd_oce        ! trends: ocean variables 
    19    USE zdfbfr         ! bottom friction 
    20    USE sbc_oce        ! surface boundary condition: ocean 
    21    USE phycst         ! physical constants 
    2222   USE trdken         ! trends: Kinetic ENergy  
    2323   USE trdglo         ! trends: global domain averaged 
    2424   USE trdvor         ! trends: vertical averaged vorticity  
    2525   USE trdmxl         ! trends: mixed layer averaged  
     26   ! 
    2627   USE in_out_manager ! I/O manager 
    2728   USE lbclnk         ! lateral boundary condition  
    2829   USE iom            ! I/O manager library 
    2930   USE lib_mpp        ! MPP library 
    30    USE wrk_nemo       ! Memory allocation 
    3131 
    3232   IMPLICIT NONE 
    3333   PRIVATE 
    3434 
    35    PUBLIC trd_dyn        ! called by all dynXX modules 
     35   PUBLIC trd_dyn        ! called by all dynXXX modules 
    3636 
    3737   !! * Substitutions 
    3838#  include "vectopt_loop_substitute.h90" 
    3939   !!---------------------------------------------------------------------- 
    40    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     40   !! NEMO/OPA 4.0 , NEMO Consortium (2017) 
    4141   !! $Id$ 
    4242   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    103103      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    104104      INTEGER ::   ikbu, ikbv   ! local integers 
    105       REAL(wp), POINTER, DIMENSION(:,:)   ::   z2dx, z2dy   ! 2D workspace  
    106       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z3dx, z3dy   ! 3D workspace  
     105      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   z2dx, z2dy   ! 2D workspace  
     106      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   z3dx, z3dy   ! 3D workspace  
    107107      !!---------------------------------------------------------------------- 
    108108      ! 
     
    118118      CASE( jpdyn_keg )   ;   CALL iom_put( "utrd_keg", putrd )    ! Kinetic Energy gradient (or had) 
    119119                              CALL iom_put( "vtrd_keg", pvtrd ) 
    120                               CALL wrk_alloc( jpi, jpj, jpk, z3dx, z3dy ) 
     120                              ALLOCATE( z3dx(jpi,jpj,jpk) , z3dy(jpi,jpj,jpk) ) 
    121121                              z3dx(:,:,:) = 0._wp                  ! U.dxU & V.dyV (approximation) 
    122122                              z3dy(:,:,:) = 0._wp 
     
    133133                              CALL iom_put( "utrd_udx", z3dx  ) 
    134134                              CALL iom_put( "vtrd_vdy", z3dy  ) 
    135                               CALL wrk_dealloc( jpi, jpj, jpk, z3dx, z3dy ) 
    136       CASE( jpdyn_zad )   ;   CALL iom_put( "utrd_zad", putrd )    ! vertical   advection 
     135                              DEALLOCATE( z3dx , z3dy ) 
     136      CASE( jpdyn_zad )   ;   CALL iom_put( "utrd_zad", putrd )    ! vertical advection 
    137137                              CALL iom_put( "vtrd_zad", pvtrd ) 
    138       CASE( jpdyn_ldf )   ;   CALL iom_put( "utrd_ldf", putrd )    ! lateral diffusion 
     138      CASE( jpdyn_ldf )   ;   CALL iom_put( "utrd_ldf", putrd )    ! lateral  diffusion 
    139139                              CALL iom_put( "vtrd_ldf", pvtrd ) 
    140140      CASE( jpdyn_zdf )   ;   CALL iom_put( "utrd_zdf", putrd )    ! vertical diffusion  
    141141                              CALL iom_put( "vtrd_zdf", pvtrd ) 
     142                              ! 
    142143                              !                                    ! wind stress trends 
    143                               CALL wrk_alloc( jpi, jpj, z2dx, z2dy ) 
     144                              ALLOCATE( z2dx(jpi,jpj) , z2dy(jpi,jpj) ) 
    144145                              z2dx(:,:) = ( utau_b(:,:) + utau(:,:) ) / ( e3u_n(:,:,1) * rau0 ) 
    145146                              z2dy(:,:) = ( vtau_b(:,:) + vtau(:,:) ) / ( e3v_n(:,:,1) * rau0 ) 
    146147                              CALL iom_put( "utrd_tau", z2dx ) 
    147148                              CALL iom_put( "vtrd_tau", z2dy ) 
    148                               CALL wrk_dealloc( jpi, jpj, z2dx, z2dy ) 
    149       CASE( jpdyn_bfr )       ! called if ln_bfrimp=T 
    150                               CALL iom_put( "utrd_bfr", putrd )    ! bottom friction (explicit case) 
    151                               CALL iom_put( "vtrd_bfr", pvtrd ) 
    152       CASE( jpdyn_atf )   ;   CALL iom_put( "utrd_atf", putrd )        ! asselin filter trends  
    153                               CALL iom_put( "vtrd_atf", pvtrd ) 
    154       CASE( jpdyn_bfri )  ;   IF( ln_bfrimp ) THEN                     ! bottom friction (implicit case) 
    155                                  CALL wrk_alloc( jpi, jpj, jpk, z3dx, z3dy ) 
     149                              DEALLOCATE( z2dx , z2dy ) 
     150                              !                                    ! bottom stress tends (implicit case) 
     151                              IF( ln_drgimp ) THEN 
     152                                 ALLOCATE( z3dx(jpi,jpj,jpk) , z3dy(jpi,jpj,jpk) ) 
    156153                                 z3dx(:,:,:) = 0._wp   ;   z3dy(:,:,:) = 0._wp  ! after velocity known (now filed at this stage) 
    157154                                 DO jk = 1, jpkm1 
     
    160157                                          ikbu = mbku(ji,jj)          ! deepest ocean u- & v-levels 
    161158                                          ikbv = mbkv(ji,jj) 
    162                                           z3dx(ji,jj,jk) = bfrua(ji,jj) * un(ji,jj,ikbu) / e3u_n(ji,jj,ikbu) 
    163                                           z3dy(ji,jj,jk) = bfrva(ji,jj) * vn(ji,jj,ikbv) / e3v_n(ji,jj,ikbv) 
     159                                          z3dx(ji,jj,jk) = 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) )*un(ji,jj,ikbu)/e3u_n(ji,jj,ikbu) 
     160                                          z3dy(ji,jj,jk) = 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) )*vn(ji,jj,ikbv)/e3v_n(ji,jj,ikbv) 
    164161                                       END DO 
    165162                                    END DO 
    166163                                 END DO 
    167                                  CALL lbc_lnk( z3dx, 'U', -1. ) ; CALL lbc_lnk( z3dy, 'V', -1. ) 
    168                                  CALL iom_put( "utrd_bfri", z3dx ) 
    169                                  CALL iom_put( "vtrd_bfri", z3dy ) 
    170                                  CALL wrk_dealloc( jpi, jpj, jpk, z3dx, z3dy ) 
    171                               ENDIF 
     164                                 CALL lbc_lnk( z3dx, 'U', -1. )   ;   CALL lbc_lnk( z3dy, 'V', -1. ) 
     165                                 CALL iom_put( "utrd_bfr", z3dx ) 
     166                                 CALL iom_put( "vtrd_bfr", z3dy ) 
     167                                 DEALLOCATE( z3dx , z3dy ) 
     168                              ENDIF 
     169      CASE( jpdyn_bfr )       ! called if ln_drgimp=F 
     170                              CALL iom_put( "utrd_bfr", putrd )    ! bottom friction (explicit case) 
     171                              CALL iom_put( "vtrd_bfr", pvtrd ) 
     172      CASE( jpdyn_atf )   ;   CALL iom_put( "utrd_atf", putrd )        ! asselin filter trends  
     173                              CALL iom_put( "vtrd_atf", pvtrd ) 
    172174      END SELECT 
    173175      ! 
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/TRD/trdglo.F90

    r7931 r8143  
    99 
    1010   !!---------------------------------------------------------------------- 
    11    !!   trd_glo      : domain averaged budget of trends (including kinetic energy and T^2 trends) 
    12    !!   glo_dyn_wri  : print dynamic trends in ocean.output file 
    13    !!   glo_tra_wri  : print global T & T^2 trends in ocean.output file 
    14    !!   trd_glo_init : initialization step 
     11   !!   trd_glo       : domain averaged budget of trends (including kinetic energy and T^2 trends) 
     12   !!   glo_dyn_wri   : print dynamic trends in ocean.output file 
     13   !!   glo_tra_wri   : print global T & T^2 trends in ocean.output file 
     14   !!   trd_glo_init  : initialization step 
    1515   !!---------------------------------------------------------------------- 
    16    USE oce             ! ocean dynamics and tracers variables 
    17    USE dom_oce         ! ocean space and time domain variables 
    18    USE sbc_oce         ! surface boundary condition: ocean 
    19    USE trd_oce         ! trends: ocean variables 
    20    USE phycst          ! physical constants 
    21    USE ldftra          ! lateral diffusion: eddy diffusivity & EIV coeff. 
    22    USE ldfdyn          ! ocean dynamics: lateral physics 
    23    USE zdf_oce         ! ocean vertical physics 
    24    USE zdfbfr          ! bottom friction 
    25    USE zdfddm          ! ocean vertical physics: double diffusion 
    26    USE eosbn2          ! equation of state 
    27    USE phycst          ! physical constants 
     16   USE oce            ! ocean dynamics and tracers variables 
     17   USE dom_oce        ! ocean space and time domain variables 
     18   USE sbc_oce        ! surface boundary condition: ocean 
     19   USE trd_oce        ! trends: ocean variables 
     20   USE phycst         ! physical constants 
     21   USE ldftra         ! lateral diffusion: eddy diffusivity & EIV coeff. 
     22   USE ldfdyn         ! ocean dynamics: lateral physics 
     23   USE zdf_oce        ! ocean vertical physics 
     24   USE zdfdrg         ! ocean vertical physics: bottom friction 
     25   USE zdfddm         ! ocean vertical physics: double diffusion 
     26   USE eosbn2         ! equation of state 
     27   USE phycst         ! physical constants 
    2828   ! 
    29    USE lib_mpp         ! distibuted memory computing library 
    30    USE in_out_manager  ! I/O manager 
    31    USE iom             ! I/O manager library 
    32    USE wrk_nemo        ! Memory allocation 
     29   USE lib_mpp        ! distibuted memory computing library 
     30   USE in_out_manager ! I/O manager 
     31   USE iom            ! I/O manager library 
    3332 
    3433   IMPLICIT NONE 
     
    7776      INTEGER ::   ikbu, ikbv      ! local integers 
    7877      REAL(wp)::   zvm, zvt, zvs, z1_2rau0   ! local scalars 
    79       REAL(wp), POINTER, DIMENSION(:,:)  :: ztswu, ztswv, z2dx, z2dy   ! 2D workspace  
    80       !!---------------------------------------------------------------------- 
    81  
    82       CALL wrk_alloc( jpi, jpj, ztswu, ztswv, z2dx, z2dy ) 
    83  
     78      REAL(wp), DIMENSION(jpi,jpj)  :: ztswu, ztswv, z2dx, z2dy   ! 2D workspace  
     79      !!---------------------------------------------------------------------- 
     80      ! 
    8481      IF( MOD(kt,nn_trd) == 0 .OR. kt == nit000 .OR. kt == nitend ) THEN 
    8582         ! 
     
    123120               DO jj = 1, jpjm1 
    124121                  DO ji = 1, jpim1 
    125                      zvt = ptrdx(ji,jj,jk) * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
    126                         &                  * e1u    (ji  ,jj  ) * e2u    (ji,jj) * e3u_n(ji,jj,jk) 
    127                      zvs = ptrdy(ji,jj,jk) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk)   & 
    128                         &                  * e1v    (ji  ,jj  ) * e2v    (ji,jj) * e3u_n(ji,jj,jk) 
     122                     zvt = ptrdx(ji,jj,jk) * tmask_i(ji+1,jj) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
     123                        &                                     * e1e2u  (ji,jj) * e3u_n(ji,jj,jk) 
     124                     zvs = ptrdy(ji,jj,jk) * tmask_i(ji,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk)   & 
     125                        &                                     * e1e2v  (ji,jj) * e3u_n(ji,jj,jk) 
    129126                     umo(ktrd) = umo(ktrd) + zvt 
    130127                     vmo(ktrd) = vmo(ktrd) + zvs 
     
    138135               DO jj = 1, jpjm1 
    139136                  DO ji = 1, jpim1 
    140                      zvt = ( utau_b(ji,jj) + utau(ji,jj) ) * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
    141                         &                       * z1_2rau0 * e1u    (ji  ,jj  ) * e2u    (ji,jj) 
    142                      zvs = ( vtau_b(ji,jj) + vtau(ji,jj) ) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk)   & 
    143                         &                       * z1_2rau0 * e1v    (ji  ,jj  ) * e2v    (ji,jj) * e3u_n(ji,jj,jk) 
     137                     zvt = ( utau_b(ji,jj) + utau(ji,jj) ) * tmask_i(ji+1,jj) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
     138                        &                                                     * z1_2rau0       * e1e2u(ji,jj) 
     139                     zvs = ( vtau_b(ji,jj) + vtau(ji,jj) ) * tmask_i(ji,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk)   & 
     140                        &                                                     * z1_2rau0       * e1e2v(ji,jj) 
    144141                     umo(jpdyn_tau) = umo(jpdyn_tau) + zvt 
    145142                     vmo(jpdyn_tau) = vmo(jpdyn_tau) + zvs 
     
    151148            IF( ktrd == jpdyn_atf ) THEN     ! last trend (asselin time filter) 
    152149               ! 
    153                IF( ln_bfrimp ) THEN                   ! implicit bfr case: compute separately the bottom friction  
     150               IF( ln_drgimp ) THEN                   ! implicit drag case: compute separately the bottom friction  
    154151                  z1_2rau0 = 0.5_wp / rau0 
    155152                  DO jj = 1, jpjm1 
     
    157154                        ikbu = mbku(ji,jj)                  ! deepest ocean u- & v-levels 
    158155                        ikbv = mbkv(ji,jj) 
    159                         zvt = bfrua(ji,jj) * un(ji,jj,ikbu) * e1u(ji,jj) * e2v(ji,jj) 
    160                         zvs = bfrva(ji,jj) * vn(ji,jj,ikbv) * e1v(ji,jj) * e2v(ji,jj) 
     156                        zvt = 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * un(ji,jj,ikbu) * e1e2u(ji,jj) 
     157                        zvs = 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * vn(ji,jj,ikbv) * e1e2v(ji,jj) 
    161158                        umo(jpdyn_bfri) = umo(jpdyn_bfri) + zvt 
    162159                        vmo(jpdyn_bfri) = vmo(jpdyn_bfri) + zvs 
     
    165162                  END DO 
    166163               ENDIF 
     164!!gm top drag case is missing  
    167165               !  
    168166               CALL glo_dyn_wri( kt )                 ! print the results in ocean.output 
     
    178176      ENDIF 
    179177      ! 
    180       CALL wrk_dealloc( jpi, jpj, ztswu, ztswv, z2dx, z2dy ) 
    181       ! 
    182178   END SUBROUTINE trd_glo 
    183179 
     
    193189      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    194190      REAL(wp) ::   zcof         ! local scalar 
    195       REAL(wp), POINTER, DIMENSION(:,:,:)  ::  zkx, zky, zkz, zkepe   
    196       !!---------------------------------------------------------------------- 
    197  
    198       CALL wrk_alloc( jpi, jpj, jpk, zkx, zky, zkz, zkepe ) 
     191      REAL(wp), DIMENSION(jpi,jpj,jpk)  ::  zkx, zky, zkz, zkepe   
     192      !!---------------------------------------------------------------------- 
    199193 
    200194      ! I. Momentum trends 
     
    283277            &      + vmo(jpdyn_bfr) + vmo(jpdyn_atf) ) / tvolv 
    284278            WRITE (numout,9513) umo(jpdyn_tau) / tvolu, vmo(jpdyn_tau) / tvolv 
    285             IF( ln_bfrimp )   WRITE (numout,9514) umo(jpdyn_bfri) / tvolu, vmo(jpdyn_bfri) / tvolv 
     279            IF( ln_drgimp )   WRITE (numout,9514) umo(jpdyn_bfri) / tvolu, vmo(jpdyn_bfri) / tvolv 
    286280         ENDIF 
    287281 
     
    322316            &      + hke(jpdyn_bfr) + hke(jpdyn_atf) ) / tvolt 
    323317            WRITE (numout,9533) hke(jpdyn_tau) / tvolt 
    324             IF( ln_bfrimp )   WRITE (numout,9534) hke(jpdyn_bfri) / tvolt 
     318            IF( ln_drgimp )   WRITE (numout,9534) hke(jpdyn_bfri) / tvolt 
    325319         ENDIF 
    326320 
     
    372366      ENDIF 
    373367      ! 
    374       CALL wrk_dealloc( jpi, jpj, jpk, zkx, zky, zkz, zkepe ) 
    375       ! 
    376368   END SUBROUTINE glo_dyn_wri 
    377369 
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/TRD/trdken.F90

    r7646 r8143  
    1313   USE oce            ! ocean dynamics and tracers variables 
    1414   USE dom_oce        ! ocean space and time domain variables 
     15   USE phycst         ! physical constants 
    1516   USE sbc_oce        ! surface boundary condition: ocean 
    1617   USE zdf_oce        ! ocean vertical physics variables 
     18   USE zdfdrg         ! ocean vertical physics: bottom friction 
     19!!gm   USE dynhpg          ! hydrostatic pressure gradient    
     20   USE ldftra         ! ocean active tracers lateral physics 
    1721   USE trd_oce        ! trends: ocean variables 
    18 !!gm   USE dynhpg          ! hydrostatic pressure gradient    
    19    USE zdfbfr         ! bottom friction 
    20    USE ldftra         ! ocean active tracers lateral physics 
    21    USE phycst         ! physical constants 
    2222   USE trdvor         ! ocean vorticity trends  
    2323   USE trdglo         ! trends:global domain averaged 
     
    2727   USE iom            ! I/O manager library 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! Memory allocation 
    3029   USE ldfslp         ! Isopycnal slopes 
    3130 
     
    7473      !!          diagnose separately the KE trend associated with wind stress 
    7574      !!              - bottom friction case (jpdyn_bfr): 
    76       !!          explicit case (ln_bfrimp=F): bottom trend put in the 1st level  
     75      !!          explicit case (ln_drgimp=F): bottom trend put in the 1st level  
    7776      !!                                       of putrd, pvtrd 
    7877      ! 
     
    8685      INTEGER ::   ikbu  , ikbv     ! local integers 
    8786      INTEGER ::   ikbum1, ikbvm1   !   -       - 
    88       REAL(wp), POINTER, DIMENSION(:,:)   ::   z2dx, z2dy, zke2d   ! 2D workspace  
    89       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zke                 ! 3D workspace  
    90       !!---------------------------------------------------------------------- 
    91       ! 
    92       CALL wrk_alloc( jpi, jpj, jpk, zke ) 
     87      REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   z2dx, z2dy, zke2d   ! 2D workspace  
     88      REAL(wp), DIMENSION(jpi,jpj,jpk)      ::   zke                 ! 3D workspace  
     89      !!---------------------------------------------------------------------- 
    9390      ! 
    9491      CALL lbc_lnk( putrd, 'U', -1. )   ;   CALL lbc_lnk( pvtrd, 'V', -1. )      ! lateral boundary conditions 
     
    125122         CASE( jpdyn_zdf )   ;   CALL iom_put( "ketrd_zdf"   , zke )    ! vertical diffusion  
    126123         !                   !                                          ! wind stress trends 
    127                                  CALL wrk_alloc( jpi, jpj, z2dx, z2dy, zke2d ) 
     124                                 ALLOCATE( z2dx(jpi,jpj) , z2dy(jpi,jpj) , zke2d(jpi,jpj) ) 
    128125                           z2dx(:,:) = un(:,:,1) * ( utau_b(:,:) + utau(:,:) ) * e1e2u(:,:) * umask(:,:,1) 
    129126                           z2dy(:,:) = vn(:,:,1) * ( vtau_b(:,:) + vtau(:,:) ) * e1e2v(:,:) * vmask(:,:,1) 
     
    136133                           END DO 
    137134                                 CALL iom_put( "ketrd_tau"   , zke2d )  !  
    138                                  CALL wrk_dealloc( jpi, jpj     , z2dx, z2dy, zke2d ) 
     135                                 DEALLOCATE( z2dx , z2dy , zke2d ) 
    139136         CASE( jpdyn_bfr )   ;   CALL iom_put( "ketrd_bfr"   , zke )    ! bottom friction (explicit case)  
    140137!!gm TO BE DONE properly 
    141 !!gm only valid if ln_bfrimp=F otherwise the bottom stress as to be recomputed at the end of the computation.... 
    142 !         IF(.NOT. ln_bfrimp) THEN 
     138!!gm only valid if ln_drgimp=F otherwise the bottom stress as to be recomputed at the end of the computation.... 
     139!         IF(.NOT. ln_drgimp) THEN 
    143140!            DO jj = 1, jpj    !    
    144141!               DO ji = 1, jpi 
     
    163160!! reflechir a une possible sauvegarde du "vrai" un,vn pour le calcul de atf.... 
    164161! 
    165 !         IF( ln_bfrimp ) THEN                                          ! bottom friction (implicit case) 
     162!         IF( ln_drgimp ) THEN                                          ! bottom friction (implicit case) 
    166163!            DO jj = 1, jpj                                                  ! after velocity known (now filed at this stage) 
    167164!               DO ji = 1, jpi 
     
    192189      END SELECT 
    193190      ! 
    194       CALL wrk_dealloc( jpi, jpj, jpk, zke ) 
    195       ! 
    196191   END SUBROUTINE trd_ken 
    197192 
     
    207202      !! ** Work only for full steps and partial steps (ln_hpg_zco or ln_hpg_zps) 
    208203      !!----------------------------------------------------------------------  
    209       INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
    210       !! 
    211       REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(  out) ::   pconv 
    212       ! 
    213       INTEGER  ::   ji, jj, jk                       ! dummy loop indices 
    214       INTEGER  ::   iku, ikv                         ! temporary integers 
    215       REAL(wp) ::   zcoef                            ! temporary scalars 
    216       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zconv  ! temporary conv on W-grid 
    217       !!---------------------------------------------------------------------- 
    218       ! 
    219       CALL wrk_alloc( jpi,jpj,jpk, zconv ) 
     204      INTEGER                   , INTENT(in   ) ::   kt      ! ocean time-step index 
     205      REAL(wp), DIMENSION(:,:,:), INTENT(  out) ::   pconv   !  
     206      ! 
     207      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     208      INTEGER  ::   iku, ikv     ! local integers 
     209      REAL(wp) ::   zcoef        ! local scalars 
     210      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zconv  ! 3D workspace 
     211      !!---------------------------------------------------------------------- 
    220212      ! 
    221213      ! Local constant initialization  
     
    240232      END DO 
    241233      ! 
    242       CALL wrk_dealloc( jpi,jpj,jpk, zconv )       
    243       ! 
    244234   END SUBROUTINE ken_p2k 
    245235 
Note: See TracChangeset for help on using the changeset viewer.