Ignore:
Timestamp:
2015-12-21T12:35:23+01:00 (6 years ago)
Author:
timgraham
Message:

Merge of branches/2015/dev_merge_2015 back into trunk. Merge excludes NEMOGCM/TOOLS/OBSTOOLS/ for now due to issues with the change of file type. Will sort these manually with further commits.

Branch merged as follows:
In the working copy of branch ran:
svn merge svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk@HEAD
Small conflicts due to bug fixes applied to trunk since the dev_merge_2015 was copied. Bug fixes were applied to the branch as well so these were easy to resolve.
Branch committed at this stage

In working copy run:
svn switch svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk
to switch working copy

Run:
svn merge —reintegrate svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/2015/dev_merge_2015
to merge the branch into the trunk and then commit - no conflicts at this stage.

Location:
trunk/NEMOGCM/NEMO/OPA_SRC/C1D
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/c1d.F90

    r5836 r6140  
    44   !! Ocean domain  :  1D configuration 
    55   !!===================================================================== 
    6    !! History :   2.0  !  2004-09 (C. Ethe)     Original code 
    7    !!             3.0  !  2008-04 (G. Madec)    adaptation to SBC 
    8    !!             3.5  !  2013-10 (D. Calvert)  add namelist 
     6   !! History :  2.0  !  2004-09 (C. Ethe)     Original code 
     7   !!            3.0  !  2008-04 (G. Madec)    adaptation to SBC 
     8   !!            3.5  !  2013-10 (D. Calvert)  add namelist 
    99   !!---------------------------------------------------------------------- 
    1010#if defined key_c1d 
     
    1212   !!   'key_c1d'                                   1D column configuration 
    1313   !!---------------------------------------------------------------------- 
    14    !!   c1d_init       : read in the C1D namelist 
     14   !!   c1d_init      : read in the C1D namelist 
    1515   !!---------------------------------------------------------------------- 
    16    USE in_out_manager   ! I/O manager 
    17    USE par_kind         ! kind parameters 
    18    USE lib_mpp 
     16   USE par_kind       ! kind parameters 
     17   ! 
     18   USE in_out_manager ! I/O manager 
     19   USE lib_mpp        ! MPP library 
    1920 
    2021   IMPLICIT NONE 
    2122   PRIVATE 
    2223 
    23    PUBLIC   c1d_init                                 ! called by nemogcm.F90 
     24   PUBLIC   c1d_init   ! called by nemogcm.F90 
    2425 
    2526   LOGICAL , PUBLIC, PARAMETER ::  lk_c1d = .TRUE.   ! 1D config. flag 
    2627 
    27    REAL(wp), PUBLIC            ::  rn_lat1d     ! Column latitude 
    28    REAL(wp), PUBLIC            ::  rn_lon1d     ! Column longitude 
    29    LOGICAL , PUBLIC            ::  ln_c1d_locpt ! Localization (or not) of 1D column in a grid 
     28   REAL(wp), PUBLIC ::  rn_lat1d     !: Column latitude 
     29   REAL(wp), PUBLIC ::  rn_lon1d     !: Column longitude 
     30   LOGICAL , PUBLIC ::  ln_c1d_locpt !: Localization (or not) of 1D column in a grid 
    3031 
    3132   !!---------------------------------------------------------------------- 
    32    !! NEMO/C1D 3.3 , NEMO Consortium (2010) 
     33   !! NEMO/C1D 3.7 , NEMO Consortium (2015) 
    3334   !! $Id$  
    3435   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    4445      !! ** Method  :   Read namelist namc1d  
    4546      !!---------------------------------------------------------------------- 
    46       INTEGER ::   ios                 ! Local integer output status for namelist read 
     47      INTEGER ::   ios   ! Local integer 
     48      !! 
    4749      NAMELIST/namc1d/ rn_lat1d, rn_lon1d , ln_c1d_locpt 
    4850      !!---------------------------------------------------------------------- 
     
    5052      REWIND( numnam_ref )              ! Namelist namc1d in reference namelist : Tracer advection scheme 
    5153      READ  ( numnam_ref, namc1d, IOSTAT = ios, ERR = 901) 
    52 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d in reference namelist', lwp ) 
    53  
     54901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namc1d in reference namelist', lwp ) 
     55      ! 
    5456      REWIND( numnam_cfg )              ! Namelist namtra_adv in configuration namelist : Tracer advection scheme 
    5557      READ  ( numnam_cfg, namc1d, IOSTAT = ios, ERR = 902 ) 
    56 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d in configuration namelist', lwp ) 
     58902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namc1d in configuration namelist', lwp ) 
    5759      IF(lwm) WRITE ( numond, namc1d ) 
    5860      ! 
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90

    r5215 r6140  
    1212   !!   dom_c1d     : Determine jpizoom/jpjzoom from a given lat/lon 
    1313   !!---------------------------------------------------------------------- 
    14    USE phycst                        ! Physical constants (and par_oce) 
    15    USE iom                           ! I/O library (iom_get) 
    16    USE in_out_manager                ! I/O manager (ctmp1) 
    17    USE dom_oce , ONLY : nimpp, njmpp ! Shared/distributed memory setting (mpp_init routine) 
     14   USE phycst         ! Physical constants (and par_oce) 
     15   USE dom_oce , ONLY : nimpp, njmpp ! Shared/distributed memory setting 
     16   ! 
     17   USE iom            ! I/O library (iom_get) 
     18   USE in_out_manager ! I/O manager (ctmp1) 
    1819   USE wrk_nemo                      ! Memory allocation 
    1920   USE timing                        ! Timing 
     
    2223   PRIVATE 
    2324 
    24    PUBLIC   dom_c1d                  ! Routine called in domcfg.F90 
    25  
    26    !!---------------------------------------------------------------------- 
    27    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     25   PUBLIC   dom_c1d   ! called in domcfg.F90 
     26 
     27   !!---------------------------------------------------------------------- 
     28   !! NEMO/OPA 3.7 , NEMO Consortium (2015) 
    2829   !! $Id$  
    2930   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    4344      !! ** Action  : Recalculate jpizoom, jpjzoom (indices of C1D zoom) 
    4445      !!---------------------------------------------------------------------- 
    45       NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
    46          &             nn_acc   , rn_atfp     , rn_rdt      , rn_rdtmin ,                  & 
    47          &             rn_rdtmax, rn_rdth     , nn_closea , ln_crs,    & 
    48          &             jphgr_msh, & 
    49          &             ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 
    50          &             ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 
    51          &             ppa2, ppkth2, ppacr2 
    52  
    53       INTEGER  ::  ji, jj                          ! Dummy loop indices 
    54       INTEGER  ::  inum                            ! Coordinate file handle (case 0) 
    55       INTEGER  ::  ijeq                            ! Index of equator T point (case 4) 
    56       INTEGER  ::  ios                             ! Local integer output status for namelist read 
    57  
    58       INTEGER , DIMENSION(2) ::   iloc             ! Minloc returned indices 
    59  
    60       REAL(wp), INTENT(in) ::  plat                ! Column latitude 
    61       REAL(wp), INTENT(in) ::  plon                ! Column longitude 
    62  
     46      REAL(wp), INTENT(in) ::  plat, plon    ! Column latitude &  longitude 
     47      ! 
     48      INTEGER  ::  ji, jj   ! Dummy loop indices 
     49      INTEGER  ::  inum     ! Coordinate file handle (case 0) 
     50      INTEGER  ::  ijeq     ! Index of equator T point (case 4) 
     51      INTEGER  ::  ios      ! Local integer output status for namelist read 
     52      INTEGER , DIMENSION(2) ::   iloc   ! Minloc returned indices 
    6353      REAL(wp) ::  zlon                            ! Wraparound longitude 
    6454      REAL(wp) ::  zti, ztj, zarg                  ! Local scalars 
    6555      REAL(wp) ::  glam0, gphi0                    ! Variables corresponding to parameters ppglam0 ppgphi0 set in par_oce 
    6656      REAL(wp) ::  zlam1, zcos_alpha, ze1, ze1deg  ! Case 5 local scalars 
    67       REAL(wp) ::  zphi1, zsin_alpha, zim05, zjm05 !          " 
    68  
     57      REAL(wp) ::  zphi1, zsin_alpha, zim05, zjm05 !           
    6958      REAL(wp) , POINTER, DIMENSION(:,:) ::  gphidta, glamdta, zdist ! Global lat/lon 
     59      !! 
     60      NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
     61         &             rn_atfp     , rn_rdt      ,nn_closea , ln_crs,  jphgr_msh, & 
     62         &             ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 
     63         &             ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 
     64         &             ppa2, ppkth2, ppacr2 
    7065      !!---------------------------------------------------------------------- 
    7166 
     
    7469      REWIND( numnam_ref )              ! Namelist namdom in reference namelist : space & time domain (bathymetry, mesh, timestep) 
    7570      READ  ( numnam_ref, namdom, IOSTAT = ios, ERR = 901 ) 
    76 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in reference namelist', lwp ) 
    77    
     71901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namdom in reference namelist', lwp ) 
    7872      ! 
    7973      REWIND( numnam_cfg )              ! Namelist namdom in configuration namelist : space & time domain (bathymetry, mesh, timestep) 
    8074      READ  ( numnam_cfg, namdom, IOSTAT = ios, ERR = 902 ) 
    81 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 
    82  
    83       CALL wrk_alloc( jpidta, jpjdta, gphidta, glamdta, zdist ) 
    84  
     75902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 
     76 
     77      CALL wrk_alloc( jpidta,jpjdta,   gphidta, glamdta, zdist ) 
    8578 
    8679      ! ============================= ! 
     
    171164      END SELECT 
    172165 
    173  
    174166      ! ============================== ! 
    175167      !  Code from dom_ngb:            ! 
     
    192184      jpjzoom = iloc(2) + njmpp - 2  ! corner index of the zoom domain. 
    193185 
    194       CALL wrk_dealloc( jpidta, jpjdta, gphidta, glamdta, zdist ) 
     186      CALL wrk_dealloc( jpidta,jpjdta,  gphidta, glamdta, zdist ) 
    195187 
    196188      IF (lwp) THEN 
     
    202194         WRITE(numout,*) 
    203195      ENDIF 
    204  
     196      ! 
    205197      IF( nn_timing == 1 )   CALL timing_stop('dom_c1d') 
    206  
     198      ! 
    207199   END SUBROUTINE dom_c1d 
    208200 
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90

    r5215 r6140  
    44   !! Ocean data  :  read ocean U & V current data from gridded data 
    55   !!====================================================================== 
    6    !! History :  3.5   ! 2013-08  (D. Calvert)  Original code 
    7    !!---------------------------------------------------------------------- 
    8  
    9    !!---------------------------------------------------------------------- 
    10    !!   dta_uvd_init   : read namelist and allocate data structures 
    11    !!   dta_uvd        : read and time-interpolate ocean U & V current data 
    12    !!---------------------------------------------------------------------- 
    13    USE oce             ! ocean dynamics and tracers 
    14    USE dom_oce         ! ocean space and time domain 
    15    USE fldread         ! read input fields 
    16    USE in_out_manager  ! I/O manager 
    17    USE phycst          ! physical constants 
    18    USE lib_mpp         ! MPP library 
    19    USE wrk_nemo        ! Memory allocation 
    20    USE timing          ! Timing 
     6   !! History :  3.5  ! 2013-08  (D. Calvert)  Original code 
     7   !!---------------------------------------------------------------------- 
     8 
     9   !!---------------------------------------------------------------------- 
     10   !!   dta_uvd_init  : read namelist and allocate data structures 
     11   !!   dta_uvd       : read and time-interpolate ocean U & V current data 
     12   !!---------------------------------------------------------------------- 
     13   USE oce            ! ocean dynamics and tracers 
     14   USE phycst         ! physical constants 
     15   USE dom_oce        ! ocean space and time domain 
     16   ! 
     17   USE in_out_manager ! I/O manager 
     18   USE fldread        ! read input fields 
     19   USE lib_mpp        ! MPP library 
     20   USE wrk_nemo       ! Memory allocation 
     21   USE timing         ! Timing 
    2122 
    2223   IMPLICIT NONE 
     
    2627   PUBLIC   dta_uvd        ! called by istate.F90 and dyndmp.90 
    2728 
    28    LOGICAL , PUBLIC ::   ln_uvd_init         ! Flag to initialise with U & V current data 
    29    LOGICAL , PUBLIC ::   ln_uvd_dyndmp       ! Flag for Newtonian damping toward U & V current data 
     29   LOGICAL , PUBLIC ::   ln_uvd_init     ! Flag to initialise with U & V current data 
     30   LOGICAL , PUBLIC ::   ln_uvd_dyndmp   ! Flag for Newtonian damping toward U & V current data 
    3031 
    3132   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_uvd   ! structure for input U & V current (file information and data) 
    3233 
    33    !! * Substitutions 
    34 #  include "domzgr_substitute.h90" 
    35    !!---------------------------------------------------------------------- 
    36    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     34   !!---------------------------------------------------------------------- 
     35   !! NEMO/OPA 3.7 , NEMO Consortium (2015) 
    3736   !! $Id$  
    3837   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    5049      !!              - fld_fill data structure with namelist information 
    5150      !!---------------------------------------------------------------------- 
    52       LOGICAL, INTENT(in), OPTIONAL ::   ld_dyndmp         ! force the initialization when dyndmp is used 
    53       ! 
    54       INTEGER ::   ierr0, ierr1, ierr2, ierr3              ! temporary integers 
    55       ! 
    56       CHARACTER(len=100)            ::   cn_dir            ! Root directory for location of files to be used 
    57       TYPE(FLD_N), DIMENSION(2)     ::   suv_i             ! Combined U & V namelist information 
    58       TYPE(FLD_N)                   ::   sn_ucur, sn_vcur  ! U & V data namelist information 
     51      LOGICAL, INTENT(in), OPTIONAL ::   ld_dyndmp   ! force the initialization when dyndmp is used 
     52      ! 
     53      INTEGER ::   ios, ierr0, ierr1, ierr2, ierr3     ! local integers 
     54      CHARACTER(len=100)        ::   cn_dir            ! Root directory for location of files to be used 
     55      TYPE(FLD_N), DIMENSION(2) ::   suv_i             ! Combined U & V namelist information 
     56      TYPE(FLD_N)               ::   sn_ucur, sn_vcur  ! U & V data namelist information 
    5957      !! 
    6058      NAMELIST/namc1d_uvd/ ln_uvd_init, ln_uvd_dyndmp, cn_dir, sn_ucur, sn_vcur 
    61       INTEGER  ::   ios 
    62       !!---------------------------------------------------------------------- 
    63       ! 
    64       IF( nn_timing == 1 )  CALL timing_start('dta_uvd_init') 
    65       ! 
    66       ierr0 = 0  ;  ierr1 = 0  ;  ierr2 = 0  ;  ierr3 = 0 
     59      !!---------------------------------------------------------------------- 
     60      ! 
     61      IF( nn_timing == 1 )   CALL timing_start('dta_uvd_init') 
     62      ! 
     63      ierr0 = 0   ;   ierr1 = 0   ;   ierr2 = 0  ;   ierr3 = 0 
    6764 
    6865      REWIND( numnam_ref )              ! Namelist namc1d_uvd in reference namelist :  
    6966      READ  ( numnam_ref, namc1d_uvd, IOSTAT = ios, ERR = 901) 
    70 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_uvd in reference namelist', lwp ) 
    71  
     67901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namc1d_uvd in reference namelist', lwp ) 
     68      ! 
    7269      REWIND( numnam_cfg )              ! Namelist namc1d_uvd in configuration namelist : Parameters of the run 
    7370      READ  ( numnam_cfg, namc1d_uvd, IOSTAT = ios, ERR = 902 ) 
    74 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_uvd in configuration namelist', lwp ) 
     71902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namc1d_uvd in configuration namelist', lwp ) 
    7572      IF(lwm) WRITE ( numond, namc1d_uvd ) 
    7673 
     
    149146      !!---------------------------------------------------------------------- 
    150147      ! 
    151       IF( nn_timing == 1 )  CALL timing_start('dta_uvd') 
     148      IF( nn_timing == 1 )   CALL timing_start('dta_uvd') 
    152149      ! 
    153150      CALL fld_read( kt, 1, sf_uvd )      !==   read U & V current data at time step kt   ==! 
    154       ! 
    155       ! 
    156       !                                   !==   ORCA_R2 configuration and U & V current damping   ==!  
    157       IF( cp_cfg == "orca" .AND. jp_cfg == 2 .AND. ln_uvd_dyndmp ) THEN    ! some hand made alterations 
    158          !!! EMPTY- to be added for running in 3D context !!! 
    159       ENDIF 
    160151      ! 
    161152      puvd(:,:,:,1) = sf_uvd(1)%fnow(:,:,:)                 ! NO mask 
     
    164155      IF( ln_sco ) THEN                   !==   s- or mixed s-zps-coordinate   ==! 
    165156         ! 
    166          CALL wrk_alloc( jpk, zup, zvp ) 
     157         CALL wrk_alloc( jpk,   zup, zvp ) 
    167158         ! 
    168159         IF( kt == nit000 .AND. lwp )THEN 
     
    174165            DO ji = 1, jpi                ! determines the interpolated U & V current profiles at each (i,j) point 
    175166               DO jk = 1, jpk 
    176                   zl = fsdept(ji,jj,jk) 
     167                  zl = gdept_n(ji,jj,jk) 
    177168                  IF    ( zl < gdept_1d(1  ) ) THEN          ! extrapolate above the first level of data 
    178169                     zup(jk) =  puvd(ji,jj,1    ,1) 
     
    200191         END DO 
    201192         !  
    202          CALL wrk_dealloc( jpk, zup, zvp ) 
     193         CALL wrk_dealloc( jpk,   zup, zvp ) 
    203194         !  
    204195      ELSE                                !==   z- or zps- coordinate   ==! 
     
    222213      ENDIF 
    223214      ! 
    224       IF( lwp .AND. kt == nit000 ) THEN   ! control print 
    225          WRITE(numout,*) ' U current ' 
    226          WRITE(numout,*) 
    227          WRITE(numout,*)'  level = 1' 
    228          CALL prihre( puvd(:,:,1    ,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout ) 
    229          WRITE(numout,*)'  level = ', jpk/2 
    230          CALL prihre( puvd(:,:,jpk/2,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout ) 
    231          WRITE(numout,*)'  level = ', jpkm1 
    232          CALL prihre( puvd(:,:,jpkm1,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout ) 
    233          WRITE(numout,*) 
    234          WRITE(numout,*) ' V current ' 
    235          WRITE(numout,*) 
    236          WRITE(numout,*)'  level = 1' 
    237          CALL prihre( puvd(:,:,1    ,2), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout ) 
    238          WRITE(numout,*)'  level = ', jpk/2 
    239          CALL prihre( puvd(:,:,jpk/2,2), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout ) 
    240          WRITE(numout,*)'  level = ', jpkm1 
    241          CALL prihre( puvd(:,:,jpkm1,2), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout ) 
    242          WRITE(numout,*) 
    243       ENDIF 
    244       ! 
    245215      IF( .NOT. ln_uvd_dyndmp    ) THEN   !==   deallocate U & V current structure   ==!  
    246216         !                                !==   (data used only for initialization)  ==! 
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/dyncor_c1d.F90

    r5215 r6140  
    1111   !!   'key_c1d'                                          1D Configuration 
    1212   !!---------------------------------------------------------------------- 
    13    !!   cor_c1d      : Coriolis factor at T-point (1D configuration) 
    14    !!   dyn_cor_c1d  : vorticity trend due to Coriolis at T-point 
     13   !!   cor_c1d       : Coriolis factor at T-point (1D configuration) 
     14   !!   dyn_cor_c1d   : vorticity trend due to Coriolis at T-point 
    1515   !!---------------------------------------------------------------------- 
    16    USE oce               ! ocean dynamics and tracers 
    17    USE dom_oce           ! ocean space and time domain 
    18    USE phycst            ! physical constants 
    19    USE in_out_manager    ! I/O manager 
    20    USE prtctl            ! Print control 
     16   USE oce            ! ocean dynamics and tracers 
     17   USE dom_oce        ! ocean space and time domain 
     18   USE phycst         ! physical constants 
     19   ! 
     20   USE in_out_manager ! I/O manager 
     21   USE prtctl         ! Print control 
    2122 
    2223   IMPLICIT NONE 
    2324   PRIVATE 
    2425 
    25    PUBLIC   cor_c1d      ! routine called by OPA.F90 
    26    PUBLIC   dyn_cor_c1d  ! routine called by step1d.F90 
     26   PUBLIC   cor_c1d      ! called by nemogcm.F90 
     27   PUBLIC   dyn_cor_c1d  ! called by step1d.F90 
    2728 
    2829   !! * Substitutions 
    2930#  include "vectopt_loop_substitute.h90" 
    3031   !!---------------------------------------------------------------------- 
    31    !! NEMO/C1D 3.3 , NEMO Consortium (2010) 
     32   !! NEMO/C1D 3.7 , NEMO Consortium (2015) 
    3233   !! $Id$  
    3334   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    4142      !! ** Purpose : set the Coriolis factor at T-point 
    4243      !!---------------------------------------------------------------------- 
    43       REAL(wp) ::   zphi0, zbeta, zf0         !  temporary scalars 
     44      REAL(wp) ::   zphi0, zbeta, zf0   ! local scalars 
    4445      !!---------------------------------------------------------------------- 
    4546 
     
    8788      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    8889      !! 
    89       INTEGER ::   ji, jj, jk         ! dummy loop indices 
     90      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    9091      !!---------------------------------------------------------------------- 
    9192      ! 
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/dyndmp.F90

    r5215 r6140  
    2323   USE dtauvd         ! data: U & V current 
    2424   USE zdfmxl         ! vertical physics: mixed layer depth 
     25   ! 
    2526   USE in_out_manager ! I/O manager 
    2627   USE lib_mpp        ! MPP library 
     
    3637   PUBLIC   dyn_dmp      ! routine called by step_c1d.F90 
    3738 
    38    LOGICAL, PUBLIC ::   ln_dyndmp           ! Flag for Newtonian damping 
    39  
    40    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  utrdmp    ! damping U current trend (m/s2) 
    41    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  vtrdmp    ! damping V current trend (m/s2) 
    42    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  resto_uv  ! restoring coeff. on U & V current 
     39   LOGICAL, PUBLIC ::   ln_dyndmp   !: Flag for Newtonian damping 
     40 
     41   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  utrdmp    !: damping U current trend (m/s2) 
     42   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  vtrdmp    !: damping V current trend (m/s2) 
     43   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  resto_uv  !: restoring coeff. on U & V current 
    4344 
    4445   !! * Substitutions 
    45 #  include "domzgr_substitute.h90" 
    4646#  include "vectopt_loop_substitute.h90" 
    4747   !!---------------------------------------------------------------------- 
    48    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     48   !! NEMO/OPA 3.7 , NEMO Consortium (2015) 
    4949   !! $Id$  
    5050   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    7575      !!              - calculate damping coefficient 
    7676      !!---------------------------------------------------------------------- 
     77      INTEGER ::   ios, imask   ! local integers 
     78      !! 
    7779      NAMELIST/namc1d_dyndmp/ ln_dyndmp 
    78       INTEGER :: ios 
    79       INTEGER :: imask 
    80       !!---------------------------------------------------------------------- 
    81  
     80      !!---------------------------------------------------------------------- 
     81      ! 
    8282      REWIND( numnam_ref )              ! Namelist namc1d_dyndmp in reference namelist :  
    8383      READ  ( numnam_ref, namc1d_dyndmp, IOSTAT = ios, ERR = 901) 
    84 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_dyndmp in reference namelist', lwp ) 
    85  
     84901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namc1d_dyndmp in reference namelist', lwp ) 
     85      ! 
    8686      REWIND( numnam_cfg )              ! Namelist namc1d_dyndmp in configuration namelist : Parameters of the run 
    8787      READ  ( numnam_cfg, namc1d_dyndmp, IOSTAT = ios, ERR = 902 ) 
    88 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_dyndmp in configuration namelist', lwp ) 
     88902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namc1d_dyndmp in configuration namelist', lwp ) 
    8989      IF(lwm) WRITE ( numond, namc1d_dyndmp ) 
    90  
     90      ! 
    9191      IF(lwp) THEN                           ! control print 
    9292         WRITE(numout,*) 
     
    101101         WRITE(numout,*) 
    102102      ENDIF 
    103  
     103      ! 
    104104      IF( ln_dyndmp ) THEN 
    105105         !                                   !==   allocate the data arrays   ==! 
     
    150150      !! ** Action  : - (ua,va)   momentum trends updated with the damping trend 
    151151      !!---------------------------------------------------------------------- 
    152       INTEGER, INTENT(in) ::   kt                        ! ocean time-step index 
    153       !! 
    154       INTEGER  ::   ji, jj, jk                           ! dummy loop indices 
    155       REAL(wp) ::   zua, zva                             ! local scalars 
    156       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  zuv_dta  ! Read in data  
     152      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     153      !! 
     154      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     155      REAL(wp) ::   zua, zva     ! local scalars 
     156      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zuv_dta   ! Read in data  
    157157      !!---------------------------------------------------------------------- 
    158158      ! 
    159159      IF( nn_timing == 1 )  CALL timing_start( 'dyn_dmp' ) 
    160160      ! 
    161       CALL wrk_alloc( jpi, jpj, jpk, 2,  zuv_dta ) 
     161      CALL wrk_alloc( jpi,jpj,jpk,2,   zuv_dta ) 
    162162      ! 
    163163      !                           !==   read and interpolate U & V current data at kt   ==! 
     
    204204            DO jj = 2, jpjm1 
    205205               DO ji = fs_2, fs_jpim1   ! vector opt. 
    206                   IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
     206                  IF( gdept_n(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
    207207                     zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - ub(ji,jj,jk) ) 
    208208                     zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - vb(ji,jj,jk) ) 
     
    221221      END SELECT 
    222222      ! 
    223 !!gm      !                           ! Trend diagnostic 
    224 !!gm      IF( l_trddyn )   CALL trd_mod( utrdmp, vtrdmp, jpdyn_trd_dat, 'DYN', kt ) 
    225       ! 
    226223      !                           ! Control print 
    227224      IF( ln_ctl   )   CALL prt_ctl( tab3d_1=ua(:,:,:), clinfo1=' dmp  - Ua: ', mask1=umask,   & 
    228225         &                           tab3d_2=va(:,:,:), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    229226      ! 
    230       CALL wrk_dealloc( jpi, jpj, jpk, 2,  zuv_dta ) 
     227      CALL wrk_dealloc( jpi,jpj,jpk,2,   zuv_dta ) 
    231228      ! 
    232229      IF( nn_timing == 1 )  CALL timing_stop( 'dyn_dmp') 
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90

    r5930 r6140  
    2828 
    2929   !! * Substitutions 
    30 #  include "domzgr_substitute.h90" 
    3130#  include "zdfddm_substitute.h90" 
    3231   !!---------------------------------------------------------------------- 
    33    !! NEMO/C1D 3.3 , NEMO Consortium (2010) 
     32   !! NEMO/C1D 3.7 , NEMO Consortium (2015) 
    3433   !! $Id$ 
    3534   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    5554      !!---------------------------------------------------------------------- 
    5655      INTEGER, INTENT(in) ::   kstp   ! ocean time-step index 
     56      ! 
    5757      INTEGER ::   jk       ! dummy loop indice 
    5858      INTEGER ::   indic    ! error indicator if < 0 
Note: See TracChangeset for help on using the changeset viewer.