source: CIVL/mods/dev.civl.abc/examples/fortran/flash/heat/Heat_min.F90

main
Last change on this file was aad342c, checked in by Stephen Siegel <siegel@…>, 3 years ago

Performing huge refactor to incorporate ABC, GMC, and SARL into CIVL repo and use Java modules.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5664 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.9 KB
Line 
1!! Modified from FLASH application:
2!! SrcInfo: ./source/physics/sourceTerms/Heat/HeatMain/Neutrino/Heat.F90
3
4#include "constants.h"
5#include "Flash.h"
6
7program HeatMin
8 implicit none
9
10 integer :: blkCtr
11 integer :: blkLst(MAXBLOCKS)
12 real :: data(:,:,:,:,MAXBLOCKS), dt, time
13
14 blkCtr = 1
15 blkLst = 1
16
17 time = 0.0
18 dt = 0.5
19
20 data = 0.0
21 data(2,:,:,:,:) = 1.0
22
23 call Heat(blkCtr, blkLst, dt, time)
24
25 ! assert
26
27end program HeatMin
28
29
30subroutine Grid_getBlkIndexLimits(blockId, blkLimits, blkLimitsGC)
31
32 implicit none
33
34 integer,intent(IN) :: blockId
35 integer, dimension(2,MDIM), intent(OUT) :: blkLimits,blkLimitsGC
36
37 blkLimitsGC = 1
38 blkLimitsGC(HIGH,IAXIS) = GRID_IHI_GC
39 blkLimitsGC(HIGH,JAXIS) = GRID_JHI_GC
40 blkLimitsGC(HIGH,KAXIS) = GRID_KHI_GC
41
42 blkLimits(LOW,IAXIS) = GRID_ILO
43 blkLimits(HIGH,IAXIS) = GRID_IHI
44 blkLimits(LOW,JAXIS) = GRID_JLO
45 blkLimits(HIGH,JAXIS) = GRID_JHI
46 blkLimits(LOW,KAXIS) = GRID_KLO
47 blkLimits(HIGH,KAXIS) = GRID_KHI
48
49end subroutine Grid_getBlkIndexLimits
50
51
52
53subroutine Heat(blockCount, blockList, dt, time)
54!! real,dimension(:,:,:,:,MAXBLK) :: data
55
56 use civl_data, ONLY : data
57
58 implicit none
59
60 integer :: blockCount
61 integer ::blockList(blockCount)
62 real :: dt,time
63
64 real,dimension(:,:,:,:) :: sdata
65 integer :: blockID
66 integer :: i,j,k,n
67
68
69 !$omp parallel &
70 !$omp private(n,blockID,k,j,i,sdata) &
71 !$omp shared(blockCount,blockList,dt,time,data)
72
73
74 !$omp do
75 do n = 1, blockCount
76 blockID = blockList(n)
77 sdata = data(:,:,:,:,blockID)
78
79 do k = 1, 1
80 do j = 1, 1
81 do i = 1, NGUARD + NXIDX/NPROC
82
83 data(2,i,j,k,blockID) = data(2,i,j,k,blockID) + dt
84
85 data(1,i,j,k,blockID) = data(2,i,j,k,blockID) + dt
86
87 enddo
88 enddo
89 enddo
90
91 enddo
92 !$omp enddo
93 !$omp end parallel
94
95 return
96end subroutine Heat
Note: See TracBrowser for help on using the repository browser.