Changeset 13609 for NEMO/trunk/src
- Timestamp:
- 2020-10-14T18:40:56+02:00 (4 years ago)
- Location:
- NEMO/trunk/src/ICE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/ICE/icedyn_adv_pra.F90
r13497 r13609 88 88 INTEGER :: ji, jj, jk, jl, jt ! dummy loop indices 89 89 INTEGER :: icycle ! number of sub-timestep for the advection 90 REAL(wp) :: zdt 90 REAL(wp) :: zdt, z1_dt ! - - 91 91 REAL(wp), DIMENSION(1) :: zcflprv, zcflnow ! for global communication 92 92 REAL(wp), DIMENSION(jpi,jpj) :: zati1, zati2 … … 100 100 REAL(wp), DIMENSION(jpi,jpj,nlay_s,jpl) :: z0es 101 101 REAL(wp), DIMENSION(jpi,jpj,nlay_i,jpl) :: z0ei 102 !! diagnostics 103 REAL(wp), DIMENSION(jpi,jpj) :: zdiag_adv_mass, zdiag_adv_salt, zdiag_adv_heat 102 104 !!---------------------------------------------------------------------- 103 105 ! … … 175 177 ENDIF 176 178 zdt = rDt_ice / REAL(icycle) 179 z1_dt = 1._wp / zdt 177 180 178 181 ! --- transport --- ! … … 181 184 182 185 DO jt = 1, icycle 186 187 ! diagnostics 188 zdiag_adv_mass(:,:) = SUM( pv_i(:,:,:) , dim=3 ) * rhoi + SUM( pv_s(:,:,:) , dim=3 ) * rhos 189 zdiag_adv_salt(:,:) = SUM( psv_i(:,:,:) , dim=3 ) * rhoi 190 zdiag_adv_heat(:,:) = - SUM(SUM( pe_i(:,:,1:nlay_i,:) , dim=4 ), dim=3 ) & 191 & - SUM(SUM( pe_s(:,:,1:nlay_s,:) , dim=4 ), dim=3 ) 183 192 184 193 ! record at_i before advection (for open water) … … 312 321 END_2D 313 322 CALL lbc_lnk( 'icedyn_adv_pra', pato_i, 'T', 1.0_wp ) 323 ! 324 ! --- diagnostics --- ! 325 diag_adv_mass(:,:) = diag_adv_mass(:,:) + ( SUM( pv_i(:,:,:) , dim=3 ) * rhoi + SUM( pv_s(:,:,:) , dim=3 ) * rhos & 326 & - zdiag_adv_mass(:,:) ) * z1_dt 327 diag_adv_salt(:,:) = diag_adv_salt(:,:) + ( SUM( psv_i(:,:,:) , dim=3 ) * rhoi & 328 & - zdiag_adv_salt(:,:) ) * z1_dt 329 diag_adv_heat(:,:) = diag_adv_heat(:,:) + ( - SUM(SUM( pe_i(:,:,1:nlay_i,:) , dim=4 ), dim=3 ) & 330 & - SUM(SUM( pe_s(:,:,1:nlay_s,:) , dim=4 ), dim=3 ) & 331 & - zdiag_adv_heat(:,:) ) * z1_dt 314 332 ! 315 333 ! --- Ensure non-negative fields --- ! -
NEMO/trunk/src/ICE/icedyn_adv_umx.F90
r13497 r13609 92 92 INTEGER :: icycle ! number of sub-timestep for the advection 93 93 REAL(wp) :: zamsk ! 1 if advection of concentration, 0 if advection of other tracers 94 REAL(wp) :: zdt, z vi_cen94 REAL(wp) :: zdt, z1_dt, zvi_cen 95 95 REAL(wp), DIMENSION(1) :: zcflprv, zcflnow ! for global communication 96 96 REAL(wp), DIMENSION(jpi,jpj) :: zudy, zvdx, zcu_box, zcv_box … … 104 104 ! 105 105 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zuv_ho, zvv_ho, zuv_ups, zvv_ups, z1_vi, z1_vs 106 !! diagnostics 107 REAL(wp), DIMENSION(jpi,jpj) :: zdiag_adv_mass, zdiag_adv_salt, zdiag_adv_heat 106 108 !!---------------------------------------------------------------------- 107 109 ! … … 179 181 ENDIF 180 182 zdt = rDt_ice / REAL(icycle) 183 z1_dt = 1._wp / zdt 181 184 182 185 ! --- transport --- ! … … 207 210 !---------------! 208 211 DO jt = 1, icycle 212 213 ! diagnostics 214 zdiag_adv_mass(:,:) = SUM( pv_i(:,:,:) , dim=3 ) * rhoi + SUM( pv_s(:,:,:) , dim=3 ) * rhos 215 zdiag_adv_salt(:,:) = SUM( psv_i(:,:,:) , dim=3 ) * rhoi 216 zdiag_adv_heat(:,:) = - SUM(SUM( pe_i(:,:,1:nlay_i,:) , dim=4 ), dim=3 ) & 217 & - SUM(SUM( pe_s(:,:,1:nlay_s,:) , dim=4 ), dim=3 ) 209 218 210 219 ! record at_i before advection (for open water) … … 386 395 CALL lbc_lnk( 'icedyn_adv_umx', pato_i, 'T', 1.0_wp ) 387 396 ! 397 ! --- diagnostics --- ! 398 diag_adv_mass(:,:) = diag_adv_mass(:,:) + ( SUM( pv_i(:,:,:) , dim=3 ) * rhoi + SUM( pv_s(:,:,:) , dim=3 ) * rhos & 399 & - zdiag_adv_mass(:,:) ) * z1_dt 400 diag_adv_salt(:,:) = diag_adv_salt(:,:) + ( SUM( psv_i(:,:,:) , dim=3 ) * rhoi & 401 & - zdiag_adv_salt(:,:) ) * z1_dt 402 diag_adv_heat(:,:) = diag_adv_heat(:,:) + ( - SUM(SUM( pe_i(:,:,1:nlay_i,:) , dim=4 ), dim=3 ) & 403 & - SUM(SUM( pe_s(:,:,1:nlay_s,:) , dim=4 ), dim=3 ) & 404 & - zdiag_adv_heat(:,:) ) * z1_dt 388 405 ! 389 406 ! --- Ensure non-negative fields and in-bound thicknesses --- !
Note: See TracChangeset
for help on using the changeset viewer.