Changeset 2482
- Timestamp:
- 2010-12-18T09:43:49+01:00 (14 years ago)
- Location:
- branches/nemo_v3_3_beta/NEMOGCM
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r2473 r2482 14 14 !! 11 - Obs & Assim (namobs, nam_asminc) 15 15 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 16 ! CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.17 16 18 17 !!====================================================================== … … 78 77 &namdom ! space and time domain (bathymetry, mesh, timestep) 79 78 !----------------------------------------------------------------------- 80 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file79 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file 81 80 nn_closea = 0 ! closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain 82 81 nn_msh = 0 ! create (=1) a mesh file (coordinates, scale factors, masks) or not (=0) 82 rn_hmin = -3. ! minimum depth of the ocean (>0) or minimum number of ocean level (<0) 83 83 rn_e3zps_min= 5. ! the thickness of the partial step is set larger than the minimum 84 84 rn_e3zps_rat= 0.1 ! of e3zps_min and e3zps_rat * e3t (N.B. 0<e3zps_rat<1) -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/GYRE_LOBSTER/EXP00/namelist
r2473 r2482 14 14 !! 11 - Obs & Assim (namobs, nam_asminc) 15 15 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 16 ! CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.17 16 18 17 !!====================================================================== … … 78 77 &namdom ! space and time domain (bathymetry, mesh, timestep) 79 78 !----------------------------------------------------------------------- 80 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file79 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file 81 80 nn_closea = 0 ! closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain 82 81 nn_msh = 0 ! create (=1) a mesh file (coordinates, scale factors, masks) or not (=0) 82 rn_hmin = -3. ! minimum depth of the ocean (>0) or minimum number of ocean level (<0) 83 83 rn_e3zps_min= 5. ! the thickness of the partial step is set larger than the minimum 84 84 rn_e3zps_rat= 0.1 ! of e3zps_min and e3zps_rat * e3t (N.B. 0<e3zps_rat<1) -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/1_namelist
r2478 r2482 14 14 !! 11 - Obs & Assim (namobs, nam_asminc) 15 15 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 16 ! CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.17 16 18 17 !!====================================================================== … … 78 77 &namdom ! space and time domain (bathymetry, mesh, timestep) 79 78 !----------------------------------------------------------------------- 80 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file79 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file 81 80 nn_closea = 0 ! closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain 82 81 nn_msh = 0 ! create (=1) a mesh file (coordinates, scale factors, masks) or not (=0) 82 rn_hmin = -3. ! minimum depth of the ocean (>0) or minimum number of ocean level (<0) 83 83 rn_e3zps_min= 20. ! the thickness of the partial step is set larger than the minimum 84 84 rn_e3zps_rat= 0.1 ! of e3zps_min and e3zps_rat * e3t (N.B. 0<e3zps_rat<1) -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
r2473 r2482 14 14 !! 11 - Obs & Assim (namobs, nam_asminc) 15 15 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 16 ! CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.17 16 18 17 !!====================================================================== … … 78 77 &namdom ! space and time domain (bathymetry, mesh, timestep) 79 78 !----------------------------------------------------------------------- 80 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file79 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file 81 80 nn_closea = 0 ! closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain 82 81 nn_msh = 0 ! create (=1) a mesh file (coordinates, scale factors, masks) or not (=0) 82 rn_hmin = -3. ! minimum depth of the ocean (>0) or minimum number of ocean level (<0) 83 83 rn_e3zps_min= 20. ! the thickness of the partial step is set larger than the minimum 84 84 rn_e3zps_rat= 0.1 ! of e3zps_min and e3zps_rat * e3t (N.B. 0<e3zps_rat<1) -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist
r2473 r2482 14 14 !! 11 - Obs & Assim (namobs, nam_asminc) 15 15 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 16 ! CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.17 16 18 17 !!====================================================================== … … 78 77 &namdom ! space and time domain (bathymetry, mesh, timestep) 79 78 !----------------------------------------------------------------------- 80 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file79 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file 81 80 nn_closea = 0 ! closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain 82 81 nn_msh = 0 ! create (=1) a mesh file (coordinates, scale factors, masks) or not (=0) 82 rn_hmin = -3. ! minimum depth of the ocean (>0) or minimum number of ocean level (<0) 83 83 rn_e3zps_min= 20. ! the thickness of the partial step is set larger than the minimum 84 84 rn_e3zps_rat= 0.1 ! of e3zps_min and e3zps_rat * e3t (N.B. 0<e3zps_rat<1) -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist
r2473 r2482 14 14 !! 11 - Obs & Assim (namobs, nam_asminc) 15 15 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 16 ! CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.17 16 18 17 !!====================================================================== … … 78 77 &namdom ! space and time domain (bathymetry, mesh, timestep) 79 78 !----------------------------------------------------------------------- 80 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file79 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file 81 80 nn_closea = 0 ! closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain 82 81 nn_msh = 1 ! create (=1) a mesh file (coordinates, scale factors, masks) or not (=0) 82 rn_hmin = -3. ! minimum depth of the ocean (>0) or minimum number of ocean level (<0) 83 83 rn_e3zps_min= 20. ! the thickness of the partial step is set larger than the minimum 84 84 rn_e3zps_rat= 0.1 ! of e3zps_min and e3zps_rat * e3t (N.B. 0<e3zps_rat<1) -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/POMME/EXP00/namelist
r2473 r2482 14 14 !! 11 - Obs & Assim (namobs, nam_asminc) 15 15 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 16 ! CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.17 16 18 17 !!====================================================================== … … 78 77 &namdom ! space and time domain (bathymetry, mesh, timestep) 79 78 !----------------------------------------------------------------------- 80 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file79 nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file 81 80 nn_closea = 0 ! closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain 82 81 nn_msh = 0 ! create (=1) a mesh file (coordinates, scale factors, masks) or not (=0) 82 rn_hmin = -3. ! minimum depth of the ocean (>0) or minimum number of ocean level (<0) 83 83 rn_e3zps_min= 25. ! the thickness of the partial step is set larger than the minimum 84 84 rn_e3zps_rat= 0.2 ! of e3zps_min and e3zps_rat * e3t (N.B. 0<e3zps_rat<1) -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OFF_SRC/domrea.F90
r2464 r2482 57 57 INTEGER :: ik, inum0 , inum1 , inum2 , inum3 , inum4 ! local integers 58 58 REAL(wp) :: zrefdep ! local real 59 REAL(wp), DIMENSION(jpi,jpj) :: zmbk ! 2D workspace59 REAL(wp), DIMENSION(jpi,jpj) :: zmbk, zprt, zprw ! 2D workspace 60 60 !!---------------------------------------------------------------------- 61 61 … … 220 220 CALL iom_get( inum4, jpdom_data, 'gdepw', gdepw ) 221 221 ELSE ! 2D bottom depth 222 CALL iom_get( inum4, jpdom_data, 'hdept', hdept )223 CALL iom_get( inum4, jpdom_data, 'hdepw', hdepw )222 CALL iom_get( inum4, jpdom_data, 'hdept', zprt ) 223 CALL iom_get( inum4, jpdom_data, 'hdepw', zprw ) 224 224 ! 225 225 DO jk = 1, jpk ! deduces the 3D depth … … 231 231 ik = mbkt(ji,jj) 232 232 IF( ik > 0 ) THEN 233 gdepw(ji,jj,ik+1) = hdepw(ji,jj)234 gdept(ji,jj,ik ) = hdept(ji,jj)233 gdepw(ji,jj,ik+1) = zprw(ji,jj) 234 gdept(ji,jj,ik ) = zprt(ji,jj) 235 235 gdept(ji,jj,ik+1) = gdept(ji,jj,ik) + e3t(ji,jj,ik) 236 236 ENDIF -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r2443 r2482 18 18 !! ---------------------------- 19 19 ! !!* Namelist namdom : time & space domain * 20 INTEGER , PUBLIC :: nn_bathy = 0 !: = 0/1 ,compute/read the bathymetry file 21 REAL(wp), PUBLIC :: rn_e3zps_min = 5.0_wp !: miminum thickness for partial steps (meters) 22 REAL(wp), PUBLIC :: rn_e3zps_rat = 0.1_wp !: minimum thickness ration for partial steps 23 INTEGER , PUBLIC :: nn_msh = 0 !: = 1 create a mesh-mask file 24 INTEGER , PUBLIC :: nn_acc = 0 !: = 0/1 use of the acceleration of convergence technique 25 REAL(wp), PUBLIC :: rn_atfp = 0.1_wp !: asselin time filter parameter 20 INTEGER , PUBLIC :: nn_bathy = 0 !: = 0/1 ,compute/read the bathymetry file 21 REAL(wp), PUBLIC :: rn_hmin = -3.0_wp !: minimum ocean depth (>0) or minimum number of ocean levels (<0) 22 REAL(wp), PUBLIC :: rn_e3zps_min = 5.0_wp !: miminum thickness for partial steps (meters) 23 REAL(wp), PUBLIC :: rn_e3zps_rat = 0.1_wp !: minimum thickness ration for partial steps 24 INTEGER , PUBLIC :: nn_msh = 0 !: = 1 create a mesh-mask file 25 INTEGER , PUBLIC :: nn_acc = 0 !: = 0/1 use of the acceleration of convergence technique 26 REAL(wp), PUBLIC :: rn_atfp = 0.1_wp !: asselin time filter parameter 26 27 REAL(wp), PUBLIC :: rn_rdt = 3600._wp !: time step for the dynamics (and tracer if nacc=0) 27 28 REAL(wp), PUBLIC :: rn_rdtmin = 3600._wp !: minimum time step on tracers 28 29 REAL(wp), PUBLIC :: rn_rdtmax = 3600._wp !: maximum time step on tracers 29 30 REAL(wp), PUBLIC :: rn_rdth = 800._wp !: depth variation of tracer step 30 INTEGER , PUBLIC :: nn_baro = 64!: number of barotropic time steps (key_dynspg_ts)31 INTEGER , PUBLIC :: nn_closea = 0!: =0 suppress closed sea/lake from the ORCA domain or not (=1)32 33 ! 34 INTEGER , PUBLIC :: ntopo 35 REAL(wp), PUBLIC :: e3zps_min 36 REAL(wp), PUBLIC :: e3zps_rat 37 INTEGER , PUBLIC :: nmsh 38 INTEGER , PUBLIC :: nacc 39 REAL(wp), PUBLIC :: atfp 40 REAL(wp), PUBLIC :: rdt 41 REAL(wp), PUBLIC :: rdtmin 42 REAL(wp), PUBLIC :: rdtmax 43 REAL(wp), PUBLIC :: rdth 44 INTEGER , PUBLIC :: nclosea 45 46 47 ! !!! associated variables31 INTEGER , PUBLIC :: nn_baro = 64 !: number of barotropic time steps (key_dynspg_ts) 32 INTEGER , PUBLIC :: nn_closea = 0 !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 33 34 ! !! old non-DOCTOR names still used in the model 35 INTEGER , PUBLIC :: ntopo !: = 0/1 ,compute/read the bathymetry file 36 REAL(wp), PUBLIC :: e3zps_min !: miminum thickness for partial steps (meters) 37 REAL(wp), PUBLIC :: e3zps_rat !: minimum thickness ration for partial steps 38 INTEGER , PUBLIC :: nmsh !: = 1 create a mesh-mask file 39 INTEGER , PUBLIC :: nacc !: = 0/1 use of the acceleration of convergence technique 40 REAL(wp), PUBLIC :: atfp !: asselin time filter parameter 41 REAL(wp), PUBLIC :: rdt !: time step for the dynamics (and tracer if nacc=0) 42 REAL(wp), PUBLIC :: rdtmin !: minimum time step on tracers 43 REAL(wp), PUBLIC :: rdtmax !: maximum time step on tracers 44 REAL(wp), PUBLIC :: rdth !: depth variation of tracer step 45 INTEGER , PUBLIC :: nclosea !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 46 47 48 ! !!! associated variables 48 49 INTEGER , PUBLIC :: neuler = 0 !: restart euler forward option (0=Euler) 49 50 REAL(wp), PUBLIC :: atfp1 !: asselin time filter coeff. (atfp1= 1-2*atfp) … … 150 151 REAL(wp), PUBLIC, DIMENSION(jpk) :: gdept_0, gdepw_0 !: reference depth of t- and w-points (m) 151 152 REAL(wp), PUBLIC, DIMENSION(jpk) :: e3t_0 , e3w_0 !: reference vertical scale factors at T- and W-pts (m) 152 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hdept , hdepw !: ocean bottom depth at T and W points153 153 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: e3tp , e3wp !: ocean bottom level thickness at T and W points 154 154 … … 163 163 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: scosrf, scobot !: ocean surface and bottom topographies 164 164 ! ! (if deviating from coordinate surfaces in HYBRID) 165 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hifv , hiff !: interface depth between stretching 166 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hift , hifu !: and quasi-uniform spacing 165 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hifv , hiff !: interface depth between stretching at V--F 166 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hift , hifu !: and quasi-uniform spacing T--U points (m) 167 167 168 168 !!---------------------------------------------------------------------- -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90
r2450 r2482 56 56 !! if nmsh <= 3: write full 3D arrays for e3[tuvw] and gdep[tuvw] 57 57 !! if 3 < nmsh <= 6: write full 3D arrays for e3[tuvw] and 2D arrays 58 !! corresponding to the depth of the bottom points hdep[tw]58 !! corresponding to the depth of the bottom t- and w-points 59 59 !! if 6 < nmsh <= 9: write 2D arrays corresponding to the depth and the 60 !! thickness of the bottom points hdep[tw] and e3[tw]_ps60 !! thickness (e3[tw]_ps) of the bottom points 61 61 !! 62 62 !! ** output file : meshmask.nc : domain size, horizontal grid-point position, 63 63 !! masks, depth and vertical scale factors 64 64 !!---------------------------------------------------------------------- 65 INTEGER :: inum0 ! temprary units for 'mesh_mask.nc' file 66 INTEGER :: inum1 ! temprary units for 'mesh.nc' file 67 INTEGER :: inum2 ! temprary units for 'mask.nc' file 68 INTEGER :: inum3 ! temprary units for 'mesh_hgr.nc' file 69 INTEGER :: inum4 ! temprary units for 'mesh_zgr.nc' file 70 INTEGER :: ji, jj, jk ! dummy loop indices 71 REAL(wp), DIMENSION(jpi,jpj) :: zprt ! temporary array for bathymetry 72 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepu ! 3D depth of U point 73 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepv ! 3D depth of V point 74 CHARACTER(len=21) :: clnam0 ! filename (mesh and mask informations) 75 CHARACTER(len=21) :: clnam1 ! filename (mesh informations) 76 CHARACTER(len=21) :: clnam2 ! filename (mask informations) 77 CHARACTER(len=21) :: clnam3 ! filename (horizontal mesh informations) 78 CHARACTER(len=21) :: clnam4 ! filename (vertical mesh informations) 79 !!---------------------------------------------------------------------- 65 INTEGER :: inum0 ! temprary units for 'mesh_mask.nc' file 66 INTEGER :: inum1 ! temprary units for 'mesh.nc' file 67 INTEGER :: inum2 ! temprary units for 'mask.nc' file 68 INTEGER :: inum3 ! temprary units for 'mesh_hgr.nc' file 69 INTEGER :: inum4 ! temprary units for 'mesh_zgr.nc' file 70 CHARACTER(len=21) :: clnam0 ! filename (mesh and mask informations) 71 CHARACTER(len=21) :: clnam1 ! filename (mesh informations) 72 CHARACTER(len=21) :: clnam2 ! filename (mask informations) 73 CHARACTER(len=21) :: clnam3 ! filename (horizontal mesh informations) 74 CHARACTER(len=21) :: clnam4 ! filename (vertical mesh informations) 75 INTEGER :: ji, jj, jk ! dummy loop indices 76 REAL(wp), DIMENSION(jpi,jpj) :: zprt , zprw ! 2D workspace 77 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepu, zdepv ! 3D workspace 78 !!---------------------------------------------------------------------- 80 79 81 80 IF(lwp) WRITE(numout,*) … … 216 215 DO jj = 1,jpj 217 216 DO ji = 1,jpi 218 hdept(ji,jj) = gdept(ji,jj,mbkt(ji,jj) ) * tmask(ji,jj,1)219 hdepw(ji,jj) = gdepw(ji,jj,mbkt(ji,jj)+1) * tmask(ji,jj,1)217 zprt(ji,jj) = gdept(ji,jj,mbkt(ji,jj) ) * tmask(ji,jj,1) 218 zprw(ji,jj) = gdepw(ji,jj,mbkt(ji,jj)+1) * tmask(ji,jj,1) 220 219 END DO 221 220 END DO 222 CALL iom_rstput( 0, 0, inum4, 'hdept' , hdept, ktype = jp_r4 )223 CALL iom_rstput( 0, 0, inum4, 'hdepw' , hdepw, ktype = jp_r4 )221 CALL iom_rstput( 0, 0, inum4, 'hdept', zprt, ktype = jp_r4 ) 222 CALL iom_rstput( 0, 0, inum4, 'hdepw', zprw, ktype = jp_r4 ) 224 223 ENDIF 225 224 ! -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r2463 r2482 236 236 IF( .NOT. ldbletanh ) THEN 237 237 DO jk = 1, jpk 238 zw = FLOAT( jk)239 zt = FLOAT( jk) + 0.5_wp238 zw = REAL( jk , wp ) 239 zt = REAL( jk , wp ) + 0.5_wp 240 240 gdepw_0(jk) = ( zsur + za0 * zw + za1 * zacr * LOG ( COSH( (zw-zkth) / zacr ) ) ) 241 241 gdept_0(jk) = ( zsur + za0 * zt + za1 * zacr * LOG ( COSH( (zt-zkth) / zacr ) ) ) … … 248 248 zt = FLOAT( jk ) + 0.5_wp 249 249 ! Double tanh function 250 gdepw_0(jk) = ( zsur + za0 * zw + za1 * zacr * LOG ( COSH( (zw-zkth ) / zacr) ) &251 & + za2 * zacr2* LOG ( COSH( (zw-zkth2)/zacr2 ) ) )252 gdept_0(jk) = ( zsur + za0 * zt + za1 * zacr * LOG ( COSH( (zt-zkth ) / zacr) ) &253 & + za2 * zacr2* LOG ( COSH( (zt-zkth2)/zacr2 ) ) )254 e3w_0 (jk) = za0 + za1 * TANH( (zw-zkth ) / zacr) &255 & + za2 * TANH( (zw-zkth2)/zacr2)256 e3t_0 (jk) = za0 + za1 * TANH( (zt-zkth ) / zacr) &257 & + za2 * TANH( (zt-zkth2)/zacr2)250 gdepw_0(jk) = ( zsur + za0 * zw + za1 * zacr * LOG ( COSH( (zw-zkth ) / zacr ) ) & 251 & + za2 * zacr2* LOG ( COSH( (zw-zkth2) / zacr2 ) ) ) 252 gdept_0(jk) = ( zsur + za0 * zt + za1 * zacr * LOG ( COSH( (zt-zkth ) / zacr ) ) & 253 & + za2 * zacr2* LOG ( COSH( (zt-zkth2) / zacr2 ) ) ) 254 e3w_0 (jk) = za0 + za1 * TANH( (zw-zkth ) / zacr ) & 255 & + za2 * TANH( (zw-zkth2) / zacr2 ) 256 e3t_0 (jk) = za0 + za1 * TANH( (zt-zkth ) / zacr ) & 257 & + za2 * TANH( (zt-zkth2) / zacr2 ) 258 258 END DO 259 259 ENDIF … … 315 315 INTEGER :: inum ! temporary logical unit 316 316 INTEGER :: ii_bump, ij_bump, ih ! bump center position 317 INTEGER :: ii0, ii1, ij0, ij1 !indices317 INTEGER :: ii0, ii1, ij0, ij1, ik ! local indices 318 318 REAL(wp) :: r_bump , h_bump , h_oce ! bump characteristics 319 REAL(wp) :: zi , zj , zh ! temporaryscalars319 REAL(wp) :: zi, zj, zh, zhmin ! local scalars 320 320 INTEGER , DIMENSION(jpidta,jpjdta) :: idta ! global domain integer data 321 321 REAL(wp), DIMENSION(jpidta,jpjdta) :: zdta ! global domain scalar data … … 497 497 ENDIF 498 498 ! 499 ! ! =========================== ! 500 ! ! set a minimum depth ! 501 ! ! =========================== ! 502 IF( rn_hmin < 0._wp ) THEN ; ik = INT( rn_hmin ) + 1 ! from a nb of level 503 ELSE ; ik = MINLOC( gdepw_0, mask = gdepw_0 > rn_hmin, dim = 1 ) ! from a depth 504 ENDIF 505 zhmin = gdepw_0(ik+1) ! minimum depth = ik+1 w-levels 506 WHERE( bathy(:,:) <= 0._wp ) ; bathy(:,:) = 0._wp ! min=0 over the lands 507 ELSE WHERE ; bathy(:,:) = MIN( zhmin , bathy(:,:) ) ! min=zhmin over the oceans 508 END WHERE 509 IF(lwp) write(numout,*) 'Minimum ocean depth: ', zhmin, ' minimum number of ocean levels : ', ik 510 ! 499 511 END SUBROUTINE zgr_bat 500 512 … … 797 809 REAL(wp) :: ze3tp , ze3wp ! Last ocean level thickness at T- and W-points 798 810 REAL(wp) :: zdepwp, zdepth ! Ajusted ocean depth to avoid too small e3t 799 REAL(wp) :: zmax , zmin ! Maximum and minimum depth811 REAL(wp) :: zmax ! Maximum depth 800 812 REAL(wp) :: zdiff ! temporary scalar 801 813 REAL(wp) :: zrefdep ! temporary scalar … … 820 832 ! bathymetry in level (from bathy_meter) 821 833 ! =================== 822 zmax = gdepw_0(jpk) + e3t_0(jpk) ! maximum depth (i.e. the last ocean level thickness <= 2*e3t_0(jpkm1) ) 823 824 zrefdep = 25._wp 825 nlbelow = MINLOC( gdepw_0, mask = gdepw_0 > zrefdep, dim = 1 ) ! shallowest W level Below zrefdep 826 IF(lwp) write(numout,*) 'Minimum depth level selected: ', nlbelow 827 zmin = gdepw_0(nlbelow) ! minimum depth = nlbelow-1 levels 828 829 mbathy(:,:) = jpkm1 ! initialize mbathy to the maximum ocean level available 830 831 ! ! storage of land and island's number (zera and negative values) in mbathy 832 WHERE( bathy(:,:) <= 0._wp ) mbathy(:,:) = INT( bathy(:,:) ) 833 834 ! bounded value of bathy 835 !!gm bathy(:,:) = MIN( zmax, MAX( bathy(:,:), zmin ) ) !!gm : simpler as zmin is > 0 836 DO jj = 1, jpj 837 DO ji= 1, jpi 838 IF( bathy(ji,jj) <= 0._wp ) THEN ; bathy(ji,jj) = 0._wp 839 ELSE ; bathy(ji,jj) = MIN( zmax, MAX( bathy(ji,jj), zmin ) ) 840 ENDIF 841 END DO 842 END DO 834 zmax = gdepw_0(jpk) + e3t_0(jpk) ! maximum depth (i.e. the last ocean level thickness <= 2*e3t_0(jpkm1) ) 835 mbathy(:,:) = jpkm1 ! initialize mbathy to the maximum ocean level available 836 bathy(:,:) = MIN( zmax , bathy(:,:) ) ! bounded value of bathy (min already set at the end of zgr_bat) 843 837 844 838 ! Compute mbathy for ocean points (i.e. the number of ocean levels) … … 858 852 e3w (:,:,jk) = e3w_0 (jk) 859 853 END DO 860 hdept(:,:) = gdept(:,:,2 )861 hdepw(:,:) = gdepw(:,:,3 )862 854 ! 863 855 DO jj = 1, jpj … … 905 897 ik = mbathy(ji,jj) 906 898 IF( ik > 0 ) THEN ! ocean point only 907 hdept(ji,jj) = gdept(ji,jj,ik )908 hdepw(ji,jj) = gdepw(ji,jj,ik+1)909 899 e3tp (ji,jj) = e3t(ji,jj,ik ) 910 900 e3wp (ji,jj) = e3w(ji,jj,ik ) … … 924 914 ! Scale factors and depth at U-, V-, UW and VW-points 925 915 DO jk = 1, jpk ! initialisation to z-scale factors 926 e3u (:,:,jk) 927 e3v (:,:,jk) 928 e3uw(:,:,jk) 929 e3vw(:,:,jk) 916 e3u (:,:,jk) = e3t_0(jk) 917 e3v (:,:,jk) = e3t_0(jk) 918 e3uw(:,:,jk) = e3w_0(jk) 919 e3vw(:,:,jk) = e3w_0(jk) 930 920 END DO 931 921 DO jk = 1,jpk ! Computed as the minimum of neighbooring scale factors
Note: See TracChangeset
for help on using the changeset viewer.