46 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
47 |
C == Local variables == |
C == Local variables == |
48 |
INTEGER stdUnit, errUnit |
INTEGER stdUnit, errUnit |
49 |
INTEGER nn, k, l |
INTEGER nn, k, l, no_hFac |
50 |
LOGICAL diagIsPP, flagD, flagP, flagM |
LOGICAL diagIsPP, flagD, flagP, flagM, use_hFac |
51 |
|
|
52 |
CHARACTER*10 gcode |
CHARACTER*10 gcode |
53 |
CHARACTER*12 tmpMsg |
CHARACTER*12 tmpMsg |
63 |
C- Case of Post-Procesed diag, not filled up but computed from other diags: |
C- Case of Post-Procesed diag, not filled up but computed from other diags: |
64 |
diagIsPP = gdiag(ndId)(5:5).EQ.'P' |
diagIsPP = gdiag(ndId)(5:5).EQ.'P' |
65 |
|
|
66 |
|
C- Register negative "jdiag" when cumulating thickness (hFac) weighted field |
67 |
|
no_hFac = 1 |
68 |
|
IF ( fflags(listId)(3:3).EQ.'h' ) THEN |
69 |
|
gcode = gdiag(ndId)(1:10) |
70 |
|
use_hFac = ( gcode(2:2).EQ.'U' .OR. gcode(2:2).EQ.'V' |
71 |
|
& .OR. gcode(2:2).EQ.'M' ) |
72 |
|
use_hFac = use_hFac .AND. gcode(9:10).EQ.'MR' |
73 |
|
& .AND. gcode(3:3).EQ.'R' |
74 |
|
& .AND. gcode(5:5).EQ.' ' |
75 |
|
IF ( use_hFac ) no_hFac = -1 |
76 |
|
ENDIF |
77 |
|
|
78 |
C--- Seach for the same diag (with same freq) to see if already set |
C--- Seach for the same diag (with same freq) to see if already set |
79 |
C do it recursively on Post-Processed diag dependance (=mate) |
C do it recursively on Post-Processed diag dependance (=mate) |
80 |
C until we find either one already set or a non Post-Processed diag |
C until we find either one already set or a non Post-Processed diag |
89 |
& .AND. averagePhase(l).EQ.averagePhase(listId) |
& .AND. averagePhase(l).EQ.averagePhase(listId) |
90 |
& .AND. averageCycle(l).EQ.averageCycle(listId) ) THEN |
& .AND. averageCycle(l).EQ.averageCycle(listId) ) THEN |
91 |
DO k=1,MIN(nActive(l),numperList) |
DO k=1,MIN(nActive(l),numperList) |
92 |
IF (flagD .AND. jdiag(k,l).GT.0) THEN |
IF ( flagD .AND. no_hFac*jdiag(k,l).GT.0 ) THEN |
93 |
IF ( cdiag(nn).EQ.cdiag(jdiag(k,l)) ) THEN |
IF ( cdiag(nn).EQ.cdiag(ABS(jdiag(k,l))) ) THEN |
94 |
C- diagnostics already set ; use the same slot: |
C- diagnostics already set ; use the same slot: |
95 |
flagD = .FALSE. |
flagD = .FALSE. |
96 |
idiag(mId,listId) = -ABS(idiag(k,l)) |
idiag(mId,listId) = -ABS(idiag(k,l)) |
103 |
flagP = flagD .AND. gdiag(nn)(5:5).EQ.'P' |
flagP = flagD .AND. gdiag(nn)(5:5).EQ.'P' |
104 |
IF ( flagP ) nn = hdiag(nn) |
IF ( flagP ) nn = hdiag(nn) |
105 |
ENDDO |
ENDDO |
106 |
|
jdiag(mId,listId) = no_hFac*ndId |
107 |
|
|
108 |
C--- Set pointer if not already set, otherwise just print a message |
C--- Set pointer if not already set, otherwise just print a message |
109 |
|
|