Changeset 3839 for branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OFF_SRC
- Timestamp:
- 2013-03-14T19:00:38+01:00 (11 years ago)
- Location:
- branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OFF_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OFF_SRC/domain.F90
r2574 r3839 247 247 !! vertical scale factors. 248 248 !! 249 !! ** Method : - reference 1D vertical coordinate (gdep._ 0, e3._0)249 !! ** Method : - reference 1D vertical coordinate (gdep._1d, e3._1d) 250 250 !! - read/set ocean depth and ocean levels (bathy, mbathy) 251 251 !! - vertical coordinate (gdep., e3.) depending on the -
branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OFF_SRC/domrea.F90
r2715 r3839 174 174 CALL iom_get( inum4, jpdom_data, 'e3w', e3w ) 175 175 176 CALL iom_get( inum4, jpdom_unknown, 'gdept_ 0', gdept_0) ! depth177 CALL iom_get( inum4, jpdom_unknown, 'gdepw_ 0', gdepw_0)176 CALL iom_get( inum4, jpdom_unknown, 'gdept_1d', gdept_1d ) ! depth 177 CALL iom_get( inum4, jpdom_unknown, 'gdepw_1d', gdepw_1d ) 178 178 ENDIF 179 179 180 180 181 181 IF( ln_zps ) THEN ! z-coordinate - partial steps 182 CALL iom_get( inum4, jpdom_unknown, 'gdept_ 0', gdept_0) ! reference depth183 CALL iom_get( inum4, jpdom_unknown, 'gdepw_ 0', gdepw_0)184 CALL iom_get( inum4, jpdom_unknown, 'e3t_ 0' , e3t_0) ! reference scale factors185 CALL iom_get( inum4, jpdom_unknown, 'e3w_ 0' , e3w_0)182 CALL iom_get( inum4, jpdom_unknown, 'gdept_1d', gdept_1d ) ! reference depth 183 CALL iom_get( inum4, jpdom_unknown, 'gdepw_1d', gdepw_1d ) 184 CALL iom_get( inum4, jpdom_unknown, 'e3t_1d' , e3t_1d ) ! reference scale factors 185 CALL iom_get( inum4, jpdom_unknown, 'e3w_1d' , e3w_1d ) 186 186 ! 187 187 IF( nmsh <= 6 ) THEN ! 3D vertical scale factors … … 195 195 ! ! deduces the 3D scale factors 196 196 DO jk = 1, jpk 197 e3t(:,:,jk) = e3t_ 0(jk)! set to the ref. factors198 e3u(:,:,jk) = e3t_ 0(jk)199 e3v(:,:,jk) = e3t_ 0(jk)200 e3w(:,:,jk) = e3w_ 0(jk)197 e3t(:,:,jk) = e3t_1d(jk) ! set to the ref. factors 198 e3u(:,:,jk) = e3t_1d(jk) 199 e3v(:,:,jk) = e3t_1d(jk) 200 e3w(:,:,jk) = e3w_1d(jk) 201 201 END DO 202 202 DO jj = 1,jpj ! adjust the deepest values 203 203 DO ji = 1,jpi 204 204 ik = mbkt(ji,jj) 205 e3t(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_ 0(1) * ( 1._wp - tmask(ji,jj,1) )206 e3w(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_ 0(1) * ( 1._wp - tmask(ji,jj,1) )205 e3t(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_1d(1) * ( 1._wp - tmask(ji,jj,1) ) 206 e3w(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_1d(1) * ( 1._wp - tmask(ji,jj,1) ) 207 207 END DO 208 208 END DO … … 219 219 ! 220 220 DO jk = 1, jpk ! set to z-scale factor if zero (i.e. along closed boundaries) 221 WHERE( e3u(:,:,jk) == 0._wp ) e3u(:,:,jk) = e3t_ 0(jk)222 WHERE( e3v(:,:,jk) == 0._wp ) e3v(:,:,jk) = e3t_ 0(jk)221 WHERE( e3u(:,:,jk) == 0._wp ) e3u(:,:,jk) = e3t_1d(jk) 222 WHERE( e3v(:,:,jk) == 0._wp ) e3v(:,:,jk) = e3t_1d(jk) 223 223 END DO 224 224 END IF … … 232 232 ! 233 233 DO jk = 1, jpk ! deduces the 3D depth 234 gdept(:,:,jk) = gdept_ 0(jk)235 gdepw(:,:,jk) = gdepw_ 0(jk)234 gdept(:,:,jk) = gdept_1d(jk) 235 gdepw(:,:,jk) = gdepw_1d(jk) 236 236 END DO 237 237 DO jj = 1, jpj … … 250 250 251 251 IF( ln_zco ) THEN ! Vertical coordinates and scales factors 252 CALL iom_get( inum4, jpdom_unknown, 'gdept_ 0', gdept_0) ! depth253 CALL iom_get( inum4, jpdom_unknown, 'gdepw_ 0', gdepw_0)254 CALL iom_get( inum4, jpdom_unknown, 'e3t_ 0' , e3t_0)255 CALL iom_get( inum4, jpdom_unknown, 'e3w_ 0' , e3w_0)252 CALL iom_get( inum4, jpdom_unknown, 'gdept_1d', gdept_1d ) ! depth 253 CALL iom_get( inum4, jpdom_unknown, 'gdepw_1d', gdepw_1d ) 254 CALL iom_get( inum4, jpdom_unknown, 'e3t_1d' , e3t_1d ) 255 CALL iom_get( inum4, jpdom_unknown, 'e3w_1d' , e3w_1d ) 256 256 ENDIF 257 257 258 258 !!gm BUG in s-coordinate this does not work! 259 259 ! deepest/shallowest W level Above/Below ~10m 260 zrefdep = 10._wp - ( 0.1_wp * MINVAL(e3w_ 0) ) ! ref. depth with tolerance (10% of minimum layer thickness)261 nlb10 = MINLOC( gdepw_ 0, mask = gdepw_0> zrefdep, dim = 1 ) ! shallowest W level Below ~10m260 zrefdep = 10._wp - ( 0.1_wp * MINVAL(e3w_1d) ) ! ref. depth with tolerance (10% of minimum layer thickness) 261 nlb10 = MINLOC( gdepw_1d, mask = gdepw_1d > zrefdep, dim = 1 ) ! shallowest W level Below ~10m 262 262 nla10 = nlb10 - 1 ! deepest W level Above ~10m 263 263 !!gm end bug … … 300 300 WRITE(numout,*) ' Reference z-coordinate depth and scale factors:' 301 301 WRITE(numout, "(9x,' level gdept gdepw e3t e3w ')" ) 302 WRITE(numout, "(10x, i4, 4f9.2)" ) ( jk, gdept_ 0(jk), gdepw_0(jk), e3t_0(jk), e3w_0(jk), jk = 1, jpk )302 WRITE(numout, "(10x, i4, 4f9.2)" ) ( jk, gdept_1d(jk), gdepw_1d(jk), e3t_1d(jk), e3w_1d(jk), jk = 1, jpk ) 303 303 ENDIF 304 304 305 305 DO jk = 1, jpk 306 IF( e3w_ 0 (jk) <= 0._wp .OR. e3t_0 (jk) <= 0._wp ) CALL ctl_stop( ' e3w_0 or e3t_0=< 0 ' )307 IF( gdepw_ 0(jk) < 0._wp .OR. gdept_0(jk) < 0._wp ) CALL ctl_stop( ' gdepw_0 or gdept_0< 0 ' )306 IF( e3w_1d (jk) <= 0._wp .OR. e3t_1d (jk) <= 0._wp ) CALL ctl_stop( ' e3w_1d or e3t_1d =< 0 ' ) 307 IF( gdepw_1d(jk) < 0._wp .OR. gdept_1d(jk) < 0._wp ) CALL ctl_stop( ' gdepw_1d or gdept_1d < 0 ' ) 308 308 END DO 309 309 ! ! ============================
Note: See TracChangeset
for help on using the changeset viewer.