diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index 76f0874ad7b3f8559cc383dd3de73ffa2811c73d..1ec1bf98c4833837dc8619a0a3ccce2fa7370988 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -80,26 +80,6 @@ integer, parameter :: NBUDGET_SV1 = 13 ! Reference number for 1st budget of RhoJ integer :: nbudgets ! Number of budget categories -type tbudgetdata - character(len=NBUNAMELGTMAX) :: cname = '' - character(len=NCOMMENTLGTMAX) :: ccomment = '' - character(len=100) :: clessource = '' ! Last source stored - integer :: nid = -1 !Identifier number (based on parameters NBUDGET_*) - integer :: ngroups = 0 !Number of groups of source terms to store - integer :: nsources = 0 !Number of available source terms - integer :: nsourcesmax = 0 !Maximum number of source terms - integer :: ntmpstoresource = 0 !Reference of the source term using the xtmpstore array - logical :: lenabled = .false. ! True if corresponding budget flag is set to true - real, dimension(:,:,:), allocatable :: xtmpstore ! Array to store temporary data - ! (to allow to store the difference between 2 places) - real, dimension(:,:,:), allocatable :: xtmplesstore ! Array to store temporary data for LES budgets - ! (to allow to store the difference between 2 places) - type(tbusourcedata), dimension(:), allocatable :: tsources ! Full list of source terms (used or not) - type(tbugroupdata), dimension(:), allocatable :: tgroups ! Full list of groups of source terms (to be written) - type(tburhodata), pointer :: trhodj => null() ! Budget array for rhodj -end type tbudgetdata - - type, extends( tfield_metadata_base ) :: tbusourcedata integer :: ngroup = 0 ! Number of the source term group in which storing the source term ! (0: no store, 1: individual store, >1: number of the group) @@ -139,6 +119,25 @@ type :: tbudiachrometadata integer :: nsv = -1 !Reference number of the corresponding scalar variable end type tbudiachrometadata +type tbudgetdata + character(len=NBUNAMELGTMAX) :: cname = '' + character(len=NCOMMENTLGTMAX) :: ccomment = '' + character(len=100) :: clessource = '' ! Last source stored + integer :: nid = -1 !Identifier number (based on parameters NBUDGET_*) + integer :: ngroups = 0 !Number of groups of source terms to store + integer :: nsources = 0 !Number of available source terms + integer :: nsourcesmax = 0 !Maximum number of source terms + integer :: ntmpstoresource = 0 !Reference of the source term using the xtmpstore array + logical :: lenabled = .false. ! True if corresponding budget flag is set to true + real, dimension(:,:,:), allocatable :: xtmpstore ! Array to store temporary data + ! (to allow to store the difference between 2 places) + real, dimension(:,:,:), allocatable :: xtmplesstore ! Array to store temporary data for LES budgets + ! (to allow to store the difference between 2 places) + type(tbusourcedata), dimension(:), allocatable :: tsources ! Full list of source terms (used or not) + type(tbugroupdata), dimension(:), allocatable :: tgroups ! Full list of groups of source terms (to be written) + type(tburhodata), pointer :: trhodj => null() ! Budget array for rhodj +end type tbudgetdata + type(tbudgetdata), dimension(:), allocatable, save :: tbudgets type(tburhodata), pointer, save :: tburhodj => null() ! Budget array for rhodj used inside some tbudgets