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 3876 for branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN – NEMO

Ignore:
Timestamp:
2013-04-19T08:48:21+02:00 (11 years ago)
Author:
gm
Message:

dev_r3858_CNRS3_Ediag: #927 phasing with 2011/dev_r3309_LOCEAN12_Ediag branche + mxl diag update

Location:
branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_cen2.F90

    r3294 r3876  
    1515   USE oce            ! ocean dynamics and tracers 
    1616   USE dom_oce        ! ocean space and time domain 
    17    USE trdmod_oce     ! ocean variables trends 
    18    USE trdmod         ! ocean dynamics trends 
     17   USE trd_oce        ! trends: ocean variables 
     18   USE trddyn         ! trend manager: dynamics 
    1919   USE in_out_manager ! I/O manager 
    2020   USE lib_mpp        ! MPP library 
     
    103103         zfu_uw(:,:,:) = ua(:,:,:) - zfu_uw(:,:,:) 
    104104         zfv_vw(:,:,:) = va(:,:,:) - zfv_vw(:,:,:) 
    105          CALL trd_mod( zfu_uw, zfv_vw, jpdyn_trd_had, 'DYN', kt ) 
     105         CALL trd_dyn( zfu_uw, zfv_vw, jpdyn_keg, kt ) 
    106106         zfu_t(:,:,:) = ua(:,:,:) 
    107107         zfv_t(:,:,:) = va(:,:,:) 
     
    153153         zfu_t(:,:,:) = ua(:,:,:) - zfu_t(:,:,:) 
    154154         zfv_t(:,:,:) = va(:,:,:) - zfv_t(:,:,:) 
    155          CALL trd_mod( zfu_t, zfv_t, jpdyn_trd_zad, 'DYN', kt ) 
     155         CALL trd_dyn( zfu_t, zfv_t, jpdyn_zad, kt ) 
    156156      ENDIF 
    157157      !                                            ! Control print 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90

    r3294 r3876  
    1616   USE oce            ! ocean dynamics and tracers 
    1717   USE dom_oce        ! ocean space and time domain 
    18    USE trdmod         ! ocean dynamics trends 
    19    USE trdmod_oce     ! ocean variables trends 
     18   USE trd_oce        ! trends: ocean variables 
     19   USE trddyn         ! trend manager: dynamics 
    2020   USE in_out_manager ! I/O manager 
    2121   USE prtctl         ! Print control 
     
    196196         zfu_uw(:,:,:) = ua(:,:,:) - zfu_uw(:,:,:) 
    197197         zfv_vw(:,:,:) = va(:,:,:) - zfv_vw(:,:,:) 
    198          CALL trd_mod( zfu_uw, zfv_vw, jpdyn_trd_had, 'DYN', kt ) 
     198         CALL trd_dyn( zfu_uw, zfv_vw, jpdyn_keg, kt ) 
    199199         zfu_t(:,:,:) = ua(:,:,:) 
    200200         zfv_t(:,:,:) = va(:,:,:) 
     
    245245         zfu_t(:,:,:) = ua(:,:,:) - zfu_t(:,:,:) 
    246246         zfv_t(:,:,:) = va(:,:,:) - zfv_t(:,:,:) 
    247          CALL trd_mod( zfu_t, zfv_t, jpdyn_trd_zad, 'DYN', kt ) 
     247         CALL trd_dyn( zfu_t, zfv_t, jpdyn_zad, kt ) 
    248248      ENDIF 
    249249      !                                            ! Control print 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynbfr.F90

    r3294 r3876  
    1010 
    1111   !!---------------------------------------------------------------------- 
    12    !!   dyn_bfr      : Update the momentum trend with the bottom friction contribution 
     12   !!   dyn_bfr       : Update the momentum trend with the bottom friction contribution 
    1313   !!---------------------------------------------------------------------- 
    14    USE oce             ! ocean dynamics and tracers variables 
    15    USE dom_oce         ! ocean space and time domain variables  
    16    USE zdf_oce         ! ocean vertical physics variables 
    17    USE zdfbfr          ! ocean bottom friction variables 
    18    USE trdmod          ! ocean active dynamics and tracers trends  
    19    USE trdmod_oce      ! ocean variables trends 
    20    USE in_out_manager  ! I/O manager 
    21    USE prtctl          ! Print control 
    22    USE timing          ! Timing 
    23    USE wrk_nemo        ! Memory Allocation 
     14   USE oce            ! ocean dynamics and tracers variables 
     15   USE dom_oce        ! ocean space and time domain variables  
     16   USE zdf_oce        ! ocean vertical physics variables 
     17   USE zdfbfr         ! ocean bottom friction variables 
     18   USE trd_oce        ! trends: ocean variables 
     19   USE trddyn         ! trend manager: dynamics 
     20   USE in_out_manager ! I/O manager 
     21   USE prtctl         ! Print control 
     22   USE timing         ! Timing 
     23   USE wrk_nemo       ! Memory Allocation 
    2424 
    2525   IMPLICIT NONE 
    2626   PRIVATE 
    2727 
    28    PUBLIC   dyn_bfr    !  routine called by step.F90 
     28   PUBLIC   dyn_bfr   !  routine called by step.F90 
    2929 
    3030   !! * Substitutions 
     
    5757      IF( nn_timing == 1 )  CALL timing_start('dyn_bfr') 
    5858      ! 
     59!!gm issue: better to put the logical in step to control the call of zdf_bfr 
     60!!          ==> change the logical from ln_bfrimp to ln_bfr_exp !! 
    5961      IF( .NOT.ln_bfrimp) THEN     ! only for explicit bottom friction form 
    6062                                    ! implicit bfr is implemented in dynzdf_imp 
    6163 
     64!!gm bug : time step is only rdt (not 2 rdt if euler start !) 
    6265        zm1_2dt = - 1._wp / ( 2._wp * rdt ) 
    6366 
     
    8992           ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    9093           ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    91            CALL trd_mod( ztrdu(:,:,:), ztrdv(:,:,:), jpdyn_trd_bfr, 'DYN', kt ) 
     94           CALL trd_dyn( ztrdu(:,:,:), ztrdv(:,:,:), jpdyn_bfr, kt ) 
    9295           CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    9396        ENDIF 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r3764 r3876  
    3131   USE dom_oce         ! ocean space and time domain 
    3232   USE phycst          ! physical constants 
    33    USE trdmod          ! ocean dynamics trends 
    34    USE trdmod_oce      ! ocean variables trends 
     33   USE trd_oce         ! trends: ocean variables 
     34   USE trddyn          ! trend manager: dynamics 
    3535   USE in_out_manager  ! I/O manager 
    3636   USE prtctl          ! Print control 
    37    USE lbclnk          ! lateral boundary condition 
     37   USE lbclnk          ! lateral boundary condition  
    3838   USE lib_mpp         ! MPP library 
    3939   USE wrk_nemo        ! Memory Allocation 
     
    4646   PUBLIC   dyn_hpg_init   ! routine called by opa module 
    4747 
    48    !                                              !!* Namelist namdyn_hpg : hydrostatic pressure gradient 
     48   !                                              !!* Namelist namdyn_hpg : hydrostatic pressure gradient  
    4949   LOGICAL , PUBLIC ::   ln_hpg_zco    = .TRUE.    !: z-coordinate - full steps 
    5050   LOGICAL , PUBLIC ::   ln_hpg_zps    = .FALSE.   !: z-coordinate - partial steps (interpolation) 
     
    5454   LOGICAL , PUBLIC ::   ln_dynhpg_imp = .FALSE.   !: semi-implicite hpg flag 
    5555 
    56    INTEGER , PUBLIC ::   nhpg  =  0   ! = 0 to 7, type of pressure gradient scheme used ! (deduced from ln_hpg_... flags) (PUBLIC for TAM) 
     56   INTEGER  ::   nhpg  =  0   ! = 0 to 7, type of pressure gradient scheme used ! (deduced from ln_hpg_... flags) 
    5757 
    5858   !! * Substitutions 
     
    7070      !!                  ***  ROUTINE dyn_hpg  *** 
    7171      !! 
    72       !! ** Method  :   Call the hydrostatic pressure gradient routine 
     72      !! ** Method  :   Call the hydrostatic pressure gradient routine  
    7373      !!              using the scheme defined in the namelist 
    74       !! 
     74      !!    
    7575      !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 
    76       !!             - Save the trend (l_trddyn=T) 
     76      !!             - send trends to trd_dyn for futher diagnostics (l_trddyn=T) 
    7777      !!---------------------------------------------------------------------- 
    7878      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     
    9999         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    100100         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    101          CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_hpg, 'DYN', kt ) 
     101         CALL trd_dyn( ztrdu, ztrdv, jpdyn_hpg, kt ) 
    102102         CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    103103      ENDIF 
     
    427427   END SUBROUTINE hpg_sco 
    428428 
     429 
    429430   SUBROUTINE hpg_djc( kt ) 
    430431      !!--------------------------------------------------------------------- 
     
    664665      !! 
    665666      !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 
    666       !!             - Save the trend (l_trddyn=T) 
    667       !! 
    668667      !!---------------------------------------------------------------------- 
    669668      INTEGER, PARAMETER  :: polynomial_type = 1    ! 1: cubic spline, 2: linear 
     
    717716 
    718717      ! Transfer the depth of "T(:,:,:)" to vertical coordinate "zdept(:,:,:)" 
    719       DO jj = 1, jpj;   DO ji = 1, jpi 
    720           zdept(ji,jj,1) = 0.5_wp * fse3w(ji,jj,1) - sshn(ji,jj) * znad 
    721       END DO        ;   END DO 
    722  
    723       DO jk = 2, jpk;   DO jj = 1, jpj;   DO ji = 1, jpi 
    724           zdept(ji,jj,jk) = zdept(ji,jj,jk-1) + fse3w(ji,jj,jk) 
    725       END DO        ;   END DO        ;   END DO 
    726  
    727       fsp(:,:,:) = zrhh(:,:,:) 
     718      DO jj = 1, jpj 
     719         DO ji = 1, jpi 
     720            zdept(ji,jj,1) = 0.5_wp * fse3w(ji,jj,1) - sshn(ji,jj) * znad 
     721         END DO 
     722      END DO 
     723 
     724      DO jk = 2, jpk 
     725         DO jj = 1, jpj 
     726            DO ji = 1, jpi 
     727               zdept(ji,jj,jk) = zdept(ji,jj,jk-1) + fse3w(ji,jj,jk) 
     728            END DO 
     729         END DO 
     730      END DO 
     731 
     732      fsp(:,:,:) = zrhh (:,:,:) 
    728733      xsp(:,:,:) = zdept(:,:,:) 
    729734 
     
    926931   END SUBROUTINE hpg_prj 
    927932 
     933 
    928934   SUBROUTINE cspline(fsp, xsp, asp, bsp, csp, dsp, polynomial_type) 
    929935      !!---------------------------------------------------------------------- 
     
    934940      !! ** Method  :   f(x) = asp + bsp*x + csp*x^2 + dsp*x^3 
    935941      !! Reference: CJC Kruger, Constrained Cubic Spline Interpoltation 
    936       !! 
    937942      !!---------------------------------------------------------------------- 
    938943      IMPLICIT NONE 
     
    942947      INTEGER, INTENT(in) :: polynomial_type                        ! 1: cubic spline 
    943948                                                                    ! 2: Linear 
    944  
    945       ! Local Variables 
     949      ! 
    946950      INTEGER  ::   ji, jj, jk                 ! dummy loop indices 
    947951      INTEGER  ::   jpi, jpj, jpkm1 
     
    10331037      ENDIF 
    10341038 
    1035  
    10361039   END SUBROUTINE cspline 
    10371040 
     
    10431046      !! ** Purpose :   1-d linear interpolation 
    10441047      !! 
    1045       !! ** Method  : 
    1046       !!                interpolation is straight forward 
     1048      !! ** Method  :   interpolation is straight forward 
    10471049      !!                extrapolation is also permitted (no value limit) 
    1048       !! 
    10491050      !!---------------------------------------------------------------------- 
    10501051      IMPLICIT NONE 
     
    10631064   END FUNCTION interp1 
    10641065 
     1066 
    10651067   FUNCTION interp2(x, a, b, c, d)  RESULT(f) 
    10661068      !!---------------------------------------------------------------------- 
     
    11261128   END FUNCTION integ_spline 
    11271129 
    1128  
    11291130   !!====================================================================== 
    11301131END MODULE dynhpg 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90

    r3294 r3876  
    1414   USE oce             ! ocean dynamics and tracers 
    1515   USE dom_oce         ! ocean space and time domain 
    16    USE trdmod          ! ocean dynamics trends  
    17    USE trdmod_oce      ! ocean variables trends 
     16   USE trd_oce         ! trends: ocean variables 
     17   USE trddyn          ! trend manager: dynamics 
    1818   USE in_out_manager  ! I/O manager 
    1919   USE lib_mpp         ! MPP library 
     
    5252      !! 
    5353      !! ** Action : - Update the (ua, va) with the hor. ke gradient trend 
    54       !!             - save this trends (l_trddyn=T) for post-processing 
     54      !!             - send this trends to trd_dyn (l_trddyn=T) for post-processing 
    5555      !!---------------------------------------------------------------------- 
    5656      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
     
    131131         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    132132         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    133          CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_keg, 'DYN', kt ) 
     133         CALL trd_dyn( ztrdu, ztrdv, jpdyn_keg, kt ) 
    134134         CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    135135      ENDIF 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf.F90

    r3294 r3876  
    2020   USE dynldf_iso     ! lateral mixing            (dyn_ldf_iso    routine) 
    2121   USE dynldf_lap     ! lateral mixing            (dyn_ldf_lap    routine) 
    22    USE trdmod         ! ocean dynamics and tracer trends 
    23    USE trdmod_oce     ! ocean variables trends 
     22   USE trd_oce        ! trends: ocean variables 
     23   USE trddyn         ! trend manager: dynamics 
    2424   USE prtctl         ! Print control 
    2525   USE in_out_manager ! I/O manager 
     
    5454      !! ** Purpose :   compute the lateral ocean dynamics physics. 
    5555      !!---------------------------------------------------------------------- 
    56       ! 
    5756      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    5857      ! 
     
    106105         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    107106         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    108          CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_ldf, 'DYN', kt ) 
     107         CALL trd_dyn( ztrdu, ztrdv, jpdyn_ldf, kt ) 
    109108         CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv ) 
    110109      ENDIF 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilap.F90

    r3634 r3876  
    1919   USE dom_oce         ! ocean space and time domain 
    2020   USE ldfdyn_oce      ! ocean dynamics: lateral physics 
     21   ! 
    2122   USE in_out_manager  ! I/O manager 
    22    USE trdmod          ! ocean dynamics trends  
    23    USE trdmod_oce      ! ocean variables trends 
    2423   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2524   USE wrk_nemo        ! Memory Allocation 
     
    7069      !!      Add this before trend to the general trend (ua,va): 
    7170      !!            (ua,va) = (ua,va) + (diffu,diffv) 
    72       !!      'key_trddyn' defined: the two components of the horizontal 
    73       !!                               diffusion trend are saved. 
    7471      !! 
    7572      !! ** Action : - Update (ua,va) with the before iso-level biharmonic 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90

    r3634 r3876  
    2020   USE ldfdyn_oce      ! ocean dynamics lateral physics 
    2121   USE zdf_oce         ! ocean vertical physics 
    22    USE trdmod          ! ocean dynamics trends  
    23    USE trdmod_oce      ! ocean variables trends 
    2422   USE ldfslp          ! iso-neutral slopes available 
     23   ! 
    2524   USE in_out_manager  ! I/O manager 
    2625   USE lib_mpp         ! MPP library 
     
    8180      !!         -3- Add this trend to the general trend (ta,sa): 
    8281      !!            (ua,va) = (ua,va) + (zwk3,zwk4) 
    83       !!      'key_trddyn' defined: the trend is saved for diagnostics. 
    8482      !! 
    8583      !! ** Action  : - Update (ua,va) arrays with the before geopotential 
    8684      !!                biharmonic mixing trend. 
    87       !!              - save the trend in (zwk3,zwk4) ('key_trddyn') 
    8885      !!---------------------------------------------------------------------- 
    8986      INTEGER, INTENT( in ) ::   kt           ! ocean time-step index 
     
    176173      !!                          pu and pv (all the components except 
    177174      !!                          second order vertical derivative term) 
    178       !!      'key_trddyn' defined: the trend is saved for diagnostics. 
    179175      !!---------------------------------------------------------------------- 
    180176      !! 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_iso.F90

    r3294 r3876  
    2222   USE ldftra_oce      ! ocean tracer   lateral physics 
    2323   USE zdf_oce         ! ocean vertical physics 
    24    USE trdmod          ! ocean dynamics trends  
    25    USE trdmod_oce      ! ocean variables trends 
    2624   USE ldfslp          ! iso-neutral slopes  
    2725   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_lap.F90

    r3294 r3876  
    1919   USE ldfdyn_oce      ! ocean dynamics: lateral physics 
    2020   USE zdf_oce         ! ocean vertical physics 
     21!!gm ??   USE ldfslp          ! iso-neutral slopes  
     22   ! 
    2123   USE in_out_manager  ! I/O manager 
    22    USE trdmod          ! ocean dynamics trends  
    23    USE trdmod_oce      ! ocean variables trends 
    24    USE ldfslp          ! iso-neutral slopes  
    2524   USE timing          ! Timing 
    2625 
     
    5756      !!      Add this before trend to the general trend (ua,va): 
    5857      !!            (ua,va) = (ua,va) + (diffu,diffv) 
    59       !!      'key_trddyn' activated: the two components of the horizontal 
    60       !!                                 diffusion trend are saved. 
    6158      !! 
    6259      !! ** Action : - Update (ua,va) with the before iso-level harmonic  
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynnept.F90

    r3723 r3876  
    55   !!                 recoded version of simplest case (u*, v* only) 
    66   !!====================================================================== 
    7    !! History :  1.0  !  2007-06  (Michael Dunphy)  Modular form: - new namelist parameters 
    8    !!                                                             - horizontal diffusion for Neptune 
    9    !!                                                             - vertical diffusion for gm in momentum eqns 
    10    !!                                                             - option to use Neptune in Coriolis eqn 
     7   !! History :  1.0  !  2007-06  (Zeliang Wang, Michael Dunphy, BIO)  Original code 
     8   !!                             Modular form: - new namelist parameters 
     9   !!                                           - horizontal diffusion for Neptune 
     10   !!                                           - vertical diffusion for gm in momentum eqns 
     11   !!                                           - option to use Neptune in Coriolis eqn 
    1112   !!                    2011-08  (Jeff Blundell, NOCS) Simplified form for temporally invariant u*, v* 
    12    !!                                               Horizontal and vertical diffusivity formulations removed 
    13    !!                                               Dynamic allocation of storage added 
    14    !!                                               Option of ramping Neptune vel. down 
    15    !!                                               to zero added in shallow depths added 
     13   !!                             Horizontal and vertical diffusivity formulations removed 
     14   !!                             Dynamic allocation of storage added 
     15   !!                             Option of ramping Neptune vel. down to zero added in shallow depths added 
     16   !!---------------------------------------------------------------------- 
     17 
    1618   !!---------------------------------------------------------------------- 
    1719   !! dynnept_alloc        : 
     
    3032   USE phycst 
    3133   USE lbclnk 
    32    USE wrk_nemo        ! Memory Allocation 
     34   USE wrk_nemo         ! Memory Allocation 
    3335 
    3436   IMPLICIT NONE 
    3537   PRIVATE 
    3638 
    37    !! * Routine accessibility 
    38    PUBLIC dyn_nept_init      ! routine called by nemogcm.F90 
    39    PUBLIC dyn_nept_cor       ! routine called by step.F90 
    40    !! dynnept_alloc()         is called only by dyn_nept_init, within this module 
    41    !! dyn_nept_div_cur_init   is called only by dyn_nept_init, within this module 
    42    !! dyn_nept_vel            is called only by dyn_nept_cor,  within this module 
    43  
    44    !! * Shared module variables 
    45    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)    :: zunep, zvnep  ! Neptune u and v 
    46    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  :: zhdivnep      ! hor. div for Neptune vel. 
    47    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  :: zmrotnep      ! curl for Neptune vel. 
    48  
    49  
    50    !! * Namelist namdyn_nept variables 
     39   PUBLIC   dyn_nept_init   ! routine called by nemogcm.F90 
     40   PUBLIC   dyn_nept_cor    ! routine called by step.F90 
     41 
     42   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   :: zunep, zvnep   ! Neptune u and v 
     43   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: zhdivnep       ! hor. div for Neptune vel. 
     44   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: zmrotnep       ! curl for Neptune vel. 
     45 
     46   !                                                 !!* Namelist namdyn_nept variables 
    5147   LOGICAL, PUBLIC  ::  ln_neptsimp        = .FALSE.  ! yes/no simplified neptune 
    5248 
     
    6056   REAL(wp)         ::  rn_htrmax          =  200.0   ! max. depth of transition range 
    6157 
    62    !! * Module variables 
    63  
    64  
    6558   !! * Substitutions 
    6659#  include "vectopt_loop_substitute.h90" 
    6760#  include "domzgr_substitute.h90" 
    6861   !!---------------------------------------------------------------------- 
    69    !!   OPA 9.0 , implemented by Bedford Institute of Oceanography 
    70    !!---------------------------------------------------------------------- 
    71  
     62   !! NEMO/OPA 3.3 , NEMO Consortium (2011) 
     63   !! $Id: dynadv_cen2.F90 3316 2012-02-21 16:00:02Z gm $ 
     64   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     65   !!---------------------------------------------------------------------- 
    7266 CONTAINS 
    7367 
     
    9084      !!                and compute the arrays zunep and zvnep 
    9185      !! 
    92       !! ** Method  :   zunep = 
    93       !!                zvnep = 
    94       !! 
    95       !! ** History :  1.0  !   07-05  (Zeliang Wang)   Original code for zunep, zvnep 
    96       !!               1.1  !   07-06  (Michael Dunphy) namelist and  initialisation 
    97       !!               2.0  ! 2011-07  (Jeff Blundell, NOCS) 
    98       !!                    ! Simplified form for temporally invariant u*, v* 
    99       !!                    ! Horizontal and vertical diffusivity formulations removed 
    100       !!                    ! Includes optional tapering-off in shallow depths 
     86      !! ** Method  :   Simplified form for temporally invariant u*, v* 
     87      !!                Horizontal and vertical diffusivity formulations removed 
     88      !!                Includes optional tapering-off in shallow depths 
    10189      !!---------------------------------------------------------------------- 
    10290      USE iom 
    103       !! 
     91      ! 
    10492      INTEGER  ::   ji, jj, jk    ! dummy loop indices 
    10593      REAL(wp) :: unemin,unemax,vnemin,vnemax   ! extrema of (u*, v*) fields 
     
    140128      ENDIF 
    141129      ! 
    142       IF( .NOT. ln_neptsimp ) RETURN 
     130      IF( .NOT. ln_neptsimp )   RETURN 
    143131      !                                 ! Dynamically allocate local work arrays 
    144132      CALL wrk_alloc( jpi, jpj     , ht, htn, tscale, tsp, hur_n, hvr_n, hu_n, hv_n  )  
     
    352340      !! ** Action  : - compute zhdivnep, the hor. divergence of (u*, v*) 
    353341      !!              - compute zmrotnep, the rel. vorticity  of (u*, v*) 
    354       !! 
    355       !! History :  OPA  ! 1987-06  (P. Andrich, D. L Hostis)  Original code 
    356       !!            4.0  ! 1991-11  (G. Madec) 
    357       !!            6.0  ! 1993-03  (M. Guyon)  symetrical conditions 
    358       !!            7.0  ! 1996-01  (G. Madec)  s-coordinates 
    359       !!            8.0  ! 1997-06  (G. Madec)  lateral boundary cond., lbc 
    360       !!            8.1  ! 1997-08  (J.M. Molines)  Open boundaries 
    361       !!            8.2  ! 2000-03  (G. Madec)  no slip accurate 
    362       !!  NEMO      1.0  ! 2002-09  (G. Madec, E. Durand)  Free form, F90 
    363       !!             -   ! 2005-01  (J. Chanut) Unstructured open boundaries 
    364       !!             -   ! 2003-08  (G. Madec)  merged of cur and div, free form, F90 
    365       !!             -   ! 2005-01  (J. Chanut, A. Sellar) unstructured open boundaries 
    366       !!            3.3  ! 2010-09  (D.Storkey and E.O'Dea) bug fixes for BDY module 
    367       !!                 ! 2011-06  (Jeff Blundell, NOCS) Adapt code from divcur.F90 
    368       !!                 !           to compute Neptune effect fields only 
    369       !!---------------------------------------------------------------------- 
    370       ! 
     342      !!---------------------------------------------------------------------- 
    371343      INTEGER  ::   ji, jj, jk          ! dummy loop indices 
    372344      !!---------------------------------------------------------------------- 
     
    508480 
    509481   SUBROUTINE dyn_nept_smooth_vel( htold, htnew, ld_option ) 
    510  
    511482      !!---------------------------------------------------------------------- 
    512483      !!                  ***  ROUTINE dyn_nept_smooth_vel  *** 
     
    598569   END SUBROUTINE dyn_nept_smooth_vel 
    599570 
     571   !!============================================================================== 
    600572END MODULE dynnept 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90

    r3764 r3876  
    1717   !!            3.3  !  2010-09  (D. Storkey, E.O'Dea) Bug fix for BDY module 
    1818   !!            3.3  !  2011-03  (P. Oddo) Bug fix for time-splitting+(BDY-OBC) and not VVL 
     19   !!            3.4  !  2012-02  (G. Madec) add the diagnostic of the time filter trends 
    1920   !!------------------------------------------------------------------------- 
    2021   
     
    2930   USE dynadv          ! dynamics: vector invariant versus flux form 
    3031   USE domvvl          ! variable volume 
     32   USE trd_oce         ! trends: ocean variables 
     33   USE trddyn          ! trend manager: dynamics 
     34   USE trdken          ! trend manager: kinetic energy 
    3135   USE obc_oce         ! ocean open boundary conditions 
    3236   USE obcdyn          ! open boundary condition for momentum (obc_dyn routine) 
     
    3741   USE bdydyn          ! ocean open boundary conditions 
    3842   USE bdyvol          ! ocean open boundary condition (bdy_vol routines) 
     43   ! 
    3944   USE in_out_manager  ! I/O manager 
     45   USE iom             ! I/O manager library 
    4046   USE lbclnk          ! lateral boundary condition (or mpp link) 
    4147   USE lib_mpp         ! MPP library 
    4248   USE wrk_nemo        ! Memory Allocation 
    4349   USE prtctl          ! Print control 
     50   USE timing          ! Timing 
    4451#if defined key_agrif 
    4552   USE agrif_opa_interp 
    4653#endif 
    47    USE timing          ! Timing 
    4854 
    4955   IMPLICIT NONE 
     
    8187      !!             at the local domain boundaries through lbc_lnk call, 
    8288      !!             at the one-way open boundaries (lk_obc=T), 
    83       !!             at the AGRIF zoom     boundaries (lk_agrif=T) 
     89      !!             at the AGRIF zoom   boundaries (lk_agrif=T) 
    8490      !! 
    8591      !!              * Apply the time filter applied and swap of the dynamics 
     
    101107      REAL(wp) ::   z2dt         ! temporary scalar 
    102108#endif 
    103       REAL(wp) ::   zue3a, zue3n, zue3b, zuf, zec   ! local scalars 
    104       REAL(wp) ::   zve3a, zve3n, zve3b, zvf        !   -      - 
    105       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ze3u_f, ze3v_f  
     109      REAL(wp) ::   zue3a, zue3n, zue3b, zuf, zec      ! local scalars 
     110      REAL(wp) ::   zve3a, zve3n, zve3b, zvf, z1_2dt   !   -      - 
     111      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ze3u_f, ze3v_f, zua, zva  
    106112      !!---------------------------------------------------------------------- 
    107113      ! 
    108       IF( nn_timing == 1 )  CALL timing_start('dyn_nxt') 
    109       ! 
    110       CALL wrk_alloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 
     114      IF( nn_timing == 1 )   CALL timing_start('dyn_nxt') 
     115      ! 
     116      CALL wrk_alloc( jpi,jpj,jpk, ze3u_f, ze3v_f, zua, zva ) 
    111117      ! 
    112118      IF( kt == nit000 ) THEN 
     
    156162# if defined key_obc 
    157163      !                                !* OBC open boundaries 
    158       IF( lk_obc ) CALL obc_dyn( kt ) 
     164      IF( lk_obc )   CALL obc_dyn( kt ) 
    159165      ! 
    160166      IF( .NOT. lk_dynspg_flt ) THEN 
     
    163169         !                                       sshn_b (= after ssha_b) for time-splitting case (lk_dynspg_ts=T) 
    164170         !                              - Correct the barotropic velocities 
    165          IF( lk_obc ) CALL obc_dyn_bt( kt ) 
     171         IF( lk_obc )   CALL obc_dyn_bt( kt ) 
    166172         ! 
    167173!!gm ERROR - potential BUG: sshn should not be modified at this stage !!   ssh_nxt not alrady called 
     
    186192# endif 
    187193#endif 
     194 
     195    IF( l_trddyn ) THEN             ! prepare the atf trend computation + some diagnostics 
     196         z1_2dt = 1._wp / (2. * rdt)        ! Euler or leap-frog time step  
     197         IF( neuler == 0 .AND. kt == nit000 )   z1_2dt = 1._wp / rdt 
     198         ! 
     199         !                                  ! Kinetic energy and Conversion 
     200         IF( ln_KE_trd  )   CALL trd_dyn( ua, va, jpdyn_ken, kt ) 
     201         ! 
     202         IF( ln_dyn_trd ) THEN              ! 3D output: total momentum trends 
     203            zua(:,:,:) = ( ua(:,:,:) - ub(:,:,:) ) * z1_2dt 
     204            zva(:,:,:) = ( va(:,:,:) - vb(:,:,:) ) * z1_2dt 
     205            CALL iom_put( "utrd_tot", zua )        ! total momentum trends, except the asselin time filter 
     206            CALL iom_put( "vtrd_tot", zva ) 
     207         ENDIF 
     208         ! 
     209         zua(:,:,:) = un(:,:,:)             ! save the now velocity before the asselin filter 
     210         zva(:,:,:) = vn(:,:,:)             ! (caution: there will be a shift by 1 timestep in the 
     211         !                                  !  computation of the asselin filter trends) 
     212      ENDIF 
    188213 
    189214      ! Time filter and swap of dynamics arrays 
     
    274299      ENDIF 
    275300 
     301      IF( l_trddyn ) THEN                ! 3D output: asselin filter trends on momentum 
     302         zua(:,:,:) = ( ub(:,:,:) - zua(:,:,:) ) * z1_2dt 
     303         zva(:,:,:) = ( vb(:,:,:) - zva(:,:,:) ) * z1_2dt 
     304         CALL trd_dyn( zua, zva, jpdyn_atf, kt ) 
     305      ENDIF 
     306 
    276307      IF(ln_ctl)   CALL prt_ctl( tab3d_1=un, clinfo1=' nxt  - Un: ', mask1=umask,   & 
    277308         &                       tab3d_2=vn, clinfo2=' Vn: '       , mask2=vmask ) 
    278309      !  
    279       CALL wrk_dealloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 
     310      CALL wrk_dealloc( jpi,jpj,jpk, ze3u_f, ze3v_f, zua, zva ) 
    280311      ! 
    281312      IF( nn_timing == 1 )  CALL timing_stop('dyn_nxt') 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r3625 r3876  
    2222   USE dynspg_flt     ! surface pressure gradient     (dyn_spg_flt routine) 
    2323   USE dynadv         ! dynamics: vector invariant versus flux form 
    24    USE trdmod         ! ocean dynamics trends 
    25    USE trdmod_oce     ! ocean variables trends 
     24   USE trd_oce        ! trends: ocean variables 
     25   USE trddyn         ! trend manager: dynamics 
    2626   USE prtctl         ! Print control                     (prt_ctl routine) 
    2727   USE in_out_manager ! I/O manager 
    2828   USE lib_mpp        ! MPP library 
    29    USE solver          ! solver initialization 
    30    USE wrk_nemo        ! Memory Allocation 
    31    USE timing          ! Timing 
     29   USE solver         ! solver initialization 
     30   USE wrk_nemo       ! Memory Allocation 
     31   USE timing         ! Timing 
    3232 
    3333 
     
    118118            END DO 
    119119         END DO 
     120          
     121!!gm add here a call to dyn_trd for apr, the surf pressure trends ???? 
     122          
    120123      ENDIF 
    121124 
     
    142145         ! 
    143146         CALL wrk_dealloc( jpi, jpj, zpice ) 
     147          
     148!!gm add here a call to dyn_trd for ice pressure gradient, the surf pressure trends ???? 
     149          
    144150      ENDIF 
    145151 
     
    170176         CASE( 2 ) 
    171177            z2dt = 2. * rdt 
    172             IF( neuler == 0 .AND. kt == nit000 ) z2dt = rdt 
     178            IF( neuler == 0 .AND. kt == nit000 )   z2dt = rdt 
    173179            ztrdu(:,:,:) = ( ua(:,:,:) - ub(:,:,:) ) / z2dt - ztrdu(:,:,:) 
    174180            ztrdv(:,:,:) = ( va(:,:,:) - vb(:,:,:) ) / z2dt - ztrdv(:,:,:) 
    175181         END SELECT 
    176          CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_spg, 'DYN', kt ) 
     182         CALL trd_dyn( ztrdu, ztrdv, jpdyn_spg, kt ) 
    177183         ! 
    178184         CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_exp.F90

    r3680 r3876  
    2222   USE obc_par         ! open boundary condition parameters 
    2323   USE obcdta          ! open boundary condition data     (bdy_dta_bt routine) 
     24   ! 
    2425   USE in_out_manager  ! I/O manager 
    2526   USE lib_mpp         ! distributed memory computing library 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r3765 r3876  
    1313   !!             -   !  2006-08  (J.Chanut, A.Sellar) Calls to BDY routines.  
    1414   !!            3.2  !  2009-03  (G. Madec, M. Leclair, R. Benshila) introduce sshwzv module 
     15   !!            3.5  !  2012-05  (F. Roquet, G. Madec)  add some trends diag 
    1516   !!---------------------------------------------------------------------- 
    1617#if defined key_dynspg_flt   ||   defined key_esopa   
     
    3940   USE bdyvol          ! ocean open boundary condition (bdy_vol routine) 
    4041   USE cla             ! cross land advection 
     42   USE trd_oce         ! trends: ocean variables 
     43   USE trddyn          ! trend manager: dynamics 
     44   ! 
    4145   USE in_out_manager  ! I/O manager 
    4246   USE lib_mpp         ! distributed memory computing library 
     
    4650   USE iom 
    4751   USE lib_fortran 
     52   USE timing          ! Timing 
    4853#if defined key_agrif 
    4954   USE agrif_opa_interp 
    5055#endif 
    51    USE timing          ! Timing 
    5256 
    5357   IMPLICIT NONE 
     
    102106      !! ** Action : - Update (ua,va) with the surf. pressure gradient trend 
    103107      !! 
    104       !! References : Roullet and Madec 1999, JGR. 
     108      !! References : Roullet and Madec, JGR, 2000. 
    105109      !!--------------------------------------------------------------------- 
    106110      INTEGER, INTENT(in   ) ::   kt       ! ocean time-step index 
    107111      INTEGER, INTENT(  out) ::   kindic   ! solver convergence flag (<0 if not converge) 
    108       !!                                    
     112      ! 
    109113      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    110114      REAL(wp) ::   z2dt, z2dtg, zgcb, zbtd, ztdgu, ztdgv   ! local scalars 
    111       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zub, zvb 
     115      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     116      REAL(wp), POINTER, DIMENSION(:,:)   ::  zpw 
    112117      !!---------------------------------------------------------------------- 
    113118      ! 
    114119      IF( nn_timing == 1 )  CALL timing_start('dyn_spg_flt') 
    115       ! 
    116       CALL wrk_alloc( jpi,jpj,jpk, zub, zvb ) 
    117120      ! 
    118121      IF( kt == nit000 ) THEN 
     
    183186            END DO 
    184187         END DO 
     188         ! save the explicit SPG trends for further diagnostics 
     189         ! --------------------------------------------- 
     190         IF( l_trddyn )   THEN                      ! temporary save of ta and sa trends 
     191            CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv ) 
     192            DO jk = 1, jpkm1              ! unweighted time stepping  
     193               DO jj = 2, jpjm1 
     194                  DO ji = fs_2, fs_jpim1   ! vector opt. 
     195                     ztrdu(ji,jj,jk) = spgu(ji,jj) * umask(ji,jj,jk) 
     196                     ztrdv(ji,jj,jk) = spgv(ji,jj) * vmask(ji,jj,jk) 
     197                  END DO 
     198               END DO 
     199            END DO 
     200            CALL trd_dyn( ztrdu, ztrdv, jpdyn_spgexp, kt ) 
     201         ENDIF 
    185202         ! 
    186203      ENDIF 
     
    208225      END DO 
    209226 
    210       ! vertical sum 
     227      !                                    ! vertical sum 
    211228!CDIR NOLOOPCHG 
    212229      IF( lk_vopt_loop ) THEN          ! vector opt., forced unroll 
     
    217234            END DO 
    218235         END DO 
    219       ELSE                        ! No  vector opt. 
     236      ELSE                                      ! No  vector opt. 
    220237         DO jk = 1, jpkm1 
    221238            DO jj = 2, jpjm1 
     
    228245      ENDIF 
    229246 
    230       ! transport: multiplied by the horizontal scale factor 
    231       DO jj = 2, jpjm1 
     247      DO jj = 2, jpjm1                     ! transport: multiplied by the horizontal scale factor 
    232248         DO ji = fs_2, fs_jpim1   ! vector opt. 
    233249            spgu(ji,jj) = spgu(ji,jj) * e2u(ji,jj) 
     
    342358      ENDIF 
    343359#endif       
     360 
     361      IF( l_trddyn )   THEN                      
     362         ztrdu(:,:,:) = ua(:,:,:)                 ! save the after velocity before the filtered SPG 
     363         ztrdv(:,:,:) = va(:,:,:) 
     364         ! 
     365         CALL wrk_alloc( jpi, jpj, zpw ) 
     366         ! 
     367         zpw(:,:) = - z2dt * gcx(:,:) 
     368         CALL iom_put( "ssh_flt" , zpw )          ! output equivalent ssh modification due to implicit filter 
     369         ! 
     370         !                                        ! save surface pressure flux: -pw at z=0 
     371         zpw(:,:) = - rau0 * grav * sshn(:,:) * wn(:,:,1) * tmask(:,:,1) 
     372         CALL iom_put( "pw0_exp" , zpw ) 
     373         zpw(:,:) = wn(:,:,1) 
     374         CALL iom_put( "w0" , zpw ) 
     375         zpw(:,:) =  rau0 * z2dtg * gcx(:,:) * wn(:,:,1) * tmask(:,:,1) 
     376         CALL iom_put( "pw0_flt" , zpw ) 
     377         ! 
     378         CALL wrk_dealloc( jpi, jpj, zpw )  
     379         !                                    
     380      ENDIF 
     381       
    344382      ! Add the trends multiplied by z2dt to the after velocity 
    345383      ! ------------------------------------------------------- 
     
    356394      END DO 
    357395 
    358       ! write filtered free surface arrays in restart file 
    359       ! -------------------------------------------------- 
    360       IF( lrst_oce ) CALL flt_rst( kt, 'WRITE' ) 
    361       ! 
    362       CALL wrk_dealloc( jpi,jpj,jpk, zub, zvb ) 
     396      IF( l_trddyn )   THEN                      ! save the explicit SPG trends for further diagnostics 
     397         ztrdu(:,:,:) = ( ua(:,:,:) - ztrdu(:,:,:) ) / z2dt 
     398         ztrdv(:,:,:) = ( va(:,:,:) - ztrdv(:,:,:) ) / z2dt 
     399         CALL trd_dyn( ztrdu, ztrdv, jpdyn_spgflt, kt ) 
     400         ! 
     401         CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
     402      ENDIF 
     403 
     404      IF( lrst_oce )   CALL flt_rst( kt, 'WRITE' )      ! write filtered free surface arrays in restart file 
    363405      ! 
    364406      IF( nn_timing == 1 )  CALL timing_stop('dyn_spg_flt') 
     
    373415      !! ** Purpose : Read or write filtered free surface arrays in restart file 
    374416      !!---------------------------------------------------------------------- 
    375       INTEGER         , INTENT(in) ::   kt         ! ocean time-step 
    376       CHARACTER(len=*), INTENT(in) ::   cdrw       ! "READ"/"WRITE" flag 
     417      INTEGER         , INTENT(in) ::   kt     ! ocean time-step 
     418      CHARACTER(len=*), INTENT(in) ::   cdrw   ! "READ"/"WRITE" flag 
    377419      !!---------------------------------------------------------------------- 
    378420      ! 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r3680 r3876  
    400400         !                                                !* Update the forcing (BDY and tides) 
    401401         !                                                !  ------------------ 
    402          IF( lk_obc )   CALL obc_dta_bt ( kt, jn   ) 
    403          IF( lk_bdy )   CALL bdy_dta ( kt, jit=jn, time_offset=+1 ) 
    404          IF ( ln_tide_pot .AND. lk_tide) CALL upd_tide( kt, jn ) 
     402         IF( lk_obc                    )   CALL obc_dta_bt ( kt, jn   ) 
     403         IF( lk_bdy                    )   CALL bdy_dta ( kt, jit=jn, time_offset=+1 ) 
     404         IF( ln_tide_pot .AND. lk_tide )  CALL upd_tide( kt, jn ) 
    405405 
    406406         !                                                !* after ssh_e 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r3802 r3876  
    1515   !!            3.2  ! 2009-04  (R. Benshila)  vvl: correction of een scheme 
    1616   !!            3.3  ! 2010-10  (C. Ethe, G. Madec) reorganisation of initialisation phase 
     17   !!            3.5  ! 2012-02  (G. Madec) trend simplification: suppress jpdyn_trd_dat vorticity  
    1718   !!---------------------------------------------------------------------- 
    1819 
     
    2930   USE dommsk         ! ocean mask 
    3031   USE dynadv         ! momentum advection (use ln_dynadv_vec value) 
    31    USE trdmod         ! ocean dynamics trends  
    32    USE trdmod_oce     ! ocean variables trends 
     32   USE trd_oce        ! trends: ocean variables 
     33   USE trddyn         ! trend manager: dynamics 
    3334   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    3435   USE prtctl         ! Print control 
     
    7374      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    7475      !!             - save the trends in (ztrdu,ztrdv) in 2 parts (relative 
    75       !!               and planetary vorticity trends) ('key_trddyn') 
     76      !!               and planetary vorticity trends) (l_trddyn=T) 
    7677      !!---------------------------------------------------------------------- 
    7778      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
     
    108109            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    109110            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    110             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_rvo, 'DYN', kt ) 
     111            CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    111112            ztrdu(:,:,:) = ua(:,:,:) 
    112113            ztrdv(:,:,:) = va(:,:,:) 
     
    114115            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    115116            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    116             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_pvo, 'DYN', kt ) 
    117             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_dat, 'DYN', kt ) 
     117            CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    118118         ELSE 
    119119            CALL vor_ene( kt, ntot, ua, va )                ! total vorticity 
     
    127127            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    128128            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    129             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_rvo, 'DYN', kt ) 
     129            CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    130130            ztrdu(:,:,:) = ua(:,:,:) 
    131131            ztrdv(:,:,:) = va(:,:,:) 
     
    133133            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    134134            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    135             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_pvo, 'DYN', kt ) 
    136             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_dat, 'DYN', kt ) 
     135            CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    137136         ELSE 
    138137            CALL vor_ens( kt, ntot, ua, va )                ! total vorticity 
     
    146145            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    147146            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    148             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_rvo, 'DYN', kt ) 
     147            CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    149148            ztrdu(:,:,:) = ua(:,:,:) 
    150149            ztrdv(:,:,:) = va(:,:,:) 
     
    152151            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    153152            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    154             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_pvo, 'DYN', kt ) 
    155             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_dat, 'DYN', kt ) 
     153            CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    156154         ELSE 
    157155            CALL vor_mix( kt )                               ! total vorticity (mix=ens-ene) 
     
    165163            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    166164            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    167             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_rvo, 'DYN', kt ) 
     165            CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    168166            ztrdu(:,:,:) = ua(:,:,:) 
    169167            ztrdv(:,:,:) = va(:,:,:) 
     
    171169            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    172170            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    173             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_pvo, 'DYN', kt ) 
    174             CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_dat, 'DYN', kt ) 
     171            CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    175172         ELSE 
    176173            CALL vor_een( kt, ntot, ua, va )                ! total vorticity 
     
    211208      !! 
    212209      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    213       !!             - save the trends in (ztrdu,ztrdv) in 2 parts (relative 
    214       !!               and planetary vorticity trends) ('key_trddyn') 
    215210      !! 
    216211      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
     
    328323      !! 
    329324      !! ** Action : - Update (ua,va) arrays with the now vorticity term trend 
    330       !!             - Save the trends in (ztrdu,ztrdv) in 2 parts (relative 
    331       !!               and planetary vorticity trends) ('key_trddyn') 
    332325      !! 
    333326      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
     
    444437      !! 
    445438      !! ** Action : - Update (ua,va) arrays with the now vorticity term trend 
    446       !!             - Save the trends in (ztrdu,ztrdv) in 2 parts (relative  
    447       !!               and planetary vorticity trends) ('key_trddyn') 
    448439      !! 
    449440      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
     
    557548      !! 
    558549      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    559       !!             - save the trends in (ztrdu,ztrdv) in 2 parts (relative 
    560       !!               and planetary vorticity trends) ('key_trddyn') 
    561550      !! 
    562551      !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90

    r3294 r3876  
    1616   USE dom_oce        ! ocean space and time domain 
    1717   USE sbc_oce        ! surface boundary condition: ocean 
    18    USE trdmod_oce     ! ocean variables trends 
    19    USE trdmod         ! ocean dynamics trends  
     18   USE trd_oce        ! trends: ocean variables 
     19   USE trddyn         ! trend manager: dynamics 
     20   ! 
    2021   USE in_out_manager ! I/O manager 
    21    USE lib_mpp         ! MPP library 
     22   USE lib_mpp        ! MPP library 
    2223   USE prtctl         ! Print control 
    23    USE wrk_nemo        ! Memory Allocation 
    24    USE timing          ! Timing 
     24   USE wrk_nemo       ! Memory Allocation 
     25   USE timing         ! Timing 
    2526 
    2627   IMPLICIT NONE 
     
    5354      !! 
    5455      !! ** Action  : - Update (ua,va) with the vert. momentum adv. trends 
    55       !!              - Save the trends in (ztrdu,ztrdv) ('key_trddyn') 
     56      !!              - Send the trends to trddyn for diagnostics (l_trddyn=T) 
    5657      !!---------------------------------------------------------------------- 
    5758      INTEGER, INTENT(in) ::   kt   ! ocean time-step inedx 
     
    118119         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    119120         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    120          CALL trd_mod(ztrdu, ztrdv, jpdyn_trd_zad, 'DYN', kt) 
     121         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zad, kt ) 
    121122         CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    122123      ENDIF 
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90

    r3294 r3876  
    2020 
    2121   USE ldfdyn_oce      ! ocean dynamics: lateral physics 
    22    USE trdmod          ! ocean active dynamics and tracers trends  
    23    USE trdmod_oce      ! ocean variables trends 
     22   USE trd_oce         ! trends: ocean variables 
     23   USE trddyn          ! trend manager: dynamics 
    2424   USE in_out_manager  ! I/O manager 
    2525   USE lib_mpp         ! MPP library 
     
    9191         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    9292         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    93          CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_zdf, 'DYN', kt ) 
     93         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zdf, kt ) 
    9494         ! 
    9595         CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
  • branches/2013/dev_r3858_CNRS3_Ediag/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90

    r3625 r3876  
    9494      IF( ln_bfrimp ) THEN 
    9595# if defined key_vectopt_loop 
    96       DO jj = 1, 1 
    97          DO ji = jpi+2, jpij-jpi-1   ! vector opt. (forced unrolling) 
     96         DO jj = 1, 1 
     97            DO ji = jpi+2, jpij-jpi-1   ! vector opt. (forced unrolling) 
    9898# else 
    99       DO jj = 2, jpjm1 
    100          DO ji = 2, jpim1 
     99         DO jj = 2, jpjm1 
     100            DO ji = 2, jpim1 
    101101# endif 
    102             ikbu = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
    103             ikbv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
    104             zavmu(ji,jj) = avmu(ji,jj,ikbu+1) 
    105             zavmv(ji,jj) = avmv(ji,jj,ikbv+1) 
    106             avmu(ji,jj,ikbu+1) = -bfrua(ji,jj) * fse3uw(ji,jj,ikbu+1)  
    107             avmv(ji,jj,ikbv+1) = -bfrva(ji,jj) * fse3vw(ji,jj,ikbv+1) 
    108          END DO 
    109       END DO 
     102               ikbu = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
     103               ikbv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
     104               zavmu(ji,jj) = avmu(ji,jj,ikbu+1) 
     105               zavmv(ji,jj) = avmv(ji,jj,ikbv+1) 
     106               avmu(ji,jj,ikbu+1) = -bfrua(ji,jj) * fse3uw(ji,jj,ikbu+1)  
     107               avmv(ji,jj,ikbv+1) = -bfrva(ji,jj) * fse3vw(ji,jj,ikbv+1) 
     108            END DO 
     109         END DO 
    110110      ENDIF 
    111111 
     
    284284      IF( ln_bfrimp ) THEN 
    285285# if defined key_vectopt_loop 
    286       DO jj = 1, 1 
    287          DO ji = jpi+2, jpij-jpi-1   ! vector opt. (forced unrolling) 
     286         DO jj = 1, 1 
     287            DO ji = jpi+2, jpij-jpi-1   ! vector opt. (forced unrolling) 
    288288# else 
    289       DO jj = 2, jpjm1 
    290          DO ji = 2, jpim1 
     289         DO jj = 2, jpjm1 
     290            DO ji = 2, jpim1 
    291291# endif 
    292             ikbu = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
    293             ikbv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
    294             avmu(ji,jj,ikbu+1) = zavmu(ji,jj) 
    295             avmv(ji,jj,ikbv+1) = zavmv(ji,jj) 
    296          END DO 
    297       END DO 
     292               ikbu = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
     293               ikbv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
     294               avmu(ji,jj,ikbu+1) = zavmu(ji,jj) 
     295               avmv(ji,jj,ikbv+1) = zavmv(ji,jj) 
     296            END DO 
     297         END DO 
    298298      ENDIF 
    299299      ! 
Note: See TracChangeset for help on using the changeset viewer.