!--------1---------2---------3---------4---------5---------6---------7---------8 subroutine fdm_explicit_water !--------1---------2---------3---------4---------5---------6---------7---------8 use global_constants, only : rkind, dt, volume_ratio_rock, time, year use global_parameters, only : irmax, dr, temperature_initial,iau, temp, radius use heat_parameters, only : thermal_conductivity, thermometric_diffusivity use material_parameters, only : mn, iw, ir, ii, material_check, material_select use ice_parameters, only : temperature_melting_I use energy, only : set_energy, temp_old implicit none integer :: i real(rkind) :: coef, heat_decay, coef_rad_rock, dtr dtr = dt/(dr*dr) temp(ir+2:iw) = temperature_melting_I do i = iw+1, irmax-1 call material_select(i) coef = thermometric_diffusivity(mn(i))*dtr/real(i) temp(i) = temp_old(i) + coef*(real(i+1)*temp_old(i+1) & & -2._rkind*real(i)*temp_old(i)+real(i-1)*temp_old(i-1)) & & + heat_decay(time,i)*dt*thermometric_diffusivity(mn(i)) & & /thermal_conductivity(mn(i)) enddo temp(irmax) = temperature_initial(iau) call fdm_explicit_water_rock(temp_old,dtr) return end subroutine fdm_explicit_water