@@ -33,9 +33,10 @@ program linear_shallow_water2d_kelvinwaves
3333 character (SELF_INTEGRATOR_LENGTH),parameter :: integrator = ' rk3' ! Which integrator method
3434 integer ,parameter :: controlDegree = 7 ! Degree of control polynomial
3535 integer ,parameter :: targetDegree = 16 ! Degree of target polynomial
36- real (prec),parameter :: dt = 0.001_prec ! Time-step size
37- real (prec),parameter :: endtime = 1.0_prec ! 30.0_prec ! (s);
38- real (prec),parameter :: f0 = - 10.0_prec ! reference coriolis parameter (1/s)
36+ real (prec),parameter :: dt = 0.0025_prec ! Time-step size
37+ real (prec),parameter :: endtime = 30.0_prec ! (s);
38+ real (prec),parameter :: f0 = 10.0_prec ! reference coriolis parameter (1/s)
39+ real (prec),parameter :: Cd = 0.5_prec ! Linear drag coefficient (1/s)
3940 real (prec),parameter :: iointerval = 0.05 ! Write files 20 times per characteristic time scale
4041 real (prec) :: r
4142 real (prec) :: e0,ef ! Initial and final entropy
@@ -71,25 +72,26 @@ program linear_shallow_water2d_kelvinwaves
7172 ! Set the resting surface height and gravity
7273 modelobj% H = H
7374 modelobj% g = g
75+ modelobj% Cd = Cd
7476
7577 ! ! Set the initial conditions
76- ! call modelobj%solution%SetEquation(3,'f = 0.001*exp( -( x ^2 + y^2 )/0.02 ) ')
77- ! call modelobj%solution%SetInteriorFromEquation(geometry,0.0_prec)
78+ call modelobj% solution% SetEquation(3 ,' f = 0.001*exp( -( (x-1.0) ^2 + y^2 )/0.02 ) ' )
79+ call modelobj% solution% SetInteriorFromEquation(geometry,0.0_prec )
7880
79- do iel = 1 ,modelobj% mesh% nElem
80- do j = 1 ,modelobj% solution% N+1
81- do i = 1 ,modelobj% solution% N+1
82- call random_number (r)
83- ! modelobj%solution%interior(i,j,iel,3) = modelobj%solution%interior(i,j,iel,3) + 0.0001_prec *(r-0.5)
84- modelobj% solution% interior(i,j,iel,3 ) = 0.0001_prec * (r-0.5 )
81+ ! do iel = 1,modelobj%mesh%nElem
82+ ! do j = 1,modelobj%solution%N+1
83+ ! do i = 1,modelobj%solution%N+1
84+ ! call random_number(r)
85+ ! modelobj%solution%interior(i,j,iel,3) = modelobj%solution%interior(i,j,iel,3)*(1.0_prec+1.0_prec *(r-0.5) )
86+ ! ! modelobj%solution%interior(i,j,iel,3) = 0.0001_prec*(r-0.5)
8587
86- enddo
87- enddo
88- enddo
89- call modelobj% solution% UpdateDevice()
88+ ! enddo
89+ ! enddo
90+ ! enddo
91+ ! call modelobj%solution%UpdateDevice()
9092
9193 call modelobj% SetCoriolis(f0)
92- call modelobj% DiagnoseGeostrophicVelocity()
94+ ! call modelobj%DiagnoseGeostrophicVelocity()
9395
9496 call modelobj% WriteModel()
9597 call modelobj% IncrementIOCounter()
@@ -108,9 +110,8 @@ program linear_shallow_water2d_kelvinwaves
108110
109111 ef = modelobj% entropy
110112
111- print * ,e0,ef
112- if (abs (ef- e0) > epsilon (e0)) then
113- print * ," Warning: Final entropy greater than initial entropy! " ,e0,ef
113+ if (ef > e0) then
114+ print * ," Warning: Final entropy greater than initial entropy! " ,ef,e0
114115 endif
115116
116117 ! Clean up
0 commit comments