Changeset 14986 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE
- Timestamp:
- 2021-06-14T13:34:08+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE/icedia.F90
r14072 r14986 67 67 REAL(wp) :: zbg_ivol, zbg_item, zbg_area, zbg_isal 68 68 REAL(wp) :: zbg_svol, zbg_stem 69 REAL(wp) :: zbg_ipvol, zbg_ilvol 69 70 REAL(wp) :: z_frc_voltop, z_frc_temtop, z_frc_sal 70 71 REAL(wp) :: z_frc_volbot, z_frc_tembot … … 87 88 ! ----------------------- ! 88 89 IF( iom_use('ibgvol_tot' ) .OR. iom_use('sbgvol_tot' ) .OR. iom_use('ibgarea_tot') .OR. & 89 & iom_use('ibgsalt_tot') .OR. iom_use('ibgheat_tot') .OR. iom_use('sbgheat_tot') ) THEN 90 & iom_use('ibgsalt_tot') .OR. iom_use('ibgheat_tot') .OR. iom_use('sbgheat_tot') .OR. & 91 & iom_use('ipbgvol_tot' ) .OR. iom_use('ilbgvol_tot' ) ) THEN 90 92 91 93 zbg_ivol = glob_sum( 'icedia', vt_i(:,:) * e1e2t(:,:) ) * 1.e-9 ! ice volume (km3) … … 95 97 zbg_item = glob_sum( 'icedia', et_i(:,:) * e1e2t(:,:) ) * 1.e-20 ! heat content (1.e20 J) 96 98 zbg_stem = glob_sum( 'icedia', et_s(:,:) * e1e2t(:,:) ) * 1.e-20 ! heat content (1.e20 J) 99 ! ponds 100 zbg_ipvol = glob_sum( 'icedia', vt_ip(:,:) * e1e2t(:,:) ) * 1.e-9 ! ice pond volume (km3) 101 zbg_ilvol = glob_sum( 'icedia', vt_il(:,:) * e1e2t(:,:) ) * 1.e-9 ! ice pond lid volume (km3) 97 102 98 103 CALL iom_put( 'ibgvol_tot' , zbg_ivol ) … … 102 107 CALL iom_put( 'ibgheat_tot' , zbg_item ) 103 108 CALL iom_put( 'sbgheat_tot' , zbg_stem ) 109 ! ponds 110 CALL iom_put( 'ipbgvol_tot' , zbg_ipvol ) 111 CALL iom_put( 'ilbgvol_tot' , zbg_ilvol ) 104 112 105 113 ENDIF -
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE/icedyn_rhg_vp.F90
r14831 r14986 676 676 CALL lbc_lnk( 'icedyn_rhg_vp', zrhsu, 'U', -1._wp, zrhsv, 'V', -1._wp) 677 677 CALL lbc_lnk( 'icedyn_rhg_vp', zmU_t, 'U', -1._wp, zmV_t, 'V', -1._wp) 678 CALL lbc_lnk( 'icedyn_rhg_vp', ztaux_oi_rhsu, 'U', -1. , ztauy_oi_rhsv, 'V', -1.)678 CALL lbc_lnk( 'icedyn_rhg_vp', ztaux_oi_rhsu, 'U', -1._wp, ztauy_oi_rhsv, 'V', -1._wp) 679 679 680 680 CALL iom_put( 'zmU_t' , zmU_t ) ! MV DEBUG … … 1110 1110 IF ( lwp ) WRITE(numout,*) ' We are out of outer loop ' 1111 1111 1112 CALL lbc_lnk( 'icedyn_rhg_vp', zFU , 'U', 1. , zFV , 'V', 1.)1112 CALL lbc_lnk( 'icedyn_rhg_vp', zFU , 'U', 1.0_wp, zFV , 'V', 1._wp ) 1113 1113 CALL lbc_lnk( 'icedyn_rhg_vp', zBU_prime , 'U', 1._wp, zBV_prime , 'V', 1._wp ) 1114 1114 CALL lbc_lnk( 'icedyn_rhg_vp', zFU_prime , 'U', 1._wp, zFV_prime , 'V', 1._wp ) … … 1307 1307 1308 1308 ! 1309 CALL lbc_lnk( 'icedyn_rhg_vp', ztaux_oi, 'U', -1._wp, ztauy_oi, 'V', -1._wp, ztaux_ai, 'U', -1._wp, ztauy_ai, 'V', -1. ) !, &1309 CALL lbc_lnk( 'icedyn_rhg_vp', ztaux_oi, 'U', -1._wp, ztauy_oi, 'V', -1._wp, ztaux_ai, 'U', -1._wp, ztauy_ai, 'V', -1._wp ) !, & 1310 1310 ! & ztaux_bi, 'U', -1.)_wp, ztauy_bi, 'V', -1._wp ) 1311 1311 ! -
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE/icestp.F90
r14219 r14986 461 461 qcn_ice (ji,jj,jl) = 0._wp ! conductive flux (ln_cndflx=T & ln_cndemule=T) 462 462 qtr_ice_bot(ji,jj,jl) = 0._wp ! part of solar radiation transmitted through the ice needed at least for outputs 463 qml_ice (ji,jj,jl) = 0._wp ! surface melt heat flux 463 464 ! Melt pond surface melt diagnostics (mv - more efficient: grouped into one water volume flux) 464 465 dh_i_sum_2d(ji,jj,jl) = 0._wp -
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE/icethd.F90
r14644 r14986 536 536 CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_bot_1d(1:npti), qcn_ice_bot(:,:,kl) ) 537 537 CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_top_1d(1:npti), qcn_ice_top(:,:,kl) ) 538 CALL tab_1d_2d( npti, nptidx(1:npti), qml_ice_1d (1:npti), qml_ice (:,:,kl) ) 538 539 ! extensive variables 539 540 CALL tab_1d_2d( npti, nptidx(1:npti), v_i_1d (1:npti), v_i (:,:,kl) ) -
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE/icethd_dh.F90
r14495 r14986 224 224 zevap_rema(1:npti) = 0._wp 225 225 DO ji = 1, npti 226 IF( evap_ice_1d(ji) > 0._wp ) THEN 227 zdeltah (ji) = MAX( - evap_ice_1d(ji) * r1_rhos * rDt_ice, - h_s_1d(ji) ) ! amount of snw that sublimates, < 0 228 zevap_rema(ji) = MAX( 0._wp, evap_ice_1d(ji) * rDt_ice + zdeltah(ji) * rhos ) ! remaining evap in kg.m-2 (used for ice sublimation later on) 229 ENDIF 226 zdeltah (ji) = MAX( - evap_ice_1d(ji) * r1_rhos * rDt_ice, - h_s_1d(ji) ) ! amount of snw that sublimates, < 0 227 zevap_rema(ji) = evap_ice_1d(ji) * rDt_ice + zdeltah(ji) * rhos ! remaining evap in kg.m-2 (used for ice sublimation later on) 230 228 END DO 231 229 -
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE/icethd_ent.F90
r13547 r14986 121 121 DO ji = 1, npti 122 122 rswitch = MAX( 0._wp , SIGN( 1._wp , zhnew(ji) - epsi20 ) ) 123 qnew(ji,jk1) = rswitch * ( zeh_cum1(ji,jk1) - zeh_cum1(ji,jk1-1) ) / MAX( zhnew(ji), epsi20 )123 qnew(ji,jk1) = rswitch * MAX( 0._wp, zeh_cum1(ji,jk1) - zeh_cum1(ji,jk1-1) ) / MAX( zhnew(ji), epsi20 ) ! max for roundoff error 124 124 END DO 125 125 END DO -
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/ICE/iceupdate.F90
r14644 r14986 289 289 IF( iom_use('hfxcndbot' ) ) CALL iom_put( 'hfxcndbot' , SUM( qcn_ice_bot * a_i_b, dim=3 ) ) ! Bottom conduction flux 290 290 IF( iom_use('hfxcndtop' ) ) CALL iom_put( 'hfxcndtop' , SUM( qcn_ice_top * a_i_b, dim=3 ) ) ! Surface conduction flux 291 !!IF( iom_use('hfxmelt' ) ) CALL iom_put( 'hfxmelt' , SUM( qml_ice * a_i_b, dim=3 ) ) ! Surface melt flux292 !!IF( iom_use('hfxldmelt' ) ) CALL iom_put( 'hfxldmelt' , fhld * at_i_b ) ! Heat in lead for ice melting293 !!IF( iom_use('hfxldgrow' ) ) CALL iom_put( 'hfxldgrow' , qlead * r1_Dt_ice ) ! Heat in lead for ice growth291 IF( iom_use('hfxmelt' ) ) CALL iom_put( 'hfxmelt' , SUM( qml_ice * a_i_b, dim=3 ) ) ! Surface melt flux 292 IF( iom_use('hfxldmelt' ) ) CALL iom_put( 'hfxldmelt' , fhld * at_i_b ) ! Heat in lead for ice melting 293 IF( iom_use('hfxldgrow' ) ) CALL iom_put( 'hfxldgrow' , qlead * r1_Dt_ice ) ! Heat in lead for ice growth 294 294 295 295 ! controls
Note: See TracChangeset
for help on using the changeset viewer.