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 4147 for branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90 – NEMO

Ignore:
Timestamp:
2013-11-04T12:51:55+01:00 (10 years ago)
Author:
cetlod
Message:

merge in dev_LOCEAN_2013, the 1st development branch dev_r3853_CNRS9_Confsetting, from its starting point ( r3853 ) on the trunk: see ticket #1169

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r3764 r4147  
    4949   PUBLIC   dom_zgr        ! called by dom_init.F90 
    5050 
    51    !                                       !!* Namelist namzgr_sco * 
    52    LOGICAL  ::   ln_s_sh94   = .false.      ! use hybrid s-sig Song and Haidvogel 1994 stretching function fssig1 (ln_sco=T) 
    53    LOGICAL  ::   ln_s_sf12   = .true.       ! use hybrid s-z-sig Siddorn and Furner 2012 stretching function fgamma (ln_sco=T) 
     51   !                              !!* Namelist namzgr_sco * 
     52   LOGICAL  ::   ln_s_sh94         ! use hybrid s-sig Song and Haidvogel 1994 stretching function fssig1 (ln_sco=T) 
     53   LOGICAL  ::   ln_s_sf12         ! use hybrid s-z-sig Siddorn and Furner 2012 stretching function fgamma (ln_sco=T) 
    5454   ! 
    55    REAL(wp) ::   rn_sbot_min =  300._wp     ! minimum depth of s-bottom surface (>0) (m) 
    56    REAL(wp) ::   rn_sbot_max = 5250._wp     ! maximum depth of s-bottom surface (= ocean depth) (>0) (m) 
    57    REAL(wp) ::   rn_rmax     =    0.15_wp   ! maximum cut-off r-value allowed (0<rn_rmax<1) 
    58    REAL(wp) ::   rn_hc       =  150._wp     ! Critical depth for transition from sigma to stretched coordinates 
     55   REAL(wp) ::   rn_sbot_min       ! minimum depth of s-bottom surface (>0) (m) 
     56   REAL(wp) ::   rn_sbot_max       ! maximum depth of s-bottom surface (= ocean depth) (>0) (m) 
     57   REAL(wp) ::   rn_rmax           ! maximum cut-off r-value allowed (0<rn_rmax<1) 
     58   REAL(wp) ::   rn_hc             ! Critical depth for transition from sigma to stretched coordinates 
    5959   ! Song and Haidvogel 1994 stretching parameters 
    60    REAL(wp) ::   rn_theta    =    6.00_wp   ! surface control parameter (0<=rn_theta<=20) 
    61    REAL(wp) ::   rn_thetb    =    0.75_wp   ! bottom control parameter  (0<=rn_thetb<= 1) 
    62    REAL(wp) ::   rn_bb       =    0.80_wp   ! stretching parameter  
     60   REAL(wp) ::   rn_theta          ! surface control parameter (0<=rn_theta<=20) 
     61   REAL(wp) ::   rn_thetb          ! bottom control parameter  (0<=rn_thetb<= 1) 
     62   REAL(wp) ::   rn_bb             ! stretching parameter  
    6363   !                                        ! ( rn_bb=0; top only, rn_bb =1; top and bottom) 
    6464   ! Siddorn and Furner stretching parameters 
    65    LOGICAL  ::   ln_sigcrit  = .false.      ! use sigma coordinates below critical depth (T) or Z coordinates (F) for Siddorn & Furner stretch  
    66    REAL(wp) ::   rn_alpha    =    4.4_wp    ! control parameter ( > 1 stretch towards surface, < 1 towards seabed) 
    67    REAL(wp) ::   rn_efold    =    0.0_wp    !  efold length scale for transition to stretched coord 
    68    REAL(wp) ::   rn_zs       =    1.0_wp    !  depth of surface grid box 
     65   LOGICAL  ::   ln_sigcrit        ! use sigma coordinates below critical depth (T) or Z coordinates (F) for Siddorn & Furner stretch  
     66   REAL(wp) ::   rn_alpha          ! control parameter ( > 1 stretch towards surface, < 1 towards seabed) 
     67   REAL(wp) ::   rn_efold          !  efold length scale for transition to stretched coord 
     68   REAL(wp) ::   rn_zs             !  depth of surface grid box 
    6969                           !  bottom cell depth (Zb) is a linear function of water depth Zb = H*a + b 
    70    REAL(wp) ::   rn_zb_a     =    0.024_wp  !  bathymetry scaling factor for calculating Zb 
    71    REAL(wp) ::   rn_zb_b     =   -0.2_wp    !  offset for calculating Zb 
     70   REAL(wp) ::   rn_zb_a           !  bathymetry scaling factor for calculating Zb 
     71   REAL(wp) ::   rn_zb_b           !  offset for calculating Zb 
    7272 
    7373  !! * Substitutions 
     
    9999      !!---------------------------------------------------------------------- 
    100100      INTEGER ::   ioptio, ibat   ! local integer 
     101      INTEGER ::   ios 
    101102      ! 
    102103      NAMELIST/namzgr/ ln_zco, ln_zps, ln_sco 
     
    105106      IF( nn_timing == 1 )   CALL timing_start('dom_zgr') 
    106107      ! 
    107       REWIND( numnam )                 ! Read Namelist namzgr : vertical coordinate' 
    108       READ  ( numnam, namzgr ) 
     108      REWIND( numnam_ref )              ! Namelist namzgr in reference namelist : Vertical coordinate 
     109      READ  ( numnam_ref, namzgr, IOSTAT = ios, ERR = 901 ) 
     110901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr in reference namelist', lwp ) 
     111 
     112      REWIND( numnam_cfg )              ! Namelist namzgr in configuration namelist : Vertical coordinate 
     113      READ  ( numnam_cfg, namzgr, IOSTAT = ios, ERR = 902 ) 
     114902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr in configuration namelist', lwp ) 
     115      WRITE ( numond, namzgr ) 
    109116 
    110117      IF(lwp) THEN                     ! Control print 
     
    359366      IF(lwp) WRITE(numout,*) '    zgr_bat : defines level and meter bathymetry' 
    360367      IF(lwp) WRITE(numout,*) '    ~~~~~~~' 
    361  
    362368      !                                               ! ================== !  
    363369      IF( ntopo == 0 .OR. ntopo == -1 ) THEN          !   defined by hand  ! 
     
    557563      ! Configuration specific domain modifications 
    558564      ! (here, ORCA arctic configuration: suppress Med Sea) 
    559       IF( cp_cfg == "orca" .AND. lzoom_arct ) THEN 
     565      IF( cp_cfg == "orca" .AND. cp_cfz == "arctic" ) THEN 
    560566         SELECT CASE ( jp_cfg ) 
    561567         !                                        ! ======================= 
     
    606612      INTEGER ::   icompt, ibtest, ikmax         ! temporary integers 
    607613      REAL(wp), POINTER, DIMENSION(:,:) ::  zbathy 
     614 
    608615      !!---------------------------------------------------------------------- 
    609616      ! 
     
    615622      IF(lwp) WRITE(numout,*) '    zgr_bat_ctl : check the bathymetry' 
    616623      IF(lwp) WRITE(numout,*) '    ~~~~~~~~~~~' 
    617  
    618624      !                                          ! Suppress isolated ocean grid points 
    619625      IF(lwp) WRITE(numout,*) 
     
    649655         mbathy(:,:) = INT( zbathy(:,:) ) 
    650656      ENDIF 
    651  
    652657      !                                          ! East-west cyclic boundary conditions 
    653658      IF( nperio == 0 ) THEN 
     
    680685         !         STOP 'dom_mba' 
    681686      ENDIF 
    682  
    683687      !  Boundary condition on mbathy 
    684688      IF( .NOT.lk_mpp ) THEN  
     
    689693         mbathy(:,:) = INT( zbathy(:,:) ) 
    690694      ENDIF 
    691  
    692695      ! Number of ocean level inferior or equal to jpkm1 
    693696      ikmax = 0 
     
    11001103      INTEGER  ::   ji, jj, jk, jl           ! dummy loop argument 
    11011104      INTEGER  ::   iip1, ijp1, iim1, ijm1   ! temporary integers 
     1105      INTEGER  ::   ios                      ! Local integer output status for namelist read 
    11021106      REAL(wp) ::   zrmax, ztaper   ! temporary scalars 
    11031107      ! 
     
    11121116      CALL wrk_alloc( jpi, jpj,      zenv, ztmp, zmsk, zri, zrj, zhbat                           ) 
    11131117      ! 
    1114       REWIND( numnam )                       ! Read Namelist namzgr_sco : sigma-stretching parameters 
    1115       READ  ( numnam, namzgr_sco ) 
     1118      REWIND( numnam_ref )              ! Namelist namzgr_sco in reference namelist : Sigma-stretching parameters 
     1119      READ  ( numnam_ref, namzgr_sco, IOSTAT = ios, ERR = 901) 
     1120901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr_sco in reference namelist', lwp ) 
     1121 
     1122      REWIND( numnam_cfg )              ! Namelist namzgr_sco in configuration namelist : Sigma-stretching parameters 
     1123      READ  ( numnam_cfg, namzgr_sco, IOSTAT = ios, ERR = 902 ) 
     1124902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr_sco in configuration namelist', lwp ) 
     1125      WRITE ( numond, namzgr_sco ) 
    11161126 
    11171127      IF(lwp) THEN                           ! control print 
    11181128         WRITE(numout,*) 
    1119          WRITE(numout,*) 'dom:zgr_sco : s-coordinate or hybrid z-s-coordinate' 
     1129         WRITE(numout,*) 'domzgr_sco : s-coordinate or hybrid z-s-coordinate' 
    11201130         WRITE(numout,*) '~~~~~~~~~~~' 
    11211131         WRITE(numout,*) '   Namelist namzgr_sco' 
Note: See TracChangeset for help on using the changeset viewer.