1 |
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 |