Changeset 8371
- Timestamp:
- 2017-07-25T17:41:16+02:00 (6 years ago)
- Location:
- branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
r8370 r8371 205 205 END DO 206 206 207 !------------------------------------------------------------------------------! 208 ! Thermodynamic computation (only on grid points covered by ice) 209 !------------------------------------------------------------------------------! 210 211 DO jl = 1, jpl !loop over ice categories 207 !-------------------------------------------------------------------------------------------! 208 ! Thermodynamic computation (only on grid points covered by ice) => loop over ice categories 209 !-------------------------------------------------------------------------------------------! 210 DO jl = 1, jpl 212 211 213 212 ! select ice covered grid points … … 237 236 IF( nidx > 0 ) THEN ! If there is no ice, do nothing. 238 237 ! 239 s_i_new ( :) = 0._wp ; dh_s_tot (:) = 0._wp! --- some init --- !240 dh_i_surf ( :) = 0._wp ; dh_i_bott(:) = 0._wp241 dh_snowice( :) = 0._wp ; dh_i_sub (:) = 0._wp238 s_i_new (1:nidx) = 0._wp ; dh_s_tot (1:nidx) = 0._wp ! --- some init --- ! 239 dh_i_surf (1:nidx) = 0._wp ; dh_i_bott(1:nidx) = 0._wp 240 dh_snowice(1:nidx) = 0._wp ; dh_i_sub (1:nidx) = 0._wp 242 241 243 242 CALL lim_thd_1d2d( jl, 1 ) ! --- Move to 1D arrays --- ! … … 275 274 ENDDO 276 275 ! 276 ! Change thickness to volume 277 v_i_1d(1:nidx) = ht_i_1d(1:nidx) * a_i_1d(1:nidx) 278 v_s_1d(1:nidx) = ht_s_1d(1:nidx) * a_i_1d(1:nidx) 279 smv_i_1d(1:nidx) = sm_i_1d(1:nidx) * v_i_1d(1:nidx) 280 ! 277 281 CALL lim_thd_1d2d( jl, 2 ) ! --- Move to 2D arrays --- ! 278 282 ! … … 281 285 ! 282 286 END DO 283 284 ! Change thickness to volume 285 at_i(:,:) = SUM( a_i(:,:,:), dim=3 ) 286 v_i(:,:,:) = ht_i(:,:,:) * a_i(:,:,:) 287 v_s(:,:,:) = ht_s(:,:,:) * a_i(:,:,:) 288 smv_i(:,:,:) = sm_i(:,:,:) * v_i(:,:,:) 289 IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 290 291 ! update ice age (in case a_i changed, i.e. becomes 0 or lateral melting in monocat) 287 at_i(:,:) = SUM( a_i(:,:,:), dim=3 ) 288 289 ! update ice age (in case a_i changed, i.e. becomes 0 or lateral melting) 292 290 DO jl = 1, jpl 293 291 DO jj = 1, jpj … … 299 297 END DO 300 298 299 IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 300 301 301 CALL lim_var_zapsmall 302 302 303 ! control checks304 303 IF( ln_limctl ) CALL lim_prt( kt, iiceprt, jiceprt, 1, ' - ice thermodyn. - ' ) ! control print 305 304 ! 306 307 305 !------------------------------------------------! 308 306 ! Transport ice between thickness categories 309 307 !------------------------------------------------! 310 ! Given thermodynamic growth rates, transport ice between thickness categories.311 308 IF( ln_limdiachk ) CALL lim_cons_hsm(0, 'limitd_th_rem', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 312 309 … … 322 319 IF( ln_limdO ) CALL lim_thd_lac 323 320 324 ! conservation test325 321 IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd_lac', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 326 322 327 ! Control print 328 IF( ln_ctl ) CALL lim_prt3D( 'limthd' ) 323 IF( ln_ctl ) CALL lim_prt3D( 'limthd' ) ! Control print 329 324 ! 330 325 CALL wrk_dealloc( jpi,jpj, zu_io, zv_io, zfric ) … … 555 550 CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_bo_1d(1:nidx), diag_fc_bo ) 556 551 CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_su_1d(1:nidx), diag_fc_su ) 552 ! extensive variables 553 CALL tab_1d_2d( nidx, idxice(1:nidx), v_i_1d (1:nidx), v_i (:,:,jl) ) 554 CALL tab_1d_2d( nidx, idxice(1:nidx), v_s_1d (1:nidx), v_s (:,:,jl) ) 555 CALL tab_1d_2d( nidx, idxice(1:nidx), smv_i_1d(1:nidx), smv_i(:,:,jl) ) 557 556 END SELECT 558 557 ! -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_da.F90
r8370 r8371 135 135 wfx_lam_1d(ji) = wfx_lam_1d(ji) + zda * r1_rdtice * ( rhoic * ht_i_1d(ji) + rhosn * ht_s_1d(ji) ) 136 136 137 !! adjust e_i ???138 !! e_i_1d(ji,1:nlay_i) = e_i_1d(ji,1:nlay_i) * ( 1._wp - zda / a_i_1d(ji) )139 !! e_s_1d(ji,1) = e_s_1d(ji,1) * ( 1._wp - zda / a_i_1d(ji) )140 141 137 ! new concentration 142 138 a_i_1d(ji) = a_i_1d(ji) - zda -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90
r8369 r8371 110 110 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sm_i_1d !: Ice bulk salinity [ppt] 111 111 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: s_i_new !: Salinity of new ice at the bottom 112 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ip_1d 113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: v_ip_1d 112 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ip_1d !: 113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: v_ip_1d !: 114 114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: v_i_1d !: 115 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: v_s_1d !: 116 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: smv_i_1d !: 115 117 116 118 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_s_1d !: corresponding to the 2D var t_s … … 195 197 & dh_s_tot (jpij) , dh_i_surf (jpij) , dh_i_sub(jpij) , & 196 198 & dh_i_bott(jpij) , dh_snowice(jpij) , sm_i_1d (jpij) , s_i_new(jpij) , & 197 & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , STAT=ierr(ii) )199 & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , v_s_1d (jpij) , smv_i_1d(jpij) , STAT=ierr(ii) ) 198 200 ! 199 201 ii = ii + 1
Note: See TracChangeset
for help on using the changeset viewer.