Changeset 14789 for NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/ICE/icestp.F90
- Timestamp:
- 2021-05-05T13:18:04+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev _r12970_AGRIF_CMEMSext/AGRIF5 ^/vendors/AGRIF/dev@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 ^/vendors/PPR@HEAD ext/PPR 8 9 9 10 # SETTE 10 ^/utils/CI/sette@1 3559sette11 ^/utils/CI/sette@14244 sette
-
- Property svn:externals
-
NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/ICE/icestp.F90
r13721 r14789 8 8 !! aka Sea Ice cube for its nickname 9 9 !! 10 !! is originally based on LIM3, developed in Louvain-la-Neuve by: 10 !! is originally based on LIM3, developed in Louvain-la-Neuve by: 11 11 !! * Martin Vancoppenolle (UCL-ASTR, Belgium) 12 12 !! * Sylvain Bouillon (UCL-ASTR, Belgium) … … 121 121 !!---------------------------------------------------------------------- 122 122 ! 123 IF( ln_timing ) CALL timing_start('ice _stp')123 IF( ln_timing ) CALL timing_start('icestp') 124 124 ! 125 125 ! !-----------------------! … … 140 140 IF( .NOT. Agrif_Root() ) nbstep_ice = MOD( nbstep_ice, Agrif_irhot() * Agrif_Parent(nn_fsbc) / nn_fsbc ) + 1 141 141 ! ! these calls must remain here for restartability purposes 142 CALL agrif_interp_ice( 'T' ) 142 CALL agrif_interp_ice( 'T' ) 143 143 CALL agrif_interp_ice( 'U' ) 144 144 CALL agrif_interp_ice( 'V' ) … … 152 152 ! utau_ice, vtau_ice = surface ice stress [N/m2] 153 153 !------------------------------------------------! 154 CALL ice_sbc_tau( kt, ksbc, utau_ice, vtau_ice ) 154 CALL ice_sbc_tau( kt, ksbc, utau_ice, vtau_ice ) 155 155 !-------------------------------------! 156 156 ! --- ice dynamics and advection --- ! 157 157 !-------------------------------------! 158 158 CALL diag_set0 ! set diag of mass, heat and salt fluxes to 0 159 CALL ice_rst_opn( kt ) ! Open Ice restart file (if necessary) 159 CALL ice_rst_opn( kt ) ! Open Ice restart file (if necessary) 160 160 ! 161 161 IF( ln_icedyn .AND. .NOT.lk_c1d ) & … … 169 169 ! !== previous lead fraction and ice volume for flux calculations 170 170 CALL ice_var_glo2eqv ! h_i and h_s for ice albedo calculation 171 CALL ice_var_agg(1) ! at_i for coupling 171 CALL ice_var_agg(1) ! at_i for coupling 172 172 CALL store_fields ! Store now ice values 173 173 ! … … 189 189 ! --- ice thermodynamics --- ! 190 190 !----------------------------! 191 IF( ln_icethd ) CALL ice_thd( kt ) ! -- Ice thermodynamics 191 IF( ln_icethd ) CALL ice_thd( kt ) ! -- Ice thermodynamics 192 192 ! 193 193 CALL diag_trends( 2 ) ! record thermo trends … … 197 197 CALL ice_update_flx( kt ) ! -- Update ocean surface mass, heat and salt fluxes 198 198 ! 199 IF( ln_icediahsb ) CALL ice_dia( kt ) ! -- Diagnostics outputs 200 ! 201 IF( ln_icediachk ) CALL ice_drift_wri( kt ) ! -- Diagnostics outputs for conservation 202 ! 203 CALL ice_wri( kt ) ! -- Ice outputs 204 ! 205 IF( lrst_ice ) CALL ice_rst_write( kt ) ! -- Ice restart file 199 IF( ln_icediahsb ) CALL ice_dia( kt ) ! -- Diagnostics outputs 200 ! 201 IF( ln_icediachk ) CALL ice_drift_wri( kt ) ! -- Diagnostics outputs for conservation 202 ! 203 CALL ice_wri( kt ) ! -- Ice outputs 204 ! 205 IF( lrst_ice ) CALL ice_rst_write( kt ) ! -- Ice restart file 206 206 ! 207 207 IF( ln_icectl ) CALL ice_ctl( kt ) ! -- Control checks … … 215 215 !!gm remark, the ocean-ice stress is not saved in ice diag call above ..... find a solution!!! 216 216 ! 217 IF( ln_timing ) CALL timing_stop('ice _stp')217 IF( ln_timing ) CALL timing_stop('icestp') 218 218 ! 219 219 END SUBROUTINE ice_stp … … 231 231 !!---------------------------------------------------------------------- 232 232 IF(lwp) WRITE(numout,*) 233 IF(lwp) WRITE(numout,*) 'Sea Ice Model: SI3 (Sea Ice modelling Integrated Initiative)' 233 IF(lwp) WRITE(numout,*) 'Sea Ice Model: SI3 (Sea Ice modelling Integrated Initiative)' 234 234 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~' 235 235 IF(lwp) WRITE(numout,*) 236 IF(lwp) WRITE(numout,*) 'ice_init: Arrays allocation & Initialization of all routines & init state' 236 IF(lwp) WRITE(numout,*) 'ice_init: Arrays allocation & Initialization of all routines & init state' 237 237 IF(lwp) WRITE(numout,*) '~~~~~~~~' 238 238 ! … … 250 250 ! ! Allocate the ice arrays (sbc_ice already allocated in sbc_init) 251 251 ierr = ice_alloc () ! ice variables 252 ierr = ierr + sbc_ice_alloc () ! surface boundary conditions 252 ierr = ierr + sbc_ice_alloc () ! surface boundary conditions 253 253 ierr = ierr + ice1D_alloc () ! thermodynamics 254 254 ! … … 291 291 tn_ice(:,:,:) = t_su(:,:,:) ! initialisation of surface temp for coupled simu 292 292 ! 293 IF( ln_rstart ) CALL iom_close( numrir ) ! close input ice restart file 293 IF( ln_rstart ) THEN 294 CALL iom_close( numrir ) ! close input ice restart file 295 IF(lrxios) CALL iom_context_finalize( cr_icerst_cxt ) 296 ENDIF 294 297 ! 295 298 END SUBROUTINE ice_init … … 330 333 WRITE(numout,*) ' Ice dynamics (T) or not (F) ln_icedyn = ', ln_icedyn 331 334 WRITE(numout,*) ' Ice thermodynamics (T) or not (F) ln_icethd = ', ln_icethd 332 WRITE(numout,*) ' maximum ice concentration for NH = ', rn_amax_n 335 WRITE(numout,*) ' maximum ice concentration for NH = ', rn_amax_n 333 336 WRITE(numout,*) ' maximum ice concentration for SH = ', rn_amax_s 334 337 ENDIF … … 370 373 v_i_b (:,:,:) = v_i (:,:,:) ! ice volume 371 374 v_s_b (:,:,:) = v_s (:,:,:) ! snow volume 375 v_ip_b(:,:,:) = v_ip(:,:,:) ! pond volume 376 v_il_b(:,:,:) = v_il(:,:,:) ! pond lid volume 372 377 sv_i_b(:,:,:) = sv_i(:,:,:) ! salt content 373 378 e_s_b (:,:,:,:) = e_s (:,:,:,:) ! snow thermal energy … … 412 417 wfx_bom(ji,jj) = 0._wp ; wfx_sum(ji,jj) = 0._wp 413 418 wfx_res(ji,jj) = 0._wp ; wfx_sub(ji,jj) = 0._wp 414 wfx_spr(ji,jj) = 0._wp ; wfx_lam(ji,jj) = 0._wp 419 wfx_spr(ji,jj) = 0._wp ; wfx_lam(ji,jj) = 0._wp 415 420 wfx_snw_dyn(ji,jj) = 0._wp ; wfx_snw_sum(ji,jj) = 0._wp 416 421 wfx_snw_sub(ji,jj) = 0._wp ; wfx_ice_sub(ji,jj) = 0._wp 417 wfx_snw_sni(ji,jj) = 0._wp 422 wfx_snw_sni(ji,jj) = 0._wp 418 423 wfx_pnd(ji,jj) = 0._wp 419 424 … … 429 434 diag_heat(ji,jj) = 0._wp ; diag_sice(ji,jj) = 0._wp 430 435 diag_vice(ji,jj) = 0._wp ; diag_vsnw(ji,jj) = 0._wp 436 diag_aice(ji,jj) = 0._wp ; diag_vpnd(ji,jj) = 0._wp 431 437 432 438 tau_icebfr (ji,jj) = 0._wp ! landfast ice param only (clem: important to keep the init here) … … 454 460 qcn_ice (ji,jj,jl) = 0._wp ! conductive flux (ln_cndflx=T & ln_cndemule=T) 455 461 qtr_ice_bot(ji,jj,jl) = 0._wp ! part of solar radiation transmitted through the ice needed at least for outputs 462 ! Melt pond surface melt diagnostics (mv - more efficient: grouped into one water volume flux) 463 dh_i_sum_2d(ji,jj,jl) = 0._wp 464 dh_s_mlt_2d(ji,jj,jl) = 0._wp 456 465 END_2D 457 466 ENDDO … … 482 491 diag_vsnw(:,:) = diag_vsnw(:,:) & 483 492 & + SUM( v_s (:,:,:) - v_s_b (:,:,:) , dim=3 ) * r1_Dt_ice * rhos 493 diag_vpnd(:,:) = diag_vpnd(:,:) & 494 & + SUM( v_ip + v_il - v_ip_b - v_il_b , dim=3 ) * r1_Dt_ice * rhow 484 495 ! 485 496 IF( kn == 2 ) CALL iom_put ( 'hfxdhc' , diag_heat ) ! output of heat trend
Note: See TracChangeset
for help on using the changeset viewer.