My Project
Functions/Subroutines
adjust_ts.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine adjust_ts
 

Function/Subroutine Documentation

◆ adjust_ts()

subroutine adjust_ts ( )

Definition at line 46 of file adjust_ts.f90.

46 
47 !==============================================================================|
48  USE all_vars
49  USE mod_utils
50  use mod_par
51  USE bcs
52  IMPLICIT NONE
53  REAL(SP) :: TAVE,TAVE1,TAVE2
54  INTEGER :: I,K,JJ,I1,J,J1,J2,NUM_TAVE,NUM_TAVE1,NUM_TAVE2
55 !==============================================================================|
56 
57  IF (dbg_set(dbg_sbr)) WRITE(ipt,*) "Start: adjust_ts"
58 
59  IF(numqbc > 0)THEN
60 
61 ! IF(RIVER_INFLOW_LOCATION == 'node')THEN
62 ! DO K=1,KBM1
63 ! DO I=1,NUMQBC
64 ! JJ=INODEQ(I)
65 ! TAVE = 0.0_SP
66 ! NUM_TAVE = 0
67 ! DO J=2,NTSN(JJ)-1
68 ! I1=NBSN(JJ,J)
69 ! IF(NUMQBC == 1)THEN
70 ! NUM_TAVE = NUM_TAVE + 1
71 ! TAVE = TAVE + T1(I1,K)
72 ! ELSE
73 ! IF(I == 1)THEN
74 ! IF(I1 /= INODEQ(I+1))THEN
75 ! NUM_TAVE = NUM_TAVE + 1
76 ! TAVE = TAVE + T1(I1,K)
77 ! END IF
78 ! ELSE IF(I == NUMQBC)THEN
79 ! IF(I1 /= INODEQ(I-1))THEN
80 ! NUM_TAVE = NUM_TAVE + 1
81 ! TAVE = TAVE + T1(I1,K)
82 ! END IF
83 ! ELSE IF(I1 /= INODEQ(I-1) .AND. I1 /= INODEQ(I+1))THEN
84 ! NUM_TAVE = NUM_TAVE + 1
85 ! TAVE = TAVE + T1(I1,K)
86 ! END IF
87 ! END IF
88 ! END DO
89 ! T1(JJ,K) = TAVE/FLOAT(NUM_TAVE)
90 ! END DO
91 ! END DO
92 ! ELSE IF(RIVER_INFLOW_LOCATION == 'edge')THEN
93 ! DO K=1,KBM1
94 ! DO I=1,NUMQBC
95 ! J1=N_ICELLQ(I,1)
96 ! J2=N_ICELLQ(I,2)
97 ! TAVE1 = 0.0_SP
98 ! TAVE2 = 0.0_SP
99 ! NUM_TAVE1 = 0
100 ! NUM_TAVE2 = 0
101 
102 ! DO J=2,NTSN(J1)-1
103 ! I1=NBSN(J1,J)
104 ! IF(NUMQBC == 1)THEN
105 ! IF(I1 /= J2)THEN
106 ! NUM_TAVE1 = NUM_TAVE1 + 1
107 ! TAVE1 = TAVE1 + T1(I1,K)
108 ! END IF
109 ! ELSE IF(I == 1)THEN
110 ! IF(I1 /= J2 .AND. I1 /= N_ICELLQ(I+1,1) .AND. &
111 ! I1 /= N_ICELLQ(I+1,2))THEN
112 ! NUM_TAVE1 = NUM_TAVE1 + 1
113 ! TAVE1 = TAVE1 + T1(I1,K)
114 ! END IF
115 ! ELSE IF(I == NUMQBC)THEN
116 ! IF(I1 /= J2 .AND. I1 /= N_ICELLQ(I-1,1) .AND. &
117 ! I1 /= N_ICELLQ(I-1,2))THEN
118 ! NUM_TAVE1 = NUM_TAVE1 + 1
119 ! TAVE1 = TAVE1 + T1(I1,K)
120 ! END IF
121 ! ELSE IF(I1 /= J2 .AND. &
122 ! I1 /= N_ICELLQ(I-1,1) .AND. I1 /= N_ICELLQ(I-1,2) .AND. &
123 ! I1 /= N_ICELLQ(I+1,1) .AND. I1 /= N_ICELLQ(I+1,2))THEN
124 ! NUM_TAVE1 = NUM_TAVE1 + 1
125 ! TAVE1 = TAVE1 + T1(I1,K)
126 ! END IF
127 ! END DO
128 ! T1(J1,K) = TAVE1/FLOAT(NUM_TAVE1)
129 
130 ! DO J=2,NTSN(J2)-1
131 ! I1=NBSN(J2,J)
132 ! IF(NUMQBC == 1)THEN
133 ! IF(I1 /= J1)THEN
134 ! NUM_TAVE2 = NUM_TAVE2 + 1
135 ! TAVE2 = TAVE2 + T1(I1,K)
136 ! END IF
137 ! ELSE IF(I == 1)THEN
138 ! IF(I1 /= J1 .AND. I1 /= N_ICELLQ(I+1,1) .AND. &
139 ! I1 /= N_ICELLQ(I+1,2))THEN
140 ! NUM_TAVE2 = NUM_TAVE2 + 1
141 ! TAVE2 = TAVE2 + T1(I1,K)
142 ! END IF
143 ! ELSE IF(I == NUMQBC)THEN
144 ! IF(I1 /= J1 .AND. I1 /= N_ICELLQ(I-1,1) .AND. &
145 ! I1 /= N_ICELLQ(I-1,2))THEN
146 ! NUM_TAVE2 = NUM_TAVE2 + 1
147 ! TAVE2 = TAVE2 + T1(I1,K)
148 ! END IF
149 ! ELSE IF(I1 /= J1 .AND. &
150 ! I1 /= N_ICELLQ(I-1,1) .AND. I1 /= N_ICELLQ(I-1,2) .AND. &
151 ! I1 /= N_ICELLQ(I+1,1) .AND. I1 /= N_ICELLQ(I+1,2))THEN
152 ! NUM_TAVE2 = NUM_TAVE2 + 1
153 ! TAVE2 = TAVE2 + T1(I1,K)
154 ! END IF
155 ! END DO
156 ! T1(J2,K) = TAVE2/FLOAT(NUM_TAVE2)
157 !
158 ! END DO
159 ! END DO
160 ! END IF
161 
162  DO i=1,numqbc
163  IF(river_inflow_location == 'node')THEN
164  j = inodeq(i)
165  DO k=1,kbm1
166  t1(j,k) = max(t1(j,k),tdis(i))
167  s1(j,k) = max(s1(j,k),sdis(i))
168  END DO
169  ELSE IF(river_inflow_location == 'edge')THEN
170  j1 = n_icellq(i,1)
171  j2 = n_icellq(i,2)
172  DO k=1,kbm1
173  t1(j1,k) = max(t1(j1,k),tdis(i))
174  t1(j2,k) = max(t1(j2,k),tdis(i))
175  s1(j1,k) = max(s1(j1,k),sdis(i))
176  s1(j2,k) = max(s1(j2,k),sdis(i))
177  END DO
178  END IF
179  END DO
180 
181  CALL n2e3d(t1,t)
182  CALL n2e3d(s1,s)
183 
184  END IF
185 
186  IF (dbg_set(dbg_sbr)) WRITE(ipt,*) "End: adjust_ts"
187 
188 
189  RETURN
real(sp), dimension(:,:), allocatable, target s
Definition: mod_main.f90:1288
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
real(sp), dimension(:,:), allocatable, target t1
Definition: mod_main.f90:1307
real(sp), dimension(:,:), allocatable, target s1
Definition: mod_main.f90:1308
real(sp), dimension(:), allocatable, target sdis
Definition: mod_main.f90:1225
integer, dimension(:,:), allocatable, target n_icellq
Definition: mod_main.f90:1216
subroutine n2e3d(NVAR, EVAR)
Definition: mod_main.f90:1370
real(sp), dimension(:,:), allocatable, target t
Definition: mod_main.f90:1286
real(sp), dimension(:), allocatable, target tdis
Definition: mod_main.f90:1224
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
integer, dimension(:), allocatable, target inodeq
Definition: mod_main.f90:1214
Here is the call graph for this function:
Here is the caller graph for this function: