- Timestamp:
- 2016-11-06T17:31:33+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r7189 r7200 23 23 !!---------------------------------------------------------------------- 24 24 !! dom_zgr : read or set the ocean vertical coordinate system 25 !! zgr_read : read the vertical domain coordinate and mask in domain_cfgfile25 !! zgr_read : read the vertical information in the domain configuration file 26 26 !! zgr_top_bot : ocean top and bottom level for t-, u, and v-points with 1 as minimum value 27 27 !!--------------------------------------------------------------------- … … 89 89 IF( ln_read_cfg ) THEN !== read in mesh_mask.nc file ==! 90 90 IF(lwp) WRITE(numout,*) 91 IF(lwp) WRITE(numout,*) ' Read vertical mesh in "domain_cfg"file'91 IF(lwp) WRITE(numout,*) ' Read vertical mesh in ', TRIM( cn_domcfg ), ' file' 92 92 ! 93 93 CALL zgr_read ( ln_zco , ln_zps , ln_sco, ln_isfcav, & … … 120 120 IF(lwp) THEN ! Control print 121 121 WRITE(numout,*) 122 WRITE(numout,*) ' Type of vertical coordinate (read in domain_cfg.nc or set through user defined routines) :'122 WRITE(numout,*) ' Type of vertical coordinate (read in ', TRIM( cn_domcfg ), ' file or set in userdef_nam) :' 123 123 WRITE(numout,*) ' z-coordinate - full steps ln_zco = ', ln_zco 124 124 WRITE(numout,*) ' z-coordinate - partial steps ln_zps = ', ln_zps … … 178 178 !! *** ROUTINE zgr_read *** 179 179 !! 180 !! ** Purpose : Read the vertical information in a domain_cfg.ncfile180 !! ** Purpose : Read the vertical information in the domain configuration file 181 181 !! 182 182 !!---------------------------------------------------------------------- … … 198 198 IF(lwp) THEN 199 199 WRITE(numout,*) 200 WRITE(numout,*) ' zgr_read : read the vertical coordinates in "domain_cfg.nc"file'201 WRITE(numout,*) ' ~~~~~~~~ jpiglo = ', jpiglo, ' jpjglo = ', jpjglo, ' jpkglo = ', jpkglo202 ENDIF 203 ! 204 CALL iom_open( 'domain_cfg', inum )205 ! 206 ! !type of vertical coordinate200 WRITE(numout,*) ' zgr_read : read the vertical coordinates in ', TRIM( cn_domcfg ), ' file' 201 WRITE(numout,*) ' ~~~~~~~~' 202 ENDIF 203 ! 204 CALL iom_open( cn_domcfg, inum ) 205 ! 206 ! !* type of vertical coordinate 207 207 CALL iom_get( inum, 'ln_zco' , z_zco ) 208 208 CALL iom_get( inum, 'ln_zps' , z_zps ) … … 212 212 IF( z_sco == 0._wp ) THEN ; ld_sco = .false. ; ELSE ; ld_sco = .true. ; ENDIF 213 213 ! 214 ! !ocean cavities under iceshelves214 ! !* ocean cavities under iceshelves 215 215 CALL iom_get( inum, 'ln_isfcav', z_cav ) 216 216 IF( z_cav == 0._wp ) THEN ; ld_isfcav = .false. ; ELSE ; ld_isfcav = .true. ; ENDIF 217 217 ! 218 ! ! 1D vertical scale factors (reference coordinate)219 CALL iom_get( inum, jpdom_unknown, 'e3t_1d' , pe3t_1d ) 218 ! !* vertical scale factors 219 CALL iom_get( inum, jpdom_unknown, 'e3t_1d' , pe3t_1d ) ! 1D reference coordinate 220 220 CALL iom_get( inum, jpdom_unknown, 'e3w_1d' , pe3w_1d ) 221 221 ! 222 ! ! 3D vertical scale factors 223 CALL iom_get( inum, jpdom_data, 'e3t_0' , pe3t , lrowattr=ln_use_jattr ) 222 CALL iom_get( inum, jpdom_data, 'e3t_0' , pe3t , lrowattr=ln_use_jattr ) ! 3D coordinate 224 223 CALL iom_get( inum, jpdom_data, 'e3u_0' , pe3u , lrowattr=ln_use_jattr ) 225 224 CALL iom_get( inum, jpdom_data, 'e3v_0' , pe3v , lrowattr=ln_use_jattr ) … … 229 228 CALL iom_get( inum, jpdom_data, 'e3vw_0' , pe3vw , lrowattr=ln_use_jattr ) 230 229 ! 231 ! ! 1D & 3D depths 232 ! 233 ! ! old depth definition (obsolescent feature) 230 ! !* depths 231 ! !- old depth definition (obsolescent feature) 234 232 IF( iom_varid( inum, 'gdept_1d', ldstop = .FALSE. ) > 0 .AND. & 235 233 & iom_varid( inum, 'gdepw_1d', ldstop = .FALSE. ) > 0 .AND. & … … 237 235 & iom_varid( inum, 'gdepw_0' , ldstop = .FALSE. ) > 0 ) THEN 238 236 CALL ctl_warn( 'zgr_read : old definition of depths and scale factors used ', & 239 & 'depths at t- and w-points read in domain_cfgfile')237 & ' depths at t- and w-points read in the domain configuration file') 240 238 CALL iom_get( inum, jpdom_unknown, 'gdept_1d', pdept_1d ) 241 239 CALL iom_get( inum, jpdom_unknown, 'gdepw_1d', pdepw_1d ) … … 243 241 CALL iom_get( inum, jpdom_data , 'gdepw_0' , pdepw , lrowattr=ln_use_jattr ) 244 242 ! 245 ELSE ! depths computed from e3. scale factors 246 ! 243 ELSE !- depths computed from e3. scale factors 247 244 CALL e3_to_depth( pe3t_1d, pe3w_1d, pdept_1d, pdepw_1d ) ! 1D reference depth 245 CALL e3_to_depth( pe3t , pe3w , pdept , pdepw ) ! 3D depths 248 246 IF(lwp) THEN 249 247 WRITE(numout,*) … … 252 250 WRITE(numout, "(10x, i4, 4f9.2)" ) ( jk, pdept_1d(jk), pdepw_1d(jk), pe3t_1d(jk), pe3w_1d(jk), jk = 1, jpk ) 253 251 ENDIF 254 ! 255 CALL e3_to_depth( pe3t , pe3w , pdept , pdepw ) ! 3D depths 256 ! 257 ENDIF 258 ! 259 ! ! ocean top and bottom level 260 CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d , lrowattr=ln_use_jattr ) ! nb of ocean T-points 252 ENDIF 253 ! 254 ! !* ocean top and bottom level 255 CALL iom_get( inum, jpdom_data, 'top_level' , z2d , lrowattr=ln_use_jattr ) ! 1st wet T-points (ISF) 256 k_top(:,:) = INT( z2d(:,:) ) 257 CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d , lrowattr=ln_use_jattr ) ! last wet T-points 261 258 k_bot(:,:) = INT( z2d(:,:) ) 262 CALL iom_get( inum, jpdom_data, 'top_level' , z2d , lrowattr=ln_use_jattr ) ! nb of ocean T-points (ISF)263 k_top(:,:) = INT( z2d(:,:) )264 259 ! 265 260 CALL iom_close( inum )
Note: See TracChangeset
for help on using the changeset viewer.