--- MITgcm/pkg/cal/cal_convdate.F 2001/05/14 22:07:26 1.1 +++ MITgcm/pkg/cal/cal_convdate.F 2003/10/02 18:30:07 1.3.2.1 @@ -1,6 +1,6 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/cal/cal_convdate.F,v 1.1 2001/05/14 22:07:26 heimbach Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/cal/cal_convdate.F,v 1.3.2.1 2003/10/02 18:30:07 adcroft Exp $ -#include "CAL_CPPOPTIONS.h" +#include "CAL_OPTIONS.h" subroutine cal_ConvDate( I date, @@ -27,6 +27,9 @@ c - Introduced new routine and function names, cal_, c for verion 0.1.3. c +c 21-Sep-2003: fixed check_sign logic to work with +c negative intervals (menemenlis@jpl.nasa.gov) +c c ================================================================== c SUBROUTINE cal_ConvDate c ================================================================== @@ -53,9 +56,8 @@ integer fac integer date_1 integer date_2 - integer check_sign_1 - integer check_sign_2 integer ierr + integer check_sign c == end of interface == @@ -63,10 +65,12 @@ c Check the sign of the date. - check_sign_1 = sign(1,date(1)) - check_sign_2 = sign(1,date(2)) + check_sign = 1 + if ( ( (date(1).lt.0) .and. date(2).gt.0 ) .or. + & ( (date(1).gt.0) .and. date(2).lt.0 ) ) + & check_sign = -1 - if ( check_sign_1*check_sign_2 .ge. 0 ) then + if ( check_sign .ge. 0 ) then if (date(1) .eq. 0) then date_1 = date(1) if (date(2) .lt. 0) then