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



   1 | c.......................................................................
   2 | c
   3 | c programme de traitement des donnees psi --> densites et bilans
   4 | c
   5 | c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   6 | c Modele approche de rayonnement: methode pertubationnelle
   7 | c dst 1er ordre en kgaz et ksuies
   8 | c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   9 | c
  10 | c
  11 | c.......................................................................
  12 | 
  13 |       program mosim
  14 | 
  15 | 
  16 |       implicit none
  17 | c     utilisation des variables du common, pas de passage de var
  18 |       include 'cecile.inc'
  19 | c pour def n_gaz_mx il faut propradia.inc
  20 |       include 'propradia.inc'
  21 |       include 'entre.inc'
  22 |       integer itmp1, i,j,m
  23 |       double precision bil ,var_bil, psid, supp
  24 |       double precision fvnew, fmnew, tempnew
  25 | 
  26 |       dimension fvnew(1:n_mx)
  27 |       dimension tempnew(0:n_mx+1)
  28 |       dimension fmnew(1:ngaz_mx, 0:n_mx+1)
  29 | 
  30 |       dimension bil(0:n_mx+1), var_bil(0:n_mx+1), psid(0:n_mx,0:n_mx)
  31 |       dimension supp(0:n_mx+1,0:n_mx+1)
  32 | 
  33 |       character*20 chemin
  34 | 
  35 |       print *, 'CHANGER LE CHEMIN DE LA SOL DE REFERENCE'
  36 |       chemin = './resultats/testref'
  37 | c la description des fichiers de sortie est dans cecile.out
  38 | c      print *, 'SORTIES fichiers: cecile.out'
  39 | c      print *
  40 | c      open (50,file='cecile.out',status='unknown')
  41 | c      write(50,*) 'Fichier de description des fichiers sorties'
  42 | c      write(50,*)
  43 | c      write(50,*) 'cecile.ecr: redirection de l''affichage ecran si b.'
  44 | c      write(50,*)
  45 | c      write(50,*) 'sorties ascii --> .out '
  46 | c      write(50,*) 'ind.out: Indices imax=n jmax=n kmax=n'
  47 | c      write(50,*) 'psi.out: Puissance nette echangees en W --- 
  48 | c     & Ecart type pne'
  49 | c      write(50,*) 'dpsidk.out: DERIV/kgaz --- ecart --- DERIV /ksuie --- 
  50 | c     & ecart'
  51 | c      write(50,*) 
  52 | c      write(50,*) 'sortie binaires  --> .oub'
  53 | c      close(50)
  54 | 
  55 | 
  56 | 
  57 | c ***********************************************************************
  58 | c ***********************************************************************
  59 | c Sorties ascii: ACCES SEQUENTIEL
  60 | c Leur format (commentaires ...)  doit s'adapter a celui utilise par le 
  61 | c logiciel de relecture.
  62 | c Faire une boucle sur chaque indice sauf si tableau mieux
  63 | 
  64 | 
  65 | 
  66 | 
  67 | c*************************************************************************
  68 | c mise a zero des variables
  69 |       
  70 |       do i=0,n+1
  71 |          do j=0,n+1
  72 | c            do r=1,n
  73 |                supp(i,j)=0.D+0
  74 | c            enddo
  75 |          enddo
  76 |       enddo
  77 | 
  78 | 
  79 | 
  80 | c ************************************************************************
  81 | c LECTURE FORMAT GNUPLOT <=> sur une ligne: param,..,function (un param varie/bloc)
  82 |       open(20,file=chemin // '/ind.out', status
  83 |      & ='unknown')
  84 |       read(20,*) n, rsup
  85 |       read(20,*) n, rsup
  86 |       read(20,*) n, rsup
  87 |       close(20)
  88 |  
  89 | c..................................................................................
  90 | c     open(20,file='psi.out',status='unknown', recl=21*(6))
  91 |       open(20,file=chemin // '/psi.out',status
  92 |      & ='unknown')
  93 | c     write(20,*) 'psi --- ecart type'
  94 |       do i = 0,n+1
  95 |               do j=0,n+1
  96 | c                 read(20,'(i4,i4,4(e22.13))') in, iin, r(in), r(iin)
  97 |                  read(20,*) in, iin, r(i), r(j)
  98 |      & ,psi(i,j), var_psi(i,j)
  99 |               enddo
 100 |               read(20,*)
 101 |       enddo
 102 |       close (20)
 103 | 
 104 | c...................................................................................
 105 | c     open(20,file='dpsidk.out',status='unknown',recl=21*(7))
 106 |       open(20,file=chemin // '/dpsi.out',status
 107 |      & ='unknown')
 108 | c     write(20,*)'DERIv psi/kgaz --- Ecart type --- DERIV psi/ksuie ---'
 109 |       do i=0,n+1
 110 | 		do j=0,n+1
 111 | 			do m=1,n
 112 | 				read(20,'(3(i4),4(e22.13))') in, iin, 
 113 |      &  itmp1, dpsi6dfv(i,j,m)
 114 | cccc     & , var_dpsi6dfv(i,j,m)
 115 |                                 !print *, dpsi6dfv(i,j,m)
 116 | 			enddo
 117 |                         read(20,*)
 118 | 		enddo
 119 |       enddo
 120 |       close(20)
 121 | c.....................................................................................
 122 | c     le fichier dpsidfm a ete rajoute le 14 novembre 1999
 123 |        open(20,file=chemin // '/dpsidfm.out',
 124 |      & status='unknown')
 125 |         do in=0,n+1
 126 | 		do iin=0,n+1
 127 | 			do itmp1=1,n
 128 | c				write(20,'(3(i4),2(e22.13))') in, iin,
 129 |                                 read(20,'(6(e22.13))') 
 130 |      &   dpsi6dfmco(in,iin,itmp1), 
 131 | cccc     &   var_dpsi6dfmco(in,iin,itmp1),
 132 |      &   dpsi6dfmco2(in,iin,itmp1), 
 133 | cccc     &   var_dpsi6dfmco2(in,iin,itmp1),
 134 |      &   dpsi6dfmh2o(in,iin,itmp1)
 135 | cccc     & , var_dpsi6dfmh2o(in,iin,itmp1)
 136 | 			enddo
 137 | 		enddo
 138 |       enddo
 139 |        close(20)
 140 | 
 141 | c.....................................................................................
 142 | c      open(20,file='dpsi.out',status='unknown',recl=21*(7))
 143 |       open(20,file=chemin // '/dpsidt.out',status
 144 |      & ='unknown')
 145 | c      write(20,*)'DERIv psi/kgaz --- Ecart type --- DERIV psi/ksuie ---'
 146 |       do i=0,n+1
 147 | 		do j=0,n+1
 148 | 			do m=1,n
 149 | c				read(20,'(3(i4),2(e22.13))') in, iin,
 150 |                                 read(20,*) in, iin,
 151 | c                           	write(20,*) in, iin,
 152 |      &   itmp1, dpsi6dt(i,j,m)
 153 | cccc     & , var_dpsi6dt(i,j,m)
 154 | 			enddo
 155 | c simple retour a la ligne 
 156 |                         read(20,*)
 157 | 		enddo
 158 |       enddo
 159 |       close(20)
 160 | 
 161 | 
 162 | 
 163 | 
 164 | c-----------------------------------------------------------------
 165 | c lectures des variables dans l'etat de refenrence
 166 | C LECTURE DE LA DIFFERENCE dfv
 167 |        open(20,file=chemin // '/fv.in',status='unknown')
 168 |        do i=1,n 
 169 |           read (20,*) fv(i)
 170 |        enddo
 171 | c
 172 |        close(20)
 173 | c les fractions molaires
 174 |         open(20,file=chemin // '/fmco.in',
 175 |      &     status='unknown')
 176 |        do i=1,n 
 177 |           read (20,*) fm(1,i)
 178 |        enddo
 179 | c
 180 |        close(20)
 181 |         open(20,file=chemin // '/fmco2.in',
 182 |      &      status='unknown')
 183 |        do i=1,n 
 184 |           read (20,*) fm(2,i)
 185 |        enddo
 186 | c
 187 |        close(20)
 188 |         open(20,file=chemin // '/fmh2o.in',
 189 |      &      status='unknown')
 190 |        do i=1,n 
 191 |           read (20,*) fm(3,i)
 192 |           !print *, fm(3,i)
 193 |        enddo
 194 | c
 195 |        close(20)
 196 | C LECTURE DE LA temp
 197 |        open(20,file=chemin // '/temperat.in',
 198 |      &     status='unknown')
 199 |        do i=0,n+1 
 200 |           read (20,*) temp(i)
 201 |        enddo
 202 | 
 203 |        close(20)
 204 | c---------------------------------------------------------------------
 205 | c lecture nouvaeu profil qui un jour sera passer par egolfopoulos
 206 | C LECTURE DE LA DIFFERENCE dfv
 207 |        open(20,file='./fv.in',status='unknown')
 208 |        do i=1,n 
 209 |           read (20,*) fvnew(i)
 210 |        enddo
 211 | c
 212 |        close(20)
 213 | c les fractions molaires
 214 |         open(20,file='./fmco.in',status='unknown')
 215 |        do i=1,n 
 216 |           read (20,*) fmnew(1,i)
 217 |        enddo
 218 | c
 219 |        close(20)
 220 |         open(20,file='./fmco2.in',status='unknown')
 221 |        do i=1,n 
 222 |           read (20,*) fmnew(2,i)
 223 |        enddo
 224 | c
 225 |        close(20)
 226 |         open(20,file='./fmh2o.in',status='unknown')
 227 |        do i=1,n 
 228 |           read (20,*) fmnew(3,i)
 229 |           !print *, fmnew(3,i), (fmnew(3,i)-fm(3,i))
 230 |        enddo
 231 | c
 232 |        close(20)
 233 | C LECTURE DE LA temp
 234 |        open(20,file='./temperat.in',status='unknown')
 235 |        do i=0,n+1 
 236 |           read (20,*) tempnew(i)
 237 |        enddo
 238 | 
 239 |        close(20)
 240 | 
 241 |     
 242 | c......................................................................
 243 | c sortie binaire: ACCES DIRECT (plus universel)
 244 | c cas ou les sorties ascii ne sont pas bien mise en forme et ou il faut
 245 | c tout lire rapidement
 246 | c chaque ligne est un enregistrement qu'on peut lire d'un bloc
 247 | c enregistrement depend de la machine: sun double precision ici
 248 | c on peut lire les lignes dans le desordre
 249 |      
 250 | c numero ligne ou on enregistre moins un 
 251 | ccc      itmp5= 0
 252 | ccc      open(20,file='psi.oub',access='direct',recl=8 
 253 | ccc     &*(n+1+1))
 254 | ccc     write(20,*) 'Matrice des psi'
 255 | ccc      do in=0,n+1
 256 | ccc	      write(20,rec=in+1)  (psi(in,iin), iin=0,n+1)
 257 | ccc      enddo 
 258 | c derniere valeur de rec
 259 | ccc      itmp5=in+1
 260 | 
 261 | c     write(20,*)'Matrice des ecarttypes de psi')
 262 | ccc      do in=0+itmp5,n+1+itmp5
 263 | ccc	write(20,rec=in+1) (var_psi(in,iin), iin=0,n+1)
 264 | ccc      enddo
 265 | 
 266 | c
 267 | c gerer bloc acces direct connitre numero de ligne
 268 | c
 269 | ccc      close(20)
 270 | 
 271 | 
 272 | 
 273 | c ************************************************************************
 274 | c TRAITEMENT PAR LE DL
 275 | 
 276 | 
 277 | 
 278 |        do i=0,n+1 
 279 |           do j=0,n+1
 280 | 
 281 | c         print *,'Afficaghage',psi(i,i), dpsi6dfv(i,i,i), dfv(i)
 282 |              do m=1,n
 283 | c                supp(i,j)=supp(i,j)+dpsi6dfv(i,j,m)*(fvnew(m)- fv(m))
 284 |                 supp(i,j)=supp(i,j)+dpsi6dfv(i,j,m)*(fvnew(m)- fv(m))
 285 |      &                         +dpsi6dfmco(i,j,m)*(fmnew(1,m)-fm(1,m))
 286 |      &                         +dpsi6dfmco2(i,j,m)*(fmnew(2,m)-fm(2,m))
 287 |      &                         +dpsi6dfmh2o(i,j,m)*(fmnew(3,m)-fm(3,m))
 288 |      &                         +dpsi6dt(i,j,m)*(tempnew(m)-temp(m))
 289 |              enddo
 290 |              !if( i.eq.3) then
 291 |                 
 292 |              !print *, 'i, j, sup:  ', i, j, supp(i,j)
 293 |              !read *
 294 |              !endif
 295 |              psi(i,j)=psi(i,j)+supp(i,j)
 296 |              
 297 |           enddo
 298 | 
 299 | cc          print *, (fvnew(i)-fv(i))
 300 | cc          print *, (fmnew(3,i)-fm(3,i))
 301 | cc          print *, (fmnew(2,i)-fm(2,i))
 302 |           print *, (fmnew(1,i)-fm(1,i))
 303 | cc          print *, (tempnew(i)-temp(i))
 304 |       enddo
 305 | 
 306 | 
 307 | 
 308 | 
 309 |       call fich
 310 | 
 311 | 
 312 |       end
 313 | 
 314 | 


mosim.f could be called by:
mosim.f [archivage/code2000X_testCG] - 13
mosim.f [resultats/pt1_complet] - 13
mosim.f [src] - 13
mosimold.f [archivage/code2000X_testCG] - 1
mosimold.f [resultats/pt1_complet] - 1
mosimold.f [src] - 1
mtlm.f [archivage/code2000X_testCG] - 13