genere_kgaz.f [SRC] [CPP] [JOB] [SCAN]
srcresultats/00benedicte/.xvpics [=]
resultats/pt1_complet/.xvpics [=]
archivage/code2000X_testCG [=]
resultats/pt1_complet [=]



   1 |       SUBROUTINE genere_kgaz(cas_genere_kg,ep_genere_kg)
   2 |       IMPLICIT NONE
   3 | c
   4 | c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   5 | c generation de "kg" pour chaque gaz pour "cecile.f"
   6 | c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   7 | c
   8 | c.......................................................................
   9 | c
  10 |       INCLUDE 'cecile.inc'
  11 | 
  12 | c     ngaz_mx est defini dans propradia
  13 | c     et utilise dans radiatif
  14 |       include 'propradia.inc'
  15 |       include 'radiatif.inc'
  16 | c
  17 | c.......................................................................
  18 | c
  19 | c cas : si cas=1 c'est une emission de paroi
  20 | c          si cas=2 c'est une emission de volume
  21 | c ep : epaisseur de la maille d'emission (seulement pour cas=2)
  22 | c
  23 | c.......................................................................
  24 | c
  25 |       INTEGER cas_genere_kg, min
  26 |       DOUBLE PRECISION ep_genere_kg
  27 |       DOUBLE PRECISION kgc_genere_kg
  28 |       double precision somme, tau
  29 |       dimension tau(ngaz_mx)
  30 | c
  31 | c.......................................................................
  32 | c
  33 |       DOUBLE PRECISION tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,tmp8,tmp9
  34 |       INTEGER itmp1,itmp2,itmp3,itmp4,itmp5
  35 | c
  36 | c.......................................................................
  37 | c
  38 | c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  39 | c PRE-CALCUL
  40 | c----------------------------------------------------------------------
  41 | ccccc      print *, 'pre-calcul'
  42 | ccccc      print *, cas_genere_kg,ep_genere_kg, ngaz_mx
  43 |       do igaz = 1, 3
  44 | cc         print *,'debut genere_kgaz'
  45 | cc         print *, igaz, in,kgbar(igaz, in),kgbar(igaz, in)*ep_genere_kg
  46 | cc         read *
  47 |            if ((kgbar(igaz, in)*ep_genere_kg) .le. 1.d-6) then
  48 |             ! precaution debug
  49 |             kg(igaz) = 0.d+0
  50 |             tau(igaz)= 1.d+0
  51 | 
  52 |             else
  53 |             ! pre-calcul normal
  54 |             !epaisseur jamais nulle meme pour paroi
  55 |          CALL trss(phig(igaz,in),kgbar(igaz,in),ep_genere_kg,tau(igaz))
  56 |             !kg(igaz)= -log(tau(igaz)/ep_genere_kg)
  57 |             !correction du bug trouve par Patrice: version novembre 2002
  58 |             kg(igaz)= -log(tau(igaz))/ep_genere_kg
  59 |            endif
  60 | ccccc      print *, 'tau(',igaz,'):  ', tau(igaz)
  61 |       enddo
  62 | 
  63 | c----------------------------------------------------------------------
  64 | c SELECTION DU PREMIER GAZ
  65 | c----------------------------------------------------------------------
  66 |       tmp9 = tau(1)
  67 |       min = 1
  68 |       do igaz= 2, 3
  69 |          if (tau(igaz) .le.tmp9 ) then
  70 |             tmp9 = tau(igaz)
  71 |             min = igaz
  72 |          endif
  73 |       enddo
  74 | c----------------------------------------------------------------------
  75 | c Tirage des kg des gaz
  76 | c----------------------------------------------------------------------
  77 | 
  78 | c remplacer tout ce qui suit par modulo etc.... A  FAIRE
  79 |       if (min.eq.1)then
  80 |          somme = kg(2)+kg(3)+ 1.d+0 * ksbar(in)
  81 | c         if (kgbar(1,in).eq. 0.d+0) then
  82 |          if ((kgbar(1, in)*ep_genere_kg) .le. 1.d-6) then
  83 |             kg(1)=0.d+0 
  84 |             kgskgbar(1)=1.d+0
  85 |             else
  86 |             call genere_kg(cas_genere_kg,ep_genere_kg,1,somme)
  87 |          endif
  88 | 
  89 |          somme = kg(1)+kg(3)+ 1.d+0 * ksbar(in)
  90 | c         if (kgbar(2,in).eq. 0.d+0) then
  91 |           if ((kgbar(2, in)*ep_genere_kg) .le. 1.d-6) then
  92 |             kg(2)=0.d+0 
  93 |             kgskgbar(2)=1.d+0
  94 |             else
  95 |          call genere_kg(cas_genere_kg,ep_genere_kg,2,somme)
  96 |          endif
  97 | 
  98 |          somme = kg(1)+kg(2)+ 1.d+0 * ksbar(in)
  99 | c         if (kgbar(3,in).eq. 0.d+0) then
 100 |           if ((kgbar(3, in)*ep_genere_kg) .le. 1.d-6) then
 101 |             kg(3)=0.d+0
 102 |             kgskgbar(3)=1.d+0
 103 |             else
 104 |          call genere_kg(cas_genere_kg,ep_genere_kg,3,somme)
 105 |          endif
 106 | 
 107 |       elseif (min.eq.2) then
 108 |          somme = kg(1)+kg(3)+ 1.d+0 * ksbar(in)
 109 | c         if (kgbar(2,in).eq. 0.d+0) then
 110 |           if ((kgbar(2, in)*ep_genere_kg) .le. 1.d-6) then
 111 |             kg(2)=0.d+0
 112 |             kgskgbar(2)=1.d+0
 113 |             else
 114 |          call genere_kg(cas_genere_kg,ep_genere_kg,2,somme)
 115 |          endif
 116 | 
 117 |          somme = kg(2)+kg(3)+ 1.d+0 * ksbar(in)
 118 | c         if (kgbar(1,in).eq. 0.d+0) then
 119 |           if ((kgbar(1, in)*ep_genere_kg) .le. 1.d-6) then
 120 |             kg(1)=0.d+0 
 121 |             kgskgbar(1)=1.d+0
 122 |             else
 123 |          call genere_kg(cas_genere_kg,ep_genere_kg,1,somme)
 124 |          endif
 125 | 
 126 |          somme = kg(1)+kg(2)+ 1.d+0 * ksbar(in)
 127 | c         if (kgbar(3,in).eq. 0.d+0) then
 128 |           if ((kgbar(3, in)*ep_genere_kg) .le. 1.d-6) then
 129 |             kg(3)=0.d+0
 130 |             kgskgbar(3)=1.d+0
 131 |             else
 132 |          call genere_kg(cas_genere_kg,ep_genere_kg,3,somme)
 133 |          endif
 134 | 
 135 |       elseif (min.eq.3) then
 136 |          somme = kg(1)+kg(2)+ 1.d+0 * ksbar(in)
 137 | cccc         print *, kg(1),kg(2), ksbar(in)
 138 | cccc         read *
 139 | ccc         somme = 0.d+0
 140 | c         if (kgbar(3,in).eq. 0.d+0) then
 141 |          if ((kgbar(3, in)*ep_genere_kg) .le. 1.d-6) then
 142 |             kg(3)=0.d+0
 143 |             kgskgbar(3)=1.d+0
 144 |             else
 145 |          call genere_kg(cas_genere_kg,ep_genere_kg,3,somme)
 146 |          endif
 147 | 
 148 |          somme = kg(2)+kg(3)+ 1.d+0 * ksbar(in)
 149 | c         if (kgbar(1,in).eq. 0.d+0) then
 150 |           if ((kgbar(1, in)*ep_genere_kg) .le. 1.d-6) then
 151 |             kg(1)=0.d+0
 152 |             kgskgbar(1)=1.d+0
 153 |             else
 154 |          call genere_kg(cas_genere_kg,ep_genere_kg,1,somme)
 155 |          endif
 156 | 
 157 |          somme = kg(1)+kg(3)+ 1.d+0 * ksbar(in)
 158 | c         if (kgbar(2,in).eq. 0.d+0) then
 159 |           if ((kgbar(2, in)*ep_genere_kg) .le. 1.d-6) then
 160 |             kg(2)=0.d+0
 161 |             kgskgbar(2)=1.d+0
 162 |             else
 163 |          call genere_kg(cas_genere_kg,ep_genere_kg,2,somme)
 164 |          endif
 165 |       endif
 166 | 
 167 | 
 168 | c 6000 call genere_kg(cas_genere_kg,ep_genere_kg,3,0.d+0)
 169 | c.......................................................................
 170 | c
 171 |       RETURN
 172 |       END
 173 | 
 174 | 
 175 | 
 176 | 
 177 | 


genere_kgaz.f could be called by:
mcecile.f [archivage/code2000X_testCG] - 731 - 830 - 932 - 1058 - 1185
mcecile.f [resultats/pt1_complet] - 689 - 783 - 877 - 998 - 1118
mcecile.f [src] - 978 - 1096 - 1230 - 1374 - 1534