6 SUBROUTINE spinup_max(PSPINMAX,KNBYEARSPIN,KNBYEARSOLD,KSPIN)
44 USE yomhook
,ONLY : lhook, dr_hook
45 USE parkind1
,ONLY : jprb
52 REAL,
INTENT(IN) :: pspinmax
56 INTEGER,
INTENT(IN) :: knbyearspin
58 INTEGER,
INTENT(IN) :: knbyearsold
59 INTEGER,
INTENT(OUT) :: kspin
67 REAL,
PARAMETER :: zspin_max = 0.6
68 REAL :: zspin_decrease
77 REAL(KIND=JPRB) :: zhook_handle
84 IF (lhook) CALL dr_hook(
'SPINUP_MAX',0,zhook_handle)
86 zspin_decrease=1.0-zspin_max-xspin_co2
88 zmax = zspin_max*
REAL(knbyearspin)
91 zdecrease = zmax+zspin_decrease*
REAL(knbyearspin)
92 idecrease = nint(zdecrease)
94 IF ( knbyearsold <= imax)
THEN
96 kspin = nint(pspinmax)
98 ELSE IF (knbyearsold > imax .AND. knbyearsold <= idecrease)
THEN
100 zslope = (pspinmax-1.0) / (zdecrease - zmax)
102 kspin = nint(pspinmax - zslope * (
REAL(KNBYEARSOLD) - zmax))
112 IF (lhook) CALL dr_hook(
'SPINUP_MAX',1,zhook_handle)
subroutine spinup_max(PSPINMAX, KNBYEARSPIN, KNBYEARSOLD, KSPIN)