File: atmsol.f90

package info (click to toggle)
code-saturne 4.3.3%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 77,992 kB
  • sloc: ansic: 281,257; f90: 122,305; python: 56,490; makefile: 3,915; xml: 3,285; cpp: 3,183; sh: 1,139; lex: 176; yacc: 101; sed: 16
file content (119 lines) | stat: -rw-r--r-- 3,369 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
!-------------------------------------------------------------------------------

! This file is part of Code_Saturne, a general-purpose CFD tool.
!
! Copyright (C) 1998-2016 EDF S.A.
!
! This program is free software; you can redistribute it and/or modify it under
! the terms of the GNU General Public License as published by the Free Software
! Foundation; either version 2 of the License, or (at your option) any later
! version.
!
! This program is distributed in the hope that it will be useful, but WITHOUT
! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
! FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
! details.
!
! You should have received a copy of the GNU General Public License along with
! this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
! Street, Fifth Floor, Boston, MA 02110-1301, USA.

!-------------------------------------------------------------------------------
!> \file atmsol.f90
!> \brief    build constants and variables to describe the ground model
!
!> \brief    build constants and variables to describe ground model
!>-     NB : soil model structures defined in module atsoil.f90
subroutine atmsol
!===============================================================================
! Module files
!===============================================================================

use paramx
use numvar
use optcal
use cstphy
use cstnum
use entsor
use parall
use period
use ppppar
use ppthch
use ppincl
use atincl
use atsoil
use mesh

!===============================================================================
implicit none
!===============================================================================

! Local variables

integer          iappel
integer          error

!===============================================================================

if (iatsoil.ge.0) then
  ! Premier appel: definition de nfmodsol
  iappel = 1
  call usatsoil(iappel)
  !============

  ! On fabrique une table de valeur des constantes utilisees dans le
  ! modele sol
  allocate(tab_sol(nbrsol),stat = error)
  call solcat( error )

  if (error /= 0) then
    write(nfecra,*) "Allocation error of atmodsol::tab_sol"
    call csexit(1)
  endif

  ! On continue seulement si nfmodsol > 0

  if (nfmodsol.gt.0) then

    ! On alloue le pourcentage de presence de sol pour chaque face de bord
    ! sa definition se fera dans l'appel2 de usatsoil
    allocate(pourcent_sol(nfmodsol,nbrsol),stat = error)

    if (error /= 0) then
      write(nfecra,*) "Allocation error of atmodsol::pourcent_sol"
      call csexit(1)
    endif

    iappel = 2
    call usatsoil(iappel)
    !============

    ! On definit une structure dediee a la resolution du probleme,
    ! avec presence des constantes  propre a chaque face ainsi que
    ! des 3 variables que l'on traitera
    allocate(solution_sol(nfmodsol),stat = error)

    if (error /= 0) then
      write(nfecra,*) "Allocation error of atmodsol::solution_sol"
      call csexit(1)
    endif

    call solmoy( error )
    if (error /= 0) then
      write(nfecra,*) "Allocation error of atmodsol::solmoy"
      call csexit(1)
    endif

    !Initialisation des variables Temps , Tempp , Total Water W1 et W2
    call soliva()

  endif ! nfmodsol > 0

endif ! iatsoil > 0

!----
! End
!----

return
end subroutine atmsol