- Timestamp:
- 2020-08-27T17:13:15+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl_retain_melt/src/ICE/icedyn_adv_pra.F90
r13080 r13442 45 45 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxvp , syvp , sxxvp , syyvp , sxyvp ! melt pond volume 46 46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxlhp, sylhp, sxxlhp, syylhp, sxylhp ! melt pond lid thickness 47 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxsalp, sysalp, sxxsalp, syysalp, sxysalp ! melt pond salinity 47 48 48 49 !! * Substitutions … … 56 57 57 58 SUBROUTINE ice_dyn_adv_pra( kt, pu_ice, pv_ice, & 58 & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, p e_s, pe_i )59 & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, psv_ip, pe_s, pe_i ) 59 60 !!---------------------------------------------------------------------- 60 61 !! ** routine ice_dyn_adv_pra ** … … 80 81 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_ip ! melt pond volume 81 82 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: plh_ip ! melt pond lid thickness 83 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: psv_ip ! melt pond salt content 82 84 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_s ! snw heat content 83 85 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_i ! ice heat content … … 132 134 z0vp(:,:,jl) = pv_ip(:,:,jl) * e1e2t(:,:) ! Melt pond volume 133 135 z0lhp(:,:,jl) = plh_ip(:,:,jl) * e1e2t(:,:) ! Melt pond lid thickness 136 z0smp(:,:,jl) = psv_ip(:,:,jl) * e1e2t(:,:) ! Melt pond salt content 134 137 ENDIF 135 138 END DO … … 172 175 CALL adv_x( zdt , pu_ice , 1._wp , zarea , z0lhp, sxlhp, sxxlhp, sylhp, syylhp, sxylhp) !--- melt pond lid thickness 173 176 CALL adv_y( zdt , pv_ice , 0._wp , zarea , z0lhp, sxlhp, sxxlhp, sylhp, syylhp, sxylhp) 177 CALL adv_x( zdt , pu_ice , 1._wp , zarea , z0smp, sxsalp, sxxsalp, sysalp, syysalp, sxysalp) !--- melt pond salinity 178 CALL adv_y( zdt , pv_ice , 0._wp , zarea , z0smp, sxsalp, sxxsalp, sysalp, syysalp, sxysalp) 174 179 ENDIF 175 180 END DO … … 209 214 CALL adv_y( zdt , pv_ice , 1._wp , zarea , z0lhp, sxlhp, sxxlhp, sylhp, syylhp, sxylhp) !--- melt pond lid thickness 210 215 CALL adv_x( zdt , pu_ice , 0._wp , zarea , z0lhp, sxlhp, sxxlhp, sylhp, syylhp, sxylhp) 216 CALL adv_x( zdt , pu_ice , 1._wp , zarea , z0smp, sxsalp, sxxsalp, sysalp, syysalp, sxysalp) !--- melt pond salinity 217 CALL adv_y( zdt , pv_ice , 0._wp , zarea , z0smp, sxsalp, sxxsalp, sysalp, syysalp, sxysalp) 211 218 ENDIF 212 219 END DO … … 233 240 pv_ip(:,:,jl) = z0vp(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 234 241 plh_ip(:,:,jl) = z0lhp (:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 242 psv_ip(:,:,jl) = z0smp(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 235 243 ENDIF 236 244 END DO … … 239 247 ! Remove negative values (conservation is ensured) 240 248 ! (because advected fields are not perfectly bounded and tiny negative values can occur, e.g. -1.e-20) 241 CALL ice_var_zapneg( zdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, p e_s, pe_i )249 CALL ice_var_zapneg( zdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, psv_ip, pe_s, pe_i ) 242 250 ! 243 251 ! --- Ensure snow load is not too big --- ! … … 662 670 & sxvp(jpi,jpj,jpl) , syvp (jpi,jpj,jpl) , sxxvp (jpi,jpj,jpl) , syyvp (jpi,jpj,jpl) , sxyvp (jpi,jpj,jpl) , & 663 671 & sxlhp(jpi,jpj,jpl) , sylhp (jpi,jpj,jpl), sxxlhp (jpi,jpj,jpl), syylhp (jpi,jpj,jpl), sxylhp (jpi,jpj,jpl), & 672 & sxsalp(jpi,jpj,jpl) , sysalp (jpi,jpj,jpl), sxxsalp (jpi,jpj,jpl), syysalp (jpi,jpj,jpl), sxysalp (jpi,jpj,jpl), & 664 673 ! 665 674 & sxc0 (jpi,jpj,nlay_s,jpl) , syc0 (jpi,jpj,nlay_s,jpl) , sxxc0(jpi,jpj,nlay_s,jpl) , & … … 780 789 CALL iom_get( numrir, jpdom_autoglo, 'syylhp', syylhp ) 781 790 CALL iom_get( numrir, jpdom_autoglo, 'sxylhp', sxylhp ) 791 ! ! melt pond salinity 792 CALL iom_get( numrir, jpdom_autoglo, 'sxsalp' , sxsalp ) 793 CALL iom_get( numrir, jpdom_autoglo, 'sysalp' , sysalp ) 794 CALL iom_get( numrir, jpdom_autoglo, 'sxxsalp', sxxsalp ) 795 CALL iom_get( numrir, jpdom_autoglo, 'syysalp', syysalp ) 796 CALL iom_get( numrir, jpdom_autoglo, 'sxysalp', sxysalp ) 782 797 ENDIF 783 798 ! … … 798 813 sxvp = 0._wp ; syvp = 0._wp ; sxxvp = 0._wp ; syyvp = 0._wp ; sxyvp = 0._wp ! melt pond volume 799 814 sxlhp = 0._wp ; sylhp = 0._wp ; sxxlhp = 0._wp ; syylhp = 0._wp ; sxylhp = 0._wp ! melt pond lid thickness 815 sxsalp = 0._wp ; sysalp = 0._wp ; sxxsalp = 0._wp ; syysalp = 0._wp ; sxysalp = 0._wp ! melt pond salinity 800 816 ENDIF 801 817 ENDIF … … 884 900 CALL iom_rstput( iter, nitrst, numriw, 'syylhp', syylhp ) 885 901 CALL iom_rstput( iter, nitrst, numriw, 'sxylhp', sxylhp ) 902 ! ! melt pond salinity 903 CALL iom_rstput( iter, nitrst, numriw, 'sxsalp' , sxsalp ) 904 CALL iom_rstput( iter, nitrst, numriw, 'sysalp' , sysalp ) 905 CALL iom_rstput( iter, nitrst, numriw, 'sxxsalp', sxxsalp ) 906 CALL iom_rstput( iter, nitrst, numriw, 'syysalp', syysalp ) 907 CALL iom_rstput( iter, nitrst, numriw, 'sxysalp', sxysalp ) 886 908 ENDIF 887 909 !
Note: See TracChangeset
for help on using the changeset viewer.