Changeset 1585 for trunk/NEMO
- Timestamp:
- 2009-08-06T09:29:43+02:00 (15 years ago)
- Location:
- trunk/NEMO/OPA_SRC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DIA/diahth.F90
r1577 r1585 21 21 USE oce ! ocean dynamics and tracers 22 22 USE dom_oce ! ocean space and time domain 23 USE zdf_oce ! ocean vertical physics24 23 USE phycst ! physical constants 25 24 USE in_out_manager ! I/O manager … … 35 34 LOGICAL , PUBLIC, PARAMETER :: lk_diahth = .TRUE. !: thermocline-20d depths flag 36 35 ! note: following variables should move to local variables once iom_put is always used 37 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hmld !: mixing layer depth (turbocline) [m]38 36 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hth !: depth of the max vertical temperature gradient [m] 39 37 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hd20 !: depth of 20 C isotherm [m] … … 112 110 zztmp = bathy(ji,jj) 113 111 hth (ji,jj) = zztmp 114 hmld (ji,jj) = zztmp115 112 zabs2 (ji,jj) = zztmp 116 113 ztm2 (ji,jj) = zztmp … … 165 162 ENDIF 166 163 167 IF( avt (ji,jj,jk) < zavt5 ) hmld (ji,jj) = zzdep ! avt < zavt5168 169 164 IF( nla10 > 1 ) THEN 170 165 zztmp = rhop(ji,jj,jk) - rhop(ji,jj,1) ! delta rho(1) … … 178 173 179 174 CALL iom_put( "mlddzt", hth ) ! depth of the thermocline 180 CALL iom_put( "mldkz5", hmld ) ! turbocline depth181 175 IF( nla10 > 1 ) THEN 182 176 CALL iom_put( "mldr0_3", zrho0_3 ) ! MLD delta rho(surf) = 0.03 -
trunk/NEMO/OPA_SRC/DIA/diawri.F90
r1581 r1585 300 300 CALL histdef( nid_T, "soshfldo", "Shortwave Radiation" , "W/m2" , & ! qsr 301 301 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 302 CALL histdef( nid_T, "somixhgt", "Turbocline Depth" , "m" , & ! hmld 303 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 302 304 CALL histdef( nid_T, "somxl010", "Mixed Layer Depth 0.01" , "m" , & ! hmlp 303 305 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 331 333 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clmx, zsto, zout ) 332 334 #if defined key_diahth 333 CALL histdef( nid_T, "somixhgt", "Turbocline Depth" , "m" , & ! hmld334 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout )335 335 CALL histdef( nid_T, "sothedep", "Thermocline Depth" , "m" , & ! hth 336 336 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 445 445 CALL histwrite( nid_T, "sohefldo", it, qns + qsr , ndim_hT, ndex_hT ) ! total heat flux 446 446 CALL histwrite( nid_T, "soshfldo", it, qsr , ndim_hT, ndex_hT ) ! solar heat flux 447 CALL histwrite( nid_T, "somixhgt", it, hmld , ndim_hT, ndex_hT ) ! turbocline depth 447 448 CALL histwrite( nid_T, "somxl010", it, hmlp , ndim_hT, ndex_hT ) ! mixed layer depth 448 449 CALL histwrite( nid_T, "soicecov", it, fr_i , ndim_hT, ndex_hT ) ! ice fraction … … 466 467 467 468 #if defined key_diahth 468 CALL histwrite( nid_T, "somixhgt", it, hmld , ndim_hT, ndex_hT ) ! turbocline depth469 469 CALL histwrite( nid_T, "sothedep", it, hth , ndim_hT, ndex_hT ) ! depth of the thermocline 470 470 CALL histwrite( nid_T, "so20chgt", it, hd20 , ndim_hT, ndex_hT ) ! depth of the 20 isotherm -
trunk/NEMO/OPA_SRC/DIA/diawri_dimg.h90
r1577 r1585 173 173 fsel(:,:,8 ) = fsel(:,:,8 ) + qrp (:,:) 174 174 fsel(:,:,9 ) = fsel(:,:,9 ) + erp (:,:) 175 #ifdef key_diahth176 175 fsel(:,:,10) = fsel(:,:,10) + hmld(:,:) 177 #endif178 176 fsel(:,:,11) = fsel(:,:,11) + hmlp(:,:) 179 177 fsel(:,:,12) = fsel(:,:,12) + fr_i(:,:) … … 251 249 fsel(:,:,8 ) = qrp (:,:) * tmask(:,:,1) 252 250 fsel(:,:,9 ) = erp (:,:) * tmask(:,:,1) 253 #ifdef key_diahth254 251 fsel(:,:,10) = hmld(:,:) * tmask(:,:,1) 255 #endif256 252 fsel(:,:,11) = hmlp(:,:) * tmask(:,:,1) 257 253 fsel(:,:,12) = fr_i(:,:) * tmask(:,:,1) -
trunk/NEMO/OPA_SRC/ZDF/zdfmxl.F90
r1577 r1585 5 5 !!====================================================================== 6 6 !! History : 1.0 ! 2003-08 (G. Madec) original code 7 !! 3.2 ! 2009-07 (S. Masson, G. Madec) IOM + 10m ref.7 !! 3.2 ! 2009-07 (S. Masson, G. Madec) IOM + merge of DO-loop 8 8 !!---------------------------------------------------------------------- 9 !! zdf_mxl : Compute mixed layer depth and level9 !! zdf_mxl : Compute the turbocline and mixed layer depths. 10 10 !!---------------------------------------------------------------------- 11 11 USE oce ! ocean dynamics and tracers variables 12 12 USE dom_oce ! ocean space and time domain variables 13 USE zdf_oce ! ocean vertical physics 13 14 USE in_out_manager ! I/O manager 14 15 USE prtctl ! Print control … … 20 21 PUBLIC zdf_mxl ! called by step.F90 21 22 22 INTEGER , PUBLIC, DIMENSION(jpi,jpj) :: nmln !: number of level in the mixed layer 23 INTEGER , PUBLIC, DIMENSION(jpi,jpj) :: nmln !: number of level in the mixed layer (used by TOP) 24 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hmld !: mixing layer depth (turbocline) [m] 23 25 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hmlp !: mixed layer depth (rho=rho0+zdcrit) [m] 24 26 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hmlpt !: mixed layer depth at t-points [m] … … 38 40 !! *** ROUTINE zdfmxl *** 39 41 !! 40 !! ** Purpose : the mixed layer depth with density criteria. 42 !! ** Purpose : Compute the turbocline depth and the mixed layer depth 43 !! with density criteria. 41 44 !! 42 45 !! ** Method : The mixed layer depth is the shallowest W depth with 43 46 !! the density of the corresponding T point (just bellow) bellow a 44 47 !! given value defined locally as rho(10m) + zrho_c 48 !! The turbocline depth is the depth at which the vertical 49 !! eddy diffusivity coefficient (resulting from the vertical physics 50 !! alone, not the isopycnal part, see trazdf.F) fall below a given 51 !! value defined locally (avt_c here taken equal to 5 cm/s2) 45 52 !! 46 !! ** Action : nmln, hml p, hmlpt53 !! ** Action : nmln, hmld, hmlp, hmlpt 47 54 !!---------------------------------------------------------------------- 48 55 INTEGER, INTENT( in ) :: kt ! ocean time-step index 49 56 !! 50 INTEGER :: ji, jj, jk ! dummy loop indices 51 INTEGER :: iikn ! temporary integer within a do loop 52 REAL(wp) :: zrho_c = 0.01_wp ! density criterion for mixed layer depth 57 INTEGER :: ji, jj, jk ! dummy loop indices 58 INTEGER :: iikn, iiki ! temporary integer within a do loop 59 INTEGER, DIMENSION(jpi,jpj) :: imld ! temporary workspace 60 REAL(wp) :: zrho_c = 0.01_wp ! density criterion for mixed layer depth 61 REAL(wp) :: zavt_c = 5.e-4_wp ! Kz criterion for the turbocline depth 53 62 !!---------------------------------------------------------------------- 54 63 … … 61 70 ! w-level of the mixing and mixed layers 62 71 nmln(:,:) = mbathy(:,:) ! Initialization to the number of w ocean point mbathy 72 imld(:,:) = mbathy(:,:) 63 73 DO jk = jpkm1, nlb10, -1 ! from the bottom to nlb10 64 74 DO jj = 1, jpj 65 75 DO ji = 1, jpi 66 76 IF( rhop(ji,jj,jk) > rhop(ji,jj,nla10) + zrho_c ) nmln(ji,jj) = jk ! Mixed layer 77 IF( avt (ji,jj,jk) < zavt_c ) imld(ji,jj) = jk ! Turbocline 67 78 END DO 68 79 END DO … … 71 82 DO jj = 1, jpj 72 83 DO ji = 1, jpi 84 iiki = imld(ji,jj) 73 85 iikn = nmln(ji,jj) 86 hmld (ji,jj) = fsdepw(ji,jj,iiki ) * tmask(ji,jj,1) ! Turbocline depth 74 87 hmlp (ji,jj) = fsdepw(ji,jj,iikn ) * tmask(ji,jj,1) ! Mixed layer depth 75 88 hmlpt(ji,jj) = fsdept(ji,jj,iikn-1) ! depth of the last T-point inside the mixed layer 76 89 END DO 77 90 END DO 78 CALL iom_put( "mldr10_1" , hmlp ) ! mixed layer depth 91 CALL iom_put( "mldr10_1", hmlp ) ! mixed layer depth 92 CALL iom_put( "mldkz5" , hmld ) ! turbocline depth 79 93 80 94 IF(ln_ctl) CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ', ovlap=1 )
Note: See TracChangeset
for help on using the changeset viewer.