/[MITgcm]/MITgcm/eesupp/src/different_multiple.F
ViewVC logotype

Diff of /MITgcm/eesupp/src/different_multiple.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by cnh, Thu May 21 18:30:08 1998 UTC revision 1.4 by cnh, Sun Feb 4 14:38:42 2001 UTC
# Line 1  Line 1 
1  C     $Header$  C     $Header$
2    C $Name$
3  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
4    
5  CStartofinterface  CStartofinterface
# Line 16  C     | separately with no optimisation. Line 17  C     | separately with no optimisation.
17  C     \==========================================================/  C     \==========================================================/
18        IMPLICIT NONE        IMPLICIT NONE
19  C     Returns TRUE if val1 and val2 are different multiples of freq.  C     Returns TRUE if val1 and val2 are different multiples of freq.
20        REAL freq, val1, val2        _RL  freq, val1, val2
21  CEndofinterface  CEndofinterface
22          _RL  f, v1, v2, v3, v4, d1, d2, d3, step
23    
24    C     o Do easy cases first.
25        DIFFERENT_MULTIPLE = .FALSE.        DIFFERENT_MULTIPLE = .FALSE.
       IF ( freq .EQ. 0. ) THEN  
         DIFFERENT_MULTIPLE = .FALSE.  
       ELSE  
         DIFFERENT_MULTIPLE = INT(val1/freq) .NE. INT(val2/freq)  
       ENDIF  
       END  
26    
27          IF ( freq .NE. 0. ) THEN
28            IF ( ABS(val1-val2) .GT. freq ) THEN
29             DIFFERENT_MULTIPLE = .TRUE.
30            ELSE
31    
32    C         o This case is more complex because of round-off error
33              f = freq
34              v1 = val1
35              v2 = val2
36              step = v1-v2
37    
38    C         Test v1 to see if its a "closest multiple"
39              v3 = v1 + step
40              v4 = NINT(v1/f)*f
41              d1 = v1-v4
42              d2 = v2-v4
43              d3 = v3-v4
44              IF ( ABS(d1) .LE. ABS(d2) .AND. ABS(d1) .LE. ABS(d3) )
45         &        DIFFERENT_MULTIPLE = .TRUE.
46    
47            ENDIF ! |val1-val2| > freq
48          ENDIF ! freq != 0
49    
50          END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22