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 9403 for branches/2017/dev_merge_2017/NEMOGCM/CONFIG – NEMO

Ignore:
Timestamp:
2018-03-15T15:57:42+01:00 (6 years ago)
Author:
smasson
Message:

dev_merge_2017: update test_cases CANAL

Location:
branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL
Files:
4 added
8 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/EXP00/file_def_nemo-opa.xml

    r9302 r9403  
    99     
    1010    <file_definition type="one_file" name="@expname@" sync_freq="10d" min_digits="4"> 
    11       <file_group id="1d" output_freq="1d"  output_level="10" enabled=".TRUE." >  <!-- 5d files -->   
     11      <file_group id="1ts" output_freq="1ts"  output_level="10" enabled=".TRUE." >  <!-- 5d files -->   
    1212  
    1313   <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 
     
    1515     <field field_ref="soce" />  
    1616     <field field_ref="ssh"  /> 
     17     <field field_ref="salgrad"  /> 
     18     <field field_ref="ke_zint"  /> 
     19     <field field_ref="relvor"  /> 
     20     <field field_ref="potvor"  /> 
     21     <field field_ref="saltc"  /> 
     22     <field field_ref="salt2c"  /> 
    1723   </file> 
    1824 
     
    2026     <field field_ref="utau"  /> 
    2127     <field field_ref="uoce" /> 
     28     <field_group group_ref="trendU"  />   
    2229   </file> 
    2330    
     
    2532     <field field_ref="vtau"  /> 
    2633     <field field_ref="voce" /> 
     34     <field_group group_ref="trendV"  />   
    2735   </file> 
    2836    
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/EXP00/namelist_cfg

    r9356 r9403  
    1414   rn_0xratio  =      0.5  !  x-domain ratio of the 0 
    1515   rn_0yratio  =      0.5  !  y-domain ratio of the 0 
    16    nn_fcase    =      1    !  F computation (0:f0, 1:Beta, 2:real) 
     16   nn_fcase    =      0    !  F computation (0:f0, 1:Beta, 2:real) 
    1717   rn_ppgphi0  =    38.5   !  Reference latitude      [degrees] 
    1818   rn_u10      =      0.   !  10m wind speed              [m/s] 
     19     rn_windszx=   4000.   !  longitudinal wind extension   [km] 
     20     rn_windszy=   4000.   !  latitudinal wind extension    [km] 
    1921     rn_uofac  =      0.   !  Uoce multiplicative factor (0.:absolute or 1.:relative winds) 
    2022   rn_vtxmax   =      1.   !  initial vortex max current  [m/s] 
    2123   rn_uzonal   =      1.   !  initial zonal current       [m/s] 
    22      rn_ujetszx=   3500.   !  longitudinal jet extension   [km] 
    23      rn_ujetszy=    300.   !  latitudinal jet extension    [km] 
     24     rn_ujetszx=   4000.   !  longitudinal jet extension   [km] 
     25     rn_ujetszy=   4000.   !  latitudinal jet extension    [km] 
    2426   nn_botcase  =      0    !  bottom definition (0:flat, 1:bump) 
    25    nn_initcase =     10    !  initial condition case (0:rest, 1:zonal current, 2:vortex) 
    26    ln_sshnoise =  .true.   !  add random noise on initial ssh 
     27   nn_initcase =      1    !  initial condition case (0:rest, 1:zonal current, 2:vortex) 
     28   ln_sshnoise =  .false.  !  add random noise on initial ssh 
     29   ln_sshnoise =  .false.  !  add random noise on initial ssh 
     30   rn_lambda   =     50.   ! gaussian lambda 
    2731/ 
    2832!----------------------------------------------------------------------- 
     
    3034!----------------------------------------------------------------------- 
    3135   nn_no       =       0   !  job number (no more used...) 
    32    cn_exp      = "VORTEX" !  experience name 
     36   cn_exp      =   'CANAL' !  experience name 
    3337   nn_it000    =       1   !  first time step 
    34    nn_itend    =   12000   !  last time step  
     38   nn_itend    =     100   !  last time step  
    3539   nn_istate   =       0   !  output the initial state (1) or not (0) 
    3640   nn_stock    =   99999   !  frequency of creation of a restart file (modulo referenced to 1) 
     
    4448&namdom        !   time and space domain 
    4549!----------------------------------------------------------------------- 
    46    ln_linssh   =  .true.  !  =T  linear free surface  ==>>  model level are fixed in time 
     50   ln_linssh   =  .false.  !  =T  linear free surface  ==>>  model level are fixed in time 
    4751   rn_rdt      =   1440.   !  time step for the dynamics (and tracer if nn_acc=0) 
    4852   rn_atfp     =   0.05    !  asselin time filter parameter 
     
    206210&namtra_adv    !   advection scheme for tracer                          (default: NO selection) 
    207211!----------------------------------------------------------------------- 
     212   ln_traadv_NONE= .false. !  No tracer advection 
    208213   ln_traadv_cen = .false. !  2nd order centered scheme 
    209214      nn_cen_h   =  4            !  =2/4, horizontal 2nd order CEN / 4th order CEN 
     
    214219   ln_traadv_mus = .false. !  MUSCL scheme 
    215220      ln_mus_ups = .false.       !  use upstream scheme near river mouths 
    216    ln_traadv_ubs = .true. !  UBS scheme 
     221   ln_traadv_ubs = .true.  !  UBS scheme 
    217222      nn_ubs_v   =  2            !  =2  , vertical 2nd order FCT / COMPACT 4th order 
    218223   ln_traadv_qck = .false. !  QUICKEST scheme 
     
    267272&nam_vvl       !   vertical coordinate options                          (default: z-star) 
    268273!----------------------------------------------------------------------- 
    269    ln_vvl_zstar  = .false.           !  zstar vertical coordinate 
     274   ln_vvl_zstar  = .true.           !  zstar vertical coordinate 
    270275/ 
    271276!----------------------------------------------------------------------- 
    272277&namdyn_adv    !   formulation of the momentum advection                (default: NO selection) 
    273278!----------------------------------------------------------------------- 
     279   ln_dynadv_NONE= .false. !  linear dynamics (no momentum advection) 
    274280   ln_dynadv_vec = .false. !  vector form (T) or flux form (F) 
    275281   nn_dynkeg     = 0       ! scheme for grad(KE): =0   C2  ;  =1   Hollingsworth correction 
     
    280286&namdyn_vor    !   Vorticity / Coriolis scheme                          (default: NO) 
    281287!----------------------------------------------------------------------- 
    282    ln_dynvor_ene = .false. !  enstrophy conserving scheme 
    283    ln_dynvor_ens = .true. !  energy conserving scheme 
     288   ln_dynvor_ene = .true.  !  energy conserving scheme 
     289   ln_dynvor_ens = .false. !  enstrophy conserving scheme 
    284290   ln_dynvor_mix = .false. !  mixed scheme 
    285291   ln_dynvor_een = .false.  !  energy & enstrophy scheme 
     
    289295&namdyn_hpg    !   Hydrostatic pressure gradient option                 (default: NO selection) 
    290296!----------------------------------------------------------------------- 
    291    ln_hpg_zps  = .true.  !  z-coordinate - partial steps (interpolation) 
    292    ln_hpg_sco  = .false.   !  s-coordinate (standard jacobian formulation) 
     297   ln_hpg_zps  = .false.  !  z-coordinate - partial steps (interpolation) 
     298   ln_hpg_sco  = .true.   !  s-coordinate (standard jacobian formulation) 
    293299/ 
    294300!----------------------------------------------------------------------- 
     
    386392&namtrd        !   trend diagnostics                                    (default F) 
    387393!----------------------------------------------------------------------- 
     394   ln_glo_trd  = .false.   ! (T) global domain averaged diag for T, T^2, KE, and PE 
     395   ln_dyn_trd  = .true.   ! (T) 3D momentum trend output 
     396   ln_dyn_mxl  = .false.   ! (T) 2D momentum trends averaged over the mixed layer (not coded yet) 
     397   ln_vor_trd  = .false.   ! (T) 2D barotropic vorticity trends (not coded yet) 
     398   ln_KE_trd   = .false.   ! (T) 3D Kinetic   Energy     trends 
     399   ln_PE_trd   = .false.   ! (T) 3D Potential Energy     trends 
     400   ln_tra_trd  = .false.   ! (T) 3D tracer trend output 
     401   ln_tra_mxl  = .false.   ! (T) 2D tracer trends averaged over the mixed layer (not coded yet) 
     402   nn_trd      = 365       !  print frequency (ln_glo_trd=T) (unit=time step) 
    388403/ 
    389404!----------------------------------------------------------------------- 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/MY_SRC/domvvl.F90

    r9302 r9403  
    913913               END DO 
    914914               e3t_n(:,:,:) = e3t_b(:,:,:) 
    915 !!$                sshn(:,:)=0._wp 
     915               sshn(:,:) = sshb(:,:)   ! needed later for gde3w 
    916916!!$                e3t_n(:,:,:)=e3t_0(:,:,:) 
    917917!!$                e3t_b(:,:,:)=e3t_0(:,:,:) 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/MY_SRC/usrdef_hgr.F90

    r9302 r9403  
    33   !!                       ***  MODULE  usrdef_hgr  *** 
    44   !! 
    5    !!                      ===  VORTEX configuration  === 
     5   !!                      ===  CANAL configuration  === 
    66   !! 
    77   !! User defined :   mesh and Coriolis parameter of a user configuration 
     
    1111 
    1212   !!---------------------------------------------------------------------- 
    13    !!   usr_def_hgr    : initialize the horizontal mesh for VORTEX configuration 
     13   !!   usr_def_hgr    : initialize the horizontal mesh for CANAL configuration 
    1414   !!---------------------------------------------------------------------- 
    1515   USE dom_oce         ! ocean space and time domain 
     
    4545      !! 
    4646      !! ** Method  :   set all intent(out) argument to a proper value 
    47       !!                VORTEX configuration : beta-plance with uniform grid spacing (rn_dx) 
     47      !!                CANAL configuration : beta-plance with uniform grid spacing (rn_dx) 
    4848      !! 
    4949      !! ** Action  : - define longitude & latitude of t-, u-, v- and f-points (in degrees)  
     
    6767      ! 
    6868      IF(lwp) WRITE(numout,*) 
    69       IF(lwp) WRITE(numout,*) 'usr_def_hgr : VORTEX configuration bassin' 
     69      IF(lwp) WRITE(numout,*) 'usr_def_hgr : CANAL configuration bassin' 
    7070      IF(lwp) WRITE(numout,*) 
    7171      IF(lwp) WRITE(numout,*) '          Beta-plane with regular grid-spacing' 
     
    7575      ! Position coordinates (in kilometers) 
    7676      !                          ========== 
    77       zlam0 = -NINT(jpiglo*rn_0xratio) * rn_dx 
    78       zphi0 = -NINT(jpjglo*rn_0yratio) * rn_dy  
     77      zlam0 = -REAL(NINT(jpiglo*rn_0xratio)-1, wp) * rn_dx 
     78      zphi0 = -REAL(NINT(jpjglo*rn_0yratio)-1, wp) * rn_dy  
    7979 
    8080#if defined key_agrif 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/MY_SRC/usrdef_istate.F90

    r9302 r9403  
    33   !!                     ***  MODULE usrdef_istate   *** 
    44   !! 
    5    !!                      ===  VORTEX configuration  === 
     5   !!                      ===  CANAL configuration  === 
    66   !! 
    77   !! User defined : set the initial state of a user configuration 
     
    1414   !!---------------------------------------------------------------------- 
    1515   USE par_oce        ! ocean space and time domain 
    16    USE dom_oce , ONLY : glamt, gphit, glamu, gphiu, glamv, gphiv, ff_t, ff_f 
     16   USE dom_oce         
    1717   USE phycst         ! physical constants 
    1818   ! 
     
    2121   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2222   !    
    23    USE usrdef_nam, ONLY : rn_ppgphi0, rn_vtxmax, rn_uzonal, rn_ujetszx, rn_ujetszy, nn_initcase, ln_sshnoise !  
     23   USE usrdef_nam 
    2424    
    2525   IMPLICIT NONE 
     
    4040      !!  
    4141      !! ** Purpose :   Initialization of the dynamics and tracers 
    42       !!                Here VORTEX configuration  
     42      !!                Here CANAL configuration  
    4343      !! 
    4444      !! ** Method  :   Set a gaussian anomaly of pressure and associated 
     
    5656      REAL(wp) :: zpsurf, zdyPs, zdxPs 
    5757      REAL(wp) :: zdt, zdu, zdv 
    58       REAL(wp) :: zjetx, zjety 
     58      REAL(wp) :: zjetx, zjety, zbeta 
    5959      REAL(wp), DIMENSION(jpi,jpj)  ::   zrandom 
    6060      !!---------------------------------------------------------------------- 
    6161      ! 
    6262      IF(lwp) WRITE(numout,*) 
    63       IF(lwp) WRITE(numout,*) 'usr_def_istate : VORTEX configuration, analytical definition of initial state' 
     63      IF(lwp) WRITE(numout,*) 'usr_def_istate : CANAL configuration, analytical definition of initial state' 
    6464      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~   ' 
    6565      ! 
     
    7474         pssh(:,:) = 0. 
    7575         ! temperature: 
    76          pts(:,:,:,jp_tem) = 10._wp * ptmask(:,:,:)  
    77          ! salinity:   
    78          pts(:,:,:,jp_sal) = 35._wp * ptmask(:,:,:)  
     76         pts(:,:,:,jp_tem) = 10._wp 
     77         ! salinity:   
     78         pts(:,:,:,jp_sal) = 35._wp 
    7979         ! velocities: 
    8080         pu(:,:,:) = 0. 
     
    8282          
    8383      CASE(1)    ! geostrophic zonal jet from -zjety to +zjety 
    84           
    85          ! sea level: ssh = - fuy / g 
    86          WHERE( ABS(gphit) <= zjety ) 
    87             pssh(:,:) = - ff_t(:,:) * rn_uzonal * gphit(:,:) * 1.e3 / grav  * ptmask(:,:,1) 
    88          ELSEWHERE 
    89             pssh(:,:) = - ff_t(:,:) * rn_uzonal * SIGN(zjety, gphit(:,:)) * 1.e3 / grav  * ptmask(:,:,1) 
    90          END WHERE 
    91          ! temperature: 
    92          pts(:,:,:,jp_tem) = 10._wp * ptmask(:,:,:)  
    93          ! salinity:   
    94          pts(:,:,:,jp_sal) = 1._wp * ptmask(:,:,:)  
    95          DO jk=1, jpkm1 
    96             WHERE( ABS(gphit) <= zjety ) pts(:,:,jk,jp_sal) = 2. 
     84 
     85         ! sea level: 
     86         SELECT CASE( nn_fcase ) 
     87         CASE(0)    ! f = f0 
     88            ! sea level: ssh = - fuy / g 
     89            WHERE( ABS(gphit) <= zjety ) 
     90               pssh(:,:) = - ff_t(:,:) * rn_uzonal * gphit(:,:) * 1.e3 / grav 
     91            ELSEWHERE 
     92               pssh(:,:) = - ff_t(:,:) * rn_uzonal * SIGN(zjety, gphit(:,:)) * 1.e3 / grav 
     93            END WHERE 
     94         CASE(1)    ! f = f0 + beta*y 
     95            ! sea level: ssh = - u / g * ( fy + 0.5 * beta * y^2 ) 
     96            zbeta = 2._wp * omega * COS( rad * rn_ppgphi0 ) / ra 
     97            WHERE( ABS(gphit) <= zjety ) 
     98               pssh(:,:) = - rn_uzonal / grav * ( ff_t(:,:) * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 
     99            ELSEWHERE 
     100               pssh(:,:) = - rn_uzonal / grav * ( ff_t(:,:) * SIGN(zjety, gphit(:,:)) * 1.e3   & 
     101                  &                             + 0.5 * zbeta * zjety * zjety * 1.e6 ) 
     102            END WHERE 
     103         END SELECT 
     104         ! temperature: 
     105         pts(:,:,:,jp_tem) = 10._wp 
     106         ! salinity:   
     107         pts(:,:,jpk,jp_sal) = 0. 
     108         DO jk=1, jpkm1 
     109            pts(:,:,jk,jp_sal) = gphit(:,:) 
    97110         END DO 
    98111         ! velocities: 
     
    102115         END DO 
    103116         pv(:,:,:) = 0. 
    104           
    105       CASE(10)    ! geostrophic zonal current shear 
    106           
    107          ! sea level: ssh = - fuy / g 
    108          WHERE( ABS(gphit) <= zjety ) 
    109             pssh(:,:) = - ff_t(:,:) * rn_uzonal * ABS(gphit(:,:) * 1.e3) / grav  * ptmask(:,:,1) 
    110          ELSEWHERE 
    111             pssh(:,:) = - ff_t(:,:) * rn_uzonal * zjety * 1.e3 / grav  * ptmask(:,:,1) 
    112          END WHERE 
    113          ! temperature: 
    114          pts(:,:,:,jp_tem) = 10._wp * ptmask(:,:,:)  
    115          ! salinity:   
    116          pts(:,:,:,jp_sal) = 2._wp * ptmask(:,:,:)  
    117          DO jk=1, jpkm1 
    118             WHERE( ABS(gphit) <= zjety ) pts(:,:,jk,jp_sal) = 2. + SIGN(1.,gphit(:,:)) 
     117         !                   
     118      CASE(2)    ! geostrophic zonal current shear 
     119       
     120         ! sea level: 
     121         SELECT CASE( nn_fcase ) 
     122         CASE(0)    ! f = f0 
     123            ! sea level: ssh = - fuy / g 
     124            WHERE( ABS(gphit) <= zjety ) 
     125               pssh(:,:) = - ff_t(:,:) * rn_uzonal * ABS(gphit(:,:)) * 1.e3 / grav 
     126            ELSEWHERE 
     127               pssh(:,:) = - ff_t(:,:) * rn_uzonal * zjety * 1.e3 / grav 
     128            END WHERE 
     129         CASE(1)    ! f = f0 + beta*y 
     130            ! sea level: ssh = - u / g * ( fy + 0.5 * beta * y^2 ) 
     131            zbeta = 2._wp * omega * COS( rad * rn_ppgphi0 ) / ra 
     132            WHERE( ABS(gphit) <= zjety ) 
     133               pssh(:,:) = - SIGN(rn_uzonal, gphit(:,:)) / grav   & 
     134                  &        * ( ff_t(:,:) * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 
     135            ELSEWHERE 
     136               pssh(:,:) = - SIGN(rn_uzonal, gphit(:,:)) / grav   & 
     137                  &        * ( ff_t(:,:) * SIGN(zjety, gphit(:,:)) * 1.e3 + 0.5 * zbeta * zjety * zjety * 1.e6 ) 
     138            END WHERE 
     139         END SELECT 
     140         ! temperature: 
     141         pts(:,:,:,jp_tem) = 10._wp 
     142         ! salinity:   
     143         pts(:,:,:,jp_sal) = 2. 
     144         DO jk=1, jpkm1 
     145            WHERE( ABS(gphiv) <= zjety ) pts(:,:,jk,jp_sal) = 2. + SIGN(1.,gphiv(:,:)) 
    119146         END DO 
    120147         ! velocities: 
    121148         pu(:,:,:) = 0. 
    122149         DO jk=1, jpkm1 
    123             WHERE( ABS(gphit) <= zjety ) pu(:,:,jk) = SIGN(rn_uzonal,gphit(:,:))*SIGN(1.,rn_uzonal) 
    124             WHERE( ABS(gphit) == 0.    ) pu(:,:,jk) = 0.   
    125          END DO 
    126          pv(:,:,:) = 0. 
    127           
    128       CASE(11)    ! geostrophic zonal pulse 
     150            WHERE( ABS(gphiv) <= zjety ) pu(:,:,jk) = SIGN(rn_uzonal,gphit(:,:))*SIGN(1.,rn_uzonal) 
     151            WHERE( ABS(gphiv) == 0.    ) pu(:,:,jk) = 0.   
     152         END DO 
     153         pv(:,:,:) = 0. 
     154         !                   
     155      CASE(3)    ! gaussian zonal currant 
     156 
     157         ! zonal current 
     158         DO jk=1, jpkm1 
     159            ! gphit and lambda are both in km 
     160            pu(:,:,jk) = rn_uzonal * EXP( - 0.5 * gphit(:,:)**2 / rn_lambda**2 ) 
     161         END DO 
     162          
     163         ! sea level: 
     164         pssh(:,1) = - ff_t(:,1) / grav * pu(:,1,1) * e2t(:,1) 
     165         DO jl=1, jpnj 
     166            DO jj=nldj, nlej 
     167               DO ji=nldi, nlei 
     168                  pssh(ji,jj) = pssh(ji,jj-1) - ff_t(ji,jj) / grav * pu(ji,jj,1) * e2t(ji,jj) 
     169               END DO 
     170            END DO 
     171            CALL lbc_lnk( pssh, 'T',  1. ) 
     172         END DO 
     173          
     174         ! temperature: 
     175         pts(:,:,:,jp_tem) = 10._wp 
     176         ! salinity:   
     177         DO jk=1, jpkm1 
     178            pts(:,:,jk,jp_sal) = gphit(:,:) 
     179         END DO 
     180         ! velocities: 
     181         pv(:,:,:) = 0. 
     182         !             
     183      CASE(4)    ! geostrophic zonal pulse 
    129184    
    130185         DO jj=1, jpj 
     
    138193               END IF 
    139194               IF ( ABS(gphit(ji,jj)) <= zjety ) THEN 
    140                   pssh(ji,jj) = - ff_t(ji,jj) * zdu * gphit(ji,jj) * 1.e3 / grav  * ptmask(ji,jj,1) 
     195                  pssh(ji,jj) = - ff_t(ji,jj) * zdu * gphit(ji,jj) * 1.e3 / grav 
    141196                  pu(ji,jj,:) = zdu 
    142197                  pts(ji,jj,:,jp_sal) = zdu / rn_uzonal + 1. 
    143198               ELSE 
    144                   pssh(ji,jj) = - ff_t(ji,jj) * zdu * SIGN(zjety,gphit(ji,jj)) * 1.e3 / grav  * ptmask(ji,jj,1) 
     199                  pssh(ji,jj) = - ff_t(ji,jj) * zdu * SIGN(zjety,gphit(ji,jj)) * 1.e3 / grav  
    145200                  pu(ji,jj,:) = 0. 
    146201                  pts(ji,jj,:,jp_sal) = 1. 
     
    153208         pv(:,:,:) = 0. 
    154209          
    155        CASE(2)    ! vortex 
     210          
     211       CASE(5)    ! vortex 
    156212                  ! 
    157213         zf0   = 2._wp * omega * SIN( rad * rn_ppgphi0 ) 
    158214         zumax = rn_vtxmax * SIGN(1._wp, zf0) ! Here Anticyclonic: set zumax=-1 for cyclonic 
    159          zlambda = SQRT(2._wp)*60.e3        ! Horizontal scale in meters  
     215         zlambda = SQRT(2._wp)*rn_lambda       ! Horizontal scale in meters  
    160216         zn2 = 3.e-3**2 
    161217         zH = 0.5_wp * 5000._wp 
     
    233289      END SELECT 
    234290 
    235       IF (ln_sshnoise) pssh(:,:) = pssh(:,:) + (0.1*zrandom-0.05) 
     291      IF (ln_sshnoise) CALL RANDOM_NUMBER(zrandom) 
     292      IF (ln_sshnoise) THEN 
     293         CALL RANDOM_NUMBER(zrandom) 
     294         pssh(:,:) = pssh(:,:) + ( 0.1  * zrandom(:,:) - 0.05 ) 
     295      END IF 
    236296      CALL lbc_lnk( pssh, 'T',  1. ) 
    237297      CALL lbc_lnk(  pts, 'T',  1. ) 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/MY_SRC/usrdef_nam.F90

    r9302 r9403  
    3939   REAL(wp), PUBLIC ::   rn_ppgphi0 =   38.5 ! reference latitude for beta-plane  
    4040   REAL(wp), PUBLIC ::   rn_u10     =    0.  ! 10m wind speed              [m/s] 
     41   REAL(wp), PUBLIC ::   rn_windszx =  150.  ! longitudinal wind extension  [km] 
     42   REAL(wp), PUBLIC ::   rn_windszy =  150.  ! latitudinal wind extension   [km] 
    4143   REAL(wp), PUBLIC ::   rn_uofac   =    0.  ! Uoce multiplicative factor (0.:absolute or 1.:relative winds) 
    42    REAL(wp), PUBLIC ::   rn_vtxmax  =    0.  ! initial vortex max current  [m/s] 
     44   REAL(wp), PUBLIC ::   rn_vtxmax  =    0.  ! initial canal max current  [m/s] 
    4345   REAL(wp), PUBLIC ::   rn_uzonal  =    0.  ! initial zonal current       [m/s] 
    4446   REAL(wp), PUBLIC ::   rn_ujetszx =  150.  ! longitudinal jet extension  [km] 
    4547   REAL(wp), PUBLIC ::   rn_ujetszy =  150.  ! latitudinal jet extension   [km] 
    4648   INTEGER , PUBLIC ::   nn_botcase =    0   ! bottom definition (0:flat, 1:bump) 
    47    INTEGER , PUBLIC ::   nn_initcase=    0   ! initial condition case (0=rest, 1=zonal current, 2=vortex) 
     49   INTEGER , PUBLIC ::   nn_initcase=    0   ! initial condition case (0=rest, 1=zonal current, 2=canal) 
    4850   LOGICAL , PUBLIC ::   ln_sshnoise=.false. ! add random noise on initial ssh 
     51   REAL(wp), PUBLIC ::   rn_lambda  = 50.    ! gaussian lambda 
    4952 
    5053   !!---------------------------------------------------------------------- 
     
    7780      !! 
    7881      NAMELIST/namusr_def/  rn_domszx, rn_domszy, rn_domszz, rn_dx, rn_dy, rn_dz, rn_0xratio, rn_0yratio   & 
    79          &                 , nn_fcase, rn_ppgphi0, rn_vtxmax, rn_uzonal, rn_u10, rn_uofac, rn_ujetszx, rn_ujetszy   & 
    80          &                 , nn_botcase, nn_initcase, ln_sshnoise 
     82         &                 , nn_fcase, rn_ppgphi0, rn_vtxmax, rn_uzonal, rn_ujetszx, rn_ujetszy   & 
     83         &                 , rn_u10, rn_windszx, rn_windszy, rn_uofac   & 
     84         &                 , nn_botcase, nn_initcase, ln_sshnoise, rn_lambda 
    8185      !!---------------------------------------------------------------------- 
    8286      ! 
     
    133137      WRITE(ldtxt(ii),*) '      Reference latitude                rn_ppgphi0 = ', rn_ppgphi0            ;   ii = ii + 1 
    134138      WRITE(ldtxt(ii),*) '      10m wind speed                    rn_u10     = ',     rn_u10, ' m/s'    ;   ii = ii + 1 
    135       WRITE(ldtxt(ii),*) '      Uoce multiplicative factor        rn_uofac   = ',   rn_uofac            ;   ii = ii + 1 
    136       WRITE(ldtxt(ii),*) '      initial Vortex max current        rn_vtxmax  = ',  rn_vtxmax, ' m/s'    ;   ii = ii + 1 
     139      WRITE(ldtxt(ii),*) '         wind latitudinal extension     rn_windszy = ', rn_windszy, ' km'     ;   ii = ii + 1 
     140      WRITE(ldtxt(ii),*) '         wind longitudinal extension    rn_windszx = ', rn_windszx, ' km'     ;   ii = ii + 1 
     141      WRITE(ldtxt(ii),*) '         Uoce multiplicative factor     rn_uofac   = ',   rn_uofac            ;   ii = ii + 1 
     142      WRITE(ldtxt(ii),*) '      initial Canal max current        rn_vtxmax  = ',  rn_vtxmax, ' m/s'    ;   ii = ii + 1 
    137143      WRITE(ldtxt(ii),*) '      initial zonal current             rn_uzonal  = ',  rn_uzonal, ' m/s'    ;   ii = ii + 1 
    138       WRITE(ldtxt(ii),*) '      Jet latitudinal extension         rn_ujetszy = ', rn_ujetszy, ' km'     ;   ii = ii + 1 
     144      WRITE(ldtxt(ii),*) '         Jet latitudinal extension      rn_ujetszy = ', rn_ujetszy, ' km'     ;   ii = ii + 1 
     145      WRITE(ldtxt(ii),*) '         Jet longitudinal extension     rn_ujetszx = ', rn_ujetszx, ' km'     ;   ii = ii + 1 
    139146      WRITE(ldtxt(ii),*) '      bottom definition (0:flat)        nn_botcase = ', nn_botcase            ;   ii = ii + 1 
    140147      WRITE(ldtxt(ii),*) '      initial condition case            nn_initcase= ', nn_initcase           ;   ii = ii + 1 
    141       WRITE(ldtxt(ii),*) '                   (0:rest, 1:zonal current, 2:vortex)'                       ;   ii = ii + 1 
     148      WRITE(ldtxt(ii),*) '                   (0:rest, 1:zonal current, 10:shear)'                       ;   ii = ii + 1 
    142149      WRITE(ldtxt(ii),*) '      add random noise on initial ssh   ln_sshnoise= ', ln_sshnoise           ;   ii = ii + 1 
     150      WRITE(ldtxt(ii),*) '      Gaussian lambda parameter          rn_lambda = ', rn_lambda             ;   ii = ii + 1 
    143151      ! 
    144152      !                             ! Set the lateral boundary condition of the global domain 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/MY_SRC/usrdef_sbc.F90

    r9302 r9403  
    33   !!                       ***  MODULE  usrdef_sbc  *** 
    44   !!  
    5    !!                      ===  VORTEX configuration  === 
     5   !!                      ===  CANAL configuration  === 
    66   !! 
    77   !! User defined :   surface forcing of a user configuration 
     
    1717   USE sbc_oce         ! Surface boundary condition: ocean fields 
    1818   USE phycst          ! physical constants 
    19    USE usrdef_nam, ONLY : rn_u10, rn_uofac, rn_ujetszy  
     19   USE usrdef_nam, ONLY : rn_u10, rn_uofac, rn_windszy  
    2020   ! 
    2121   USE in_out_manager  ! I/O manager 
     
    4747      !!              condition, i.e. the momentum, heat and freshwater fluxes. 
    4848      !! 
    49       !! ** Method  :   all 0 fields, for VORTEX case 
     49      !! ** Method  :   all 0 fields, for CANAL case 
    5050      !!                CAUTION : never mask the surface stress field ! 
    5151      !! 
     
    7171         ! 
    7272         utau(:,:) = 0._wp 
    73          IF( rn_u10 /= 0. .AND. rn_ujetszy > 0. ) THEN 
    74             WHERE( ABS(gphit) <= rn_ujetszy/2. ) utau(:,:) = zrhocd * rn_u10 * rn_u10 
     73         IF( rn_u10 /= 0. .AND. rn_windszy > 0. ) THEN 
     74            WHERE( ABS(gphit) <= rn_windszy/2. ) utau(:,:) = zrhocd * rn_u10 * rn_u10 
    7575         ENDIF 
    7676         vtau(:,:) = 0._wp 
     
    8787      IF( rn_uofac /= 0. ) THEN 
    8888          
    89          WHERE( ABS(gphit) <= rn_ujetszy/2. ) 
     89         WHERE( ABS(gphit) <= rn_windszy/2. ) 
    9090            zwndrel(:,:) = rn_u10 - rn_uofac * un(:,:,1) 
    9191         ELSEWHERE 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/CANAL/MY_SRC/usrdef_zgr.F90

    r9302 r9403  
    33   !!                       ***  MODULE  usrdef_zgr  *** 
    44   !! 
    5    !!                      ===  VORTEX configuration  === 
     5   !!                      ===  CANAL configuration  === 
    66   !! 
    77   !! User defined : vertical coordinate system of a user configuration 
     
    6767      ! 
    6868      IF(lwp) WRITE(numout,*) 
    69       IF(lwp) WRITE(numout,*) 'usr_def_zgr : VORTEX configuration (z-coordinate closed flat box ocean)' 
     69      IF(lwp) WRITE(numout,*) 'usr_def_zgr : CANAL configuration (z-coordinate closed flat box ocean)' 
    7070      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    7171      ! 
     
    7373      ! type of vertical coordinate 
    7474      ! --------------------------- 
    75       ld_zco    = .TRUE.         ! VORTEX case:  z-coordinate without ocean cavities 
     75      ld_zco    = .TRUE.         ! CANAL case:  z-coordinate without ocean cavities 
    7676      ld_zps    = .FALSE. 
    7777      ld_sco    = .FALSE. 
     
    137137         WRITE(numout,*) '    zgr_z   : Reference vertical z-coordinates ' 
    138138         WRITE(numout,*) '    ~~~~~~~' 
    139          WRITE(numout,*) '       VORTEX case : uniform vertical grid :' 
     139         WRITE(numout,*) '       CANAL case : uniform vertical grid :' 
    140140         WRITE(numout,*) '                     with thickness = ', zd 
    141141      ENDIF 
     
    175175      !! ** Purpose :   set the masked top and bottom ocean t-levels 
    176176      !! 
    177       !! ** Method  :   VORTEX case = closed flat box ocean without ocean cavities 
     177      !! ** Method  :   CANAL case = closed flat box ocean without ocean cavities 
    178178      !!                   k_top = 1     except along north, south, east and west boundaries 
    179179      !!                   k_bot = jpk-1 except along north, south, east and west boundaries 
     
    191191      IF(lwp) WRITE(numout,*) '    zgr_top_bot : defines the top and bottom wet ocean levels.' 
    192192      IF(lwp) WRITE(numout,*) '    ~~~~~~~~~~~' 
    193       IF(lwp) WRITE(numout,*) '       VORTEX case : closed flat box ocean without ocean cavities' 
     193      IF(lwp) WRITE(numout,*) '       CANAL case : closed flat box ocean without ocean cavities' 
    194194      ! 
    195195      SELECT CASE(nn_botcase) 
Note: See TracChangeset for help on using the changeset viewer.