Line data Source code
1 : !======================================================================= 2 : ! 3 : ! First year concentration tracer for sea ice 4 : ! 5 : ! see 6 : ! Armour, K. C., C. M. Bitz, L. Thompson and E. C. Hunke (2011). Controls 7 : ! on Arctic sea ice from first-year and multi-year ice survivability. 8 : ! J. Climate, 24, 23782390. doi: 10.1175/2010JCLI3823.1. 9 : ! 10 : ! authors C. Bitz, University of Washington, modified from icepack_age module 11 : ! 12 : ! 2012: E. Hunke adopted from CESM into CICE, changed name from ice_FY.F90 13 : ! 14 : module icepack_firstyear 15 : 16 : use icepack_kinds 17 : use icepack_parameters, only: secday, c0 18 : use icepack_warnings, only: warnstr, icepack_warnings_add 19 : use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted 20 : 21 : implicit none 22 : 23 : private 24 : public :: update_FYarea 25 : 26 : !======================================================================= 27 : 28 : contains 29 : 30 : !======================================================================= 31 : 32 : ! Zero ice FY tracer on fixed day of year. Zeroing FY ice tracer promotes 33 : ! ice to MY ice. Unfortunately some frazil ice may grow before the 34 : ! zeroing date and thus get promoted to MY ice too soon. 35 : ! Bummer. 36 : 37 774810532 : subroutine update_FYarea (dt, & 38 : nhmask, shmask, & ! LCOV_EXCL_LINE 39 : yday, FYarea) 40 : 41 : real (kind=dbl_kind), intent(in) :: & 42 : dt , & ! time step ! LCOV_EXCL_LINE 43 : yday ! day of the year 44 : 45 : logical (kind=log_kind), & 46 : intent(in) :: & ! LCOV_EXCL_LINE 47 : nhmask, shmask 48 : 49 : real (kind=dbl_kind), & 50 : intent(inout) :: & ! LCOV_EXCL_LINE 51 : FYarea 52 : 53 : character(len=*),parameter :: subname='(update_FYarea)' 54 : 55 774810532 : if ((yday >= 259._dbl_kind) .and. & 56 : (yday < 259._dbl_kind+dt/secday)) then 57 176305 : if (nhmask) FYarea = c0 58 : endif 59 : 60 774810532 : if ((yday >= 75._dbl_kind) .and. & 61 : (yday < 75._dbl_kind+dt/secday)) then 62 2105347 : if (shmask) FYarea = c0 63 : endif 64 : 65 774810532 : end subroutine update_FYarea 66 : 67 : !======================================================================= 68 : 69 : end module icepack_firstyear 70 : 71 : !=======================================================================