- Timestamp:
- 2013-01-23T15:33:04+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r3702 r3764 16 16 !! 3.3 ! 2010-11 (G. Madec) add mbk. arrays associated to the deepest ocean level 17 17 !! 3.4 ! 2012-08 (J. Siddorn) added Siddorn and Furner stretching function 18 !! 3.4 ! 2012-12 (R. Bourdalle-Badie and G. Reffray) modify C1D case 18 19 !!---------------------------------------------------------------------- 19 20 … … 40 41 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 41 42 USE lib_mpp ! distributed memory computing library 42 USE wrk_nemo ! Memory allocation43 USE timing ! Timing43 USE wrk_nemo ! Memory allocation 44 USE timing ! Timing 44 45 45 46 IMPLICIT NONE … … 84 85 !! *** ROUTINE dom_zgr *** 85 86 !! 86 !! ** Purpose : set the depth of model levels and the resulting87 !! vertical scale factors.87 !! ** Purpose : set the depth of model levels and the resulting 88 !! vertical scale factors. 88 89 !! 89 90 !! ** Method : - reference 1D vertical coordinate (gdep._0, e3._0) … … 97 98 !! ** Action : define gdep., e3., mbathy and bathy 98 99 !!---------------------------------------------------------------------- 99 INTEGER :: ioptio = 0 ! temporaryinteger100 INTEGER :: ioptio, ibat ! local integer 100 101 ! 101 102 NAMELIST/namzgr/ ln_zco, ln_zps, ln_sco 102 103 !!---------------------------------------------------------------------- 103 104 ! 104 IF( nn_timing == 1 ) CALL timing_start('dom_zgr')105 IF( nn_timing == 1 ) CALL timing_start('dom_zgr') 105 106 ! 106 107 REWIND( numnam ) ! Read Namelist namzgr : vertical coordinate' … … 118 119 119 120 ioptio = 0 ! Check Vertical coordinate options 120 IF( ln_zco )ioptio = ioptio + 1121 IF( ln_zps )ioptio = ioptio + 1122 IF( ln_sco )ioptio = ioptio + 1121 IF( ln_zco ) ioptio = ioptio + 1 122 IF( ln_zps ) ioptio = ioptio + 1 123 IF( ln_sco ) ioptio = ioptio + 1 123 124 IF( ioptio /= 1 ) CALL ctl_stop( ' none or several vertical coordinate options used' ) 124 125 ! … … 127 128 CALL zgr_z ! Reference z-coordinate system (always called) 128 129 CALL zgr_bat ! Bathymetry fields (levels and meters) 130 IF( lk_c1d ) CALL lbc_lnk( bathy , 'T', 1._wp ) ! 1D config.: same bathy value over the 3x3 domain 129 131 IF( ln_zco ) CALL zgr_zco ! z-coordinate 130 132 IF( ln_zps ) CALL zgr_zps ! Partial step z-coordinate … … 134 136 ! ----------------------------------- 135 137 IF( lzoom ) CALL zgr_bat_zoom ! correct mbathy in case of zoom subdomain 136 IF( .NOT.lk_c1d ) CALL zgr_bat_ctl ! check bathymetry (mbathy) and suppress iso ated ocean points138 IF( .NOT.lk_c1d ) CALL zgr_bat_ctl ! check bathymetry (mbathy) and suppress isolated ocean points 137 139 CALL zgr_bot_level ! deepest ocean level for t-, u- and v-points 138 140 ! 139 ! 140 141 IF( lk_c1d ) THEN ! 1D config.: same mbathy value over the 3x3 domain 142 ibat = mbathy(2,2) 143 mbathy(:,:) = ibat 144 END IF 145 ! 141 146 IF( nprint == 1 .AND. lwp ) THEN 142 147 WRITE(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) … … 478 483 END DO 479 484 END DO 480 IF(lwp) WRITE(numout,*) 485 IF(lwp) WRITE(numout,*) 481 486 IF(lwp) WRITE(numout,*) ' orca_r2: Gibraltar strait open at i=',ii0,' j=',ij0 482 487 ! … … 742 747 ! 743 748 mbkt(:,:) = MAX( mbathy(:,:) , 1 ) ! bottom k-index of T-level (=1 over land) 749 744 750 ! ! bottom k-index of W-level = mbkt+1 745 751 DO jj = 1, jpjm1 ! bottom k-index of u- (v-) level … … 1220 1226 END DO 1221 1227 ! 1222 ! Apply lateral boundary condition CAUTION: ke ptthe value when the lbc field is zero1228 ! Apply lateral boundary condition CAUTION: keep the value when the lbc field is zero 1223 1229 ztmp(:,:) = zenv(:,:) ; CALL lbc_lnk( zenv, 'T', 1._wp ) 1224 1230 DO jj = 1, nlcj … … 1231 1237 ! ! ================ ! 1232 1238 ! 1233 ! ! envelop bathymetry saved in hbatt 1239 ! Fill ghost rows with appropriate values to avoid undefined e3 values with some mpp decompositions 1240 DO ji = nlci+1, jpi 1241 zenv(ji,1:nlcj) = zenv(nlci,1:nlcj) 1242 END DO 1243 ! 1244 DO jj = nlcj+1, jpj 1245 zenv(:,jj) = zenv(:,nlcj) 1246 END DO 1247 ! 1248 ! Envelope bathymetry saved in hbatt 1234 1249 hbatt(:,:) = zenv(:,:) 1235 1250 IF( MINVAL( gphit(:,:) ) * MAXVAL( gphit(:,:) ) <= 0._wp ) THEN
Note: See TracChangeset
for help on using the changeset viewer.