1 |
guez |
104 |
module moycum_m |
2 |
|
|
|
3 |
|
|
implicit none |
4 |
|
|
|
5 |
|
|
contains |
6 |
|
|
|
7 |
|
|
SUBROUTINE moycum (opp, np, px, py, pwx) |
8 |
|
|
!- Does time operations |
9 |
|
|
USE errioipsl, ONLY : histerr |
10 |
|
|
|
11 |
|
|
CHARACTER(LEN=7) :: opp |
12 |
|
|
INTEGER :: np |
13 |
|
|
REAL, DIMENSION(:) :: px, py |
14 |
|
|
INTEGER :: pwx |
15 |
|
|
!--------------------------------------------------------------------- |
16 |
|
|
IF (pwx /= 0) THEN |
17 |
|
|
IF (opp == 'ave') THEN |
18 |
|
|
px(1:np)=(px(1:np)*pwx+py(1:np))/REAL(pwx+1) |
19 |
|
|
ELSE IF (opp == 't_sum') THEN |
20 |
|
|
px(1:np)=px(1:np)+py(1:np) |
21 |
|
|
ELSE IF ( (opp == 'l_min').OR.(opp == 't_min') ) THEN |
22 |
|
|
px(1:np)=MIN(px(1:np), py(1:np)) |
23 |
|
|
ELSE IF ( (opp == 'l_max').OR.(opp == 't_max') ) THEN |
24 |
|
|
px(1:np)=MAX(px(1:np), py(1:np)) |
25 |
|
|
ELSE |
26 |
|
|
CALL histerr(3, "moycum", 'Unknown time operation', opp, ' ') |
27 |
|
|
ENDIF |
28 |
|
|
ELSE |
29 |
|
|
IF (opp == 'l_min') THEN |
30 |
|
|
px(1:np)=MIN(px(1:np), py(1:np)) |
31 |
|
|
ELSE IF (opp == 'l_max') THEN |
32 |
|
|
px(1:np)=MAX(px(1:np), py(1:np)) |
33 |
|
|
ELSE |
34 |
|
|
px(1:np)=py(1:np) |
35 |
|
|
ENDIF |
36 |
|
|
ENDIF |
37 |
|
|
!-------------------- |
38 |
|
|
END SUBROUTINE moycum |
39 |
|
|
|
40 |
|
|
end module moycum_m |