!--------1---------2---------3---------4---------5---------6---------7---------8 module ice_parameters !--------1---------2---------3---------4---------5---------6---------7---------8 use global_constants, only : rkind implicit none private public :: set_ice, temperature_melting_I real(rkind) :: temperature_melting_I, slope_temperature_I_III & & , temperature_melting_I_III, pressure_I_III, slope_temperature_III_V & & , temperature_melting_III_V, pressure_III_V, slope_temperature_V_VI & & , temperature_melting_V_VI, pressure_V_VI contains subroutine set_ice use global_constants, only : ice_name if(ice_name == 'IceOnly') then temperature_melting_I = 273.16_rkind temperature_melting_I_III = 251.15_rkind temperature_melting_III_V = 256.15_rkind temperature_melting_V_VI = 273.31_rkind pressure_I_III = 207e6_rkind pressure_III_V = 346e6_rkind pressure_V_VI = 625e6_rkind slope_temperature_I_III = (temperature_melting_I_III & & - temperature_melting_I)/(pressure_I_III) slope_temperature_III_V = (temperature_melting_III_V & & - temperature_melting_I_III)/(pressure_III_V-pressure_I_III) slope_temperature_V_VI = (temperature_melting_V_VI & & - temperature_melting_III_V)/(pressure_V_VI-pressure_III_V) else write(999,*) 'ice_select failed! ice_name is ', ice_name write(999,*) 'Please write IceOnly' stop endif return end subroutine set_ice real(rkind) function temperature_melting(thick) use global_constants, only : density use global_parameters, only : pressure_ice real(rkind),intent(in) :: thick temperature_melting = temperature_melting_I + & & slope_temperature_I_III*pressure_ice(thick) return end function temperature_melting end module ice_parameters