@@ -10,17 +10,17 @@ subroutine Marine()
10
10
11
11
double precision , dimension (:), allocatable :: flux,shelfdepth,ht,Fs,dh,dh1,dh2,Fmixt,mwater
12
12
double precision , dimension (:), allocatable :: dhs, dhs1, F1, F2, zi, zo
13
- integer , dimension (:), allocatable :: flag ,mmnrec,mmstack
13
+ integer , dimension (:), allocatable :: COTflag ,mmnrec,mmstack
14
14
integer , dimension (:,:), allocatable :: mmrec
15
15
double precision , dimension (:,:), allocatable :: mmwrec,mmlrec
16
16
double precision shelfslope,ratio1,ratio2,dx,dy
17
17
integer ij,ijr,ijk,k
18
18
19
- allocate (flux(nn),shelfdepth(nn),ht(nn),Fs(nn),dh(nn),dh1(nn),dh2(nn),Fmixt(nn),flag (nn))
19
+ allocate (flux(nn),shelfdepth(nn),ht(nn),Fs(nn),dh(nn),dh1(nn),dh2(nn),Fmixt(nn),COTflag (nn))
20
20
allocate (dhs(nn),dhs1(nn),F1(nn),F2(nn),zi(nn),zo(nn))
21
21
22
22
! set nodes at transition between ocean and continent
23
- flag = 0
23
+ COTflag = 0
24
24
25
25
dx= xl/ (nx-1 )
26
26
dy= yl/ (ny-1 )
@@ -40,10 +40,13 @@ subroutine Marine()
40
40
where (h.gt. sealevel) flux= 0.d0
41
41
42
42
! set nodes at transition between ocean and continent
43
- ! where (flux.gt.tiny(flux)) flag=1
43
+ ! where (flux.gt.tiny(flux)) COTflag=1
44
+ ! use single flow direction to set the flag that marks
45
+ ! the recieving node below/at sealevel of a node above/at
46
+ ! sealevel as a continent-ocean transition node.
44
47
do ij= 1 ,nn
45
48
ijr= rec (ij)
46
- if (h(ij).ge. sealevel.and. h(ijr).le. sealevel) flag (ijr)= 1
49
+ if (h(ij).ge. sealevel.and. h(ijr).le. sealevel) COTflag (ijr)= 1
47
50
enddo
48
51
49
52
! decompact volume of pure solid phase (silt and sand) from onshore
@@ -114,7 +117,7 @@ subroutine Marine()
114
117
115
118
! silt and sand coupling diffusion in ocean
116
119
call SiltSandCouplingDiffusion (h,Fmix,flux* Fs,flux* (1.d0 - Fs), &
117
- nx,ny,dx,dy,dt,sealevel,layer,kdsea1,kdsea2,nGSMarine,flag ,bounds_ibc)
120
+ nx,ny,dx,dy,dt,sealevel,layer,kdsea1,kdsea2,nGSMarine,COTflag ,bounds_ibc)
118
121
119
122
! pure silt and sand during deposition/erosion
120
123
dh1= ((h- ht)* Fmix+ layer* (Fmix- Fmixt))* (1.d0 - poro1)
@@ -173,7 +176,7 @@ end subroutine Marine
173
176
!- ---------------------------------------------------------------------------------
174
177
175
178
subroutine SiltSandCouplingDiffusion (h ,f ,Q1 ,Q2 ,nx ,ny ,dx ,dy ,dt , &
176
- sealevel ,L ,kdsea1 ,kdsea2 ,niter ,flag ,ibc )
179
+ sealevel ,L ,kdsea1 ,kdsea2 ,niter ,COTflag ,ibc )
177
180
178
181
implicit none
179
182
@@ -182,7 +185,7 @@ subroutine SiltSandCouplingDiffusion (h,f,Q1,Q2,nx,ny,dx,dy,dt, &
182
185
double precision h(nx* ny),f(nx* ny),Q1(nx* ny),Q2(nx* ny)
183
186
double precision , dimension (:), allocatable :: hp,fp,ht,ft,hhalf,fhalf,fhalfp
184
187
double precision , dimension (:), allocatable :: diag,sup,inf,rhs,res,tint
185
- integer flag (nx* ny)
188
+ integer COTflag (nx* ny)
186
189
187
190
double precision dx,dy,dt,sealevel,L,kdsea1,kdsea2
188
191
double precision K1,K2,tol,err1,err2
@@ -228,7 +231,7 @@ subroutine SiltSandCouplingDiffusion (h,f,Q1,Q2,nx,ny,dx,dy,dt, &
228
231
ijp= (j)* nx+ i
229
232
ijm= (j-2 )* nx+ i
230
233
! in ocean and not at ocean-continent transition
231
- if (ht(ij).le. sealevel.and. flag (ij).eq. 0 ) then
234
+ if (ht(ij).le. sealevel.and. COTflag (ij).eq. 0 ) then
232
235
if (i.eq. 1 ) then
233
236
if (cbc(4 :4 ).eq. ' 1' ) then
234
237
diag(i)= 1.d0
@@ -302,7 +305,7 @@ subroutine SiltSandCouplingDiffusion (h,f,Q1,Q2,nx,ny,dx,dy,dt, &
302
305
ijp= (j)* nx+ i
303
306
ijm= (j-2 )* nx+ i
304
307
! in ocean and not at ocean-continent transition
305
- if (ht(ij).le. sealevel.and. flag (ij).eq. 0 ) then
308
+ if (ht(ij).le. sealevel.and. COTflag (ij).eq. 0 ) then
306
309
! deposition
307
310
if (hhalf(ij).ge. (1.d0+1.d-6 )* ht(ij)) then
308
311
Dp= (hhalf(ij)- ht(ij))/ dt
@@ -359,7 +362,7 @@ subroutine SiltSandCouplingDiffusion (h,f,Q1,Q2,nx,ny,dx,dy,dt, &
359
362
ijp= (j)* nx+ i
360
363
ijm= (j-2 )* nx+ i
361
364
! in ocean and not at ocean-continent transition
362
- if (ht(ij).le. sealevel.and. flag (ij).eq. 0 ) then
365
+ if (ht(ij).le. sealevel.and. COTflag (ij).eq. 0 ) then
363
366
if (j.eq. 1 ) then
364
367
if (cbc(1 :1 ).eq. ' 1' ) then
365
368
diag(j)= 1.d0
@@ -433,7 +436,7 @@ subroutine SiltSandCouplingDiffusion (h,f,Q1,Q2,nx,ny,dx,dy,dt, &
433
436
ijp= (j)* nx+ i
434
437
ijm= (j-2 )* nx+ i
435
438
! in ocean and not at ocean-continent transition
436
- if (ht(ij).le. sealevel.and. flag (ij).eq. 0 ) then
439
+ if (ht(ij).le. sealevel.and. COTflag (ij).eq. 0 ) then
437
440
! deposition
438
441
if (h(ij).ge. (1.d0+1.d-6 )* hhalf(ij)) then
439
442
Dp= (h(ij)- hhalf(ij))/ dt
0 commit comments