- Timestamp:
- 2013-11-04T12:51:55+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r3764 r4147 49 49 PUBLIC dom_zgr ! called by dom_init.F90 50 50 51 ! 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) 54 54 ! 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 coordinates55 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 59 59 ! 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 parameter60 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 63 63 ! ! ( rn_bb=0; top only, rn_bb =1; top and bottom) 64 64 ! Siddorn and Furner stretching parameters 65 LOGICAL :: ln_sigcrit = .false.! use sigma coordinates below critical depth (T) or Z coordinates (F) for Siddorn & Furner stretch66 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 coord68 REAL(wp) :: rn_zs = 1.0_wp! depth of surface grid box65 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 69 69 ! 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 Zb71 REAL(wp) :: rn_zb_b = -0.2_wp! offset for calculating Zb70 REAL(wp) :: rn_zb_a ! bathymetry scaling factor for calculating Zb 71 REAL(wp) :: rn_zb_b ! offset for calculating Zb 72 72 73 73 !! * Substitutions … … 99 99 !!---------------------------------------------------------------------- 100 100 INTEGER :: ioptio, ibat ! local integer 101 INTEGER :: ios 101 102 ! 102 103 NAMELIST/namzgr/ ln_zco, ln_zps, ln_sco … … 105 106 IF( nn_timing == 1 ) CALL timing_start('dom_zgr') 106 107 ! 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 ) 110 901 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 ) 114 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr in configuration namelist', lwp ) 115 WRITE ( numond, namzgr ) 109 116 110 117 IF(lwp) THEN ! Control print … … 359 366 IF(lwp) WRITE(numout,*) ' zgr_bat : defines level and meter bathymetry' 360 367 IF(lwp) WRITE(numout,*) ' ~~~~~~~' 361 362 368 ! ! ================== ! 363 369 IF( ntopo == 0 .OR. ntopo == -1 ) THEN ! defined by hand ! … … 557 563 ! Configuration specific domain modifications 558 564 ! (here, ORCA arctic configuration: suppress Med Sea) 559 IF( cp_cfg == "orca" .AND. lzoom_arct) THEN565 IF( cp_cfg == "orca" .AND. cp_cfz == "arctic" ) THEN 560 566 SELECT CASE ( jp_cfg ) 561 567 ! ! ======================= … … 606 612 INTEGER :: icompt, ibtest, ikmax ! temporary integers 607 613 REAL(wp), POINTER, DIMENSION(:,:) :: zbathy 614 608 615 !!---------------------------------------------------------------------- 609 616 ! … … 615 622 IF(lwp) WRITE(numout,*) ' zgr_bat_ctl : check the bathymetry' 616 623 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 617 618 624 ! ! Suppress isolated ocean grid points 619 625 IF(lwp) WRITE(numout,*) … … 649 655 mbathy(:,:) = INT( zbathy(:,:) ) 650 656 ENDIF 651 652 657 ! ! East-west cyclic boundary conditions 653 658 IF( nperio == 0 ) THEN … … 680 685 ! STOP 'dom_mba' 681 686 ENDIF 682 683 687 ! Boundary condition on mbathy 684 688 IF( .NOT.lk_mpp ) THEN … … 689 693 mbathy(:,:) = INT( zbathy(:,:) ) 690 694 ENDIF 691 692 695 ! Number of ocean level inferior or equal to jpkm1 693 696 ikmax = 0 … … 1100 1103 INTEGER :: ji, jj, jk, jl ! dummy loop argument 1101 1104 INTEGER :: iip1, ijp1, iim1, ijm1 ! temporary integers 1105 INTEGER :: ios ! Local integer output status for namelist read 1102 1106 REAL(wp) :: zrmax, ztaper ! temporary scalars 1103 1107 ! … … 1112 1116 CALL wrk_alloc( jpi, jpj, zenv, ztmp, zmsk, zri, zrj, zhbat ) 1113 1117 ! 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) 1120 901 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 ) 1124 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr_sco in configuration namelist', lwp ) 1125 WRITE ( numond, namzgr_sco ) 1116 1126 1117 1127 IF(lwp) THEN ! control print 1118 1128 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' 1120 1130 WRITE(numout,*) '~~~~~~~~~~~' 1121 1131 WRITE(numout,*) ' Namelist namzgr_sco'
Note: See TracChangeset
for help on using the changeset viewer.