Ignore:
Timestamp:
Jun 24, 2009, 11:56:13 AM (15 years ago)
Author:
jghattas
Message:

Reecriture de phytrac et les routines concernes (Anthony Jamelot)

  • les suffix change de F -> F90 (nflxtr.F90,cltracrn.F90,initrrnpb.F90,cvltr.F90,minmaxqfi.F90,cltrac.F90,phytrac.F90)

Traitement d'un nouveau traceur berelium (optionel, toujours pour des
tests)(Anthony Jamelot)

  • radiornpb.F change du nom pour radio_decay.F90 car il traite maintenant tout les traceurs radioactives
  • ajoute init_be.F90

Nouveau interface dans phytrac pour serparer les calculs et appels
specifique a INCA avec les traitements des traceurs specifiques au LMDZ
(JG)

  • ajoute tracinca_mod.F90 pour les appeles a INCA
  • ajoute traclmdz_mod.F90 pour les calculs des traceurs specifiques a LMDZ
  • enleve fichier restartrac et ajoute la variable trs dans restartphy.nc

La convergence numerique a etait rompue uniquement pour les traceurs
LMDZ RN et PB.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/initrrnpb.F90

    r1188 r1191  
    11!
    2 ! $Header$
     2! $Id $
    33!
    4       SUBROUTINE  initrrnpb(ftsol,pctsrf,masktr,fshtr,hsoltr,tautr
    5      .                   ,vdeptr,scavtr)
    6       USE dimphy
    7       USE infotrac, ONLY : nbtr
    8       IMPLICIT none
    9 c======================================================================
    10 c Auteur(s): AA + CG (LGGE/CNRS) Date 24-06-94
    11 c Objet: initialisation des constantes des traceurs
    12 CAA Revison pour le controle avec la temperature du sol
    13 cAA
    14 CAA   it = 1 radon ss controle de ts
    15 cAA   it = 2 plomb ss controle de ts 
    16 c======================================================================
    17 c Arguments:
    18 c nbtr------input-I- nombre de vrais traceurs (sans l'eau)
    19 c ftsol-------input-R- Temperature du sol (Kelvin)
    20 c pctsrf-----input-R-  Nature de sol (pourcentage de sol)
    21 c masktr---output-R- Masque reservoir de sol traceur (1 = reservoir)
    22 c fshtr----output-R- Flux surfacique de production dans le sol
    23 c hsoltr---output-R- Epaisseur du reservoir de sol
    24 c tautr----output-R- Constante de decroissance du traceur
    25 c vdeptr---output-R- Vitesse de depot sec dans la couche Brownienne
    26 c scavtr---output-R- Coefficient de lessivage
    27 c======================================================================
    28 cym#include "dimensions.h"
    29 cym#include "dimphy.h"
    30 #include "indicesol.h"
    31 c======================================================================
    32 C
    33       INTEGER i, it
    34       REAL pctsrf(klon,nbsrf) !Pourcentage de sol (f(nature du sol))
    35       REAL ftsol(klon,nbsrf)  ! Temperature du sol pour le controle Rn
    36 c                             ! le cas echeant
    37       REAL masktr(klon,nbtr)  ! Masque de l'echange avec la surface
    38 c                                 (possible => 1 )
    39       REAL fshtr(klon,nbtr)  ! Flux surfacique dans le reservoir de sol
    40       REAL hsoltr(nbtr)      ! Epaisseur equivalente du reservoir de sol
    41       REAL tautr(nbtr)       ! Constante de decroissance radioactive
    42       REAL vdeptr(nbtr)      ! Vitesse de depot sec dans la couche Brownienne
    43       REAL scavtr(nbtr)      ! Coefficient de lessivage
    44       REAL s
    45 C
    46       WRITE(*,'(''PASSAGE initrrnpb ...'',$)')
    47       print*,'nbtr= ',nbtr
    48       print*,'nbsrf= ',nbsrf
    49       print*,'klon= ',klon
    50 C
    51 C Puis les initialisation specifiques a chaque traceur (pour le moment, Rn222)
    52 C
    53 C
    54 C Radon it = 1
    55 c
    56       IF ( nbtr .LE. 0 ) STOP 'initrrnpb pas glop pas glop'
    57       it = 1
    58       s = 1.E4  !  Source: atome par m2
    59       hsoltr(it) = 0.1      ! Hauteur equivalente du reservoir :
    60 c                              1 m * porosite 0.1
    61       tautr(it) = 4.765E5  ! Decroissance du radon, secondes
    62 cAA
    63 c      tautr(it) = 4.765E55  ! Decroissance du radon,infinie
    64 cAA
    65       vdeptr(it) = 0. ! Pas de depot sec pour le radon
    66       scavtr(it) = 0. ! Pas de lessivage pour le radon
     4SUBROUTINE  initrrnpb(ftsol,pctsrf,masktr,fshtr,hsoltr,tautr,vdeptr,scavtr)
     5  USE dimphy
     6  USE infotrac, ONLY : nbtr
     7  IMPLICIT NONE
     8!======================================================================
     9! Auteur(s): AA + CG (LGGE/CNRS) Date 24-06-94
     10! Objet: initialisation des constantes des traceurs
     11!AA Revison pour le controle avec la temperature du sol
     12!AA
     13!AA   it = 1 radon ss controle de ts
     14!AA   it = 2 plomb ss controle de ts 
     15!======================================================================
     16! Arguments:
     17! nbtr.............. nombre de vrais traceurs (sans l'eau)
     18! ftsol....input-R-  Temperature du sol (Kelvin)
     19! pctsrf...input-R-  Nature de sol (pourcentage de sol)
     20! masktr...output-R- Masque reservoir de sol traceur (1 = reservoir)
     21! fshtr....output-R- Flux surfacique de production dans le reservoir de sol
     22! hsoltr...output-R- Epaisseur equivalente du reservoir de sol
     23! tautr....output-R- Constante de decroissance radioactive du traceur
     24! vdeptr...output-R- Vitesse de depot sec dans la couche Brownienne
     25! scavtr...output-R- Coefficient de lessivage
     26!======================================================================
     27  INCLUDE "indicesol.h"
     28!======================================================================
    6729
    68       print*, '-------------- SOURCE DU RADON ------------------------ '
    69       print*,'it = ',it
    70       print*,'Source : ', s
    71       print*,'Hauteur equivalente du reservoir de sol: ',hsoltr(it)
    72       print*,'Decroissance (s): ', tautr(it)
    73       print*,'Vitesse de depot sec: ',vdeptr(it)
    74       print*,'Facteur de lessivage: ',scavtr(it)
     30  REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf
     31  REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: ftsol
     32  REAL,DIMENSION(klon,nbtr),INTENT(OUT) :: masktr
     33  REAL,DIMENSION(klon,nbtr),INTENT(OUT) :: fshtr
     34  REAL,DIMENSION(nbtr),INTENT(OUT)      :: hsoltr
     35  REAL,DIMENSION(nbtr),INTENT(OUT)      :: tautr
     36  REAL,DIMENSION(nbtr),INTENT(OUT)      :: vdeptr
     37  REAL,DIMENSION(nbtr),INTENT(OUT)      :: scavtr
     38  INTEGER                               :: i, it
     39  REAL                                  :: s
    7540
    76       DO i = 1,klon
    77         masktr(i,it) = 0.
    78         IF ( NINT(pctsrf(i,1)) .EQ. 1 ) masktr(i,it) = 1.
    79         fshtr(i,it) = s * masktr(i,it)
     41  WRITE(*,*)'PASSAGE initrrnpb ...'
     42!
     43! Radon it = 1
     44!----------------
     45  IF ( nbtr .LE. 0 ) STOP '**PHYTRAC:initrrnpb:** nbtr < 0; verifier RN dans traceur.def'
     46  it = 1
     47  s = 1.E4             ! Source: atome par m2
     48  hsoltr(it) = 0.1     ! Hauteur equivalente du reservoir :
     49                       ! 1 m * porosite 0.1
     50  tautr(it) = 4.765E5  ! Decroissance du radon, secondes
     51  vdeptr(it) = 0.      ! Pas de depot sec pour le radon
     52  scavtr(it) = 0.      ! Pas de lessivage pour le radon
     53 
     54  WRITE(*,*)'-------------- SOURCE DU RADON ------------------------ '
     55  WRITE(*,*)'it = ',it
     56  WRITE(*,*)'Source : ', s
     57  WRITE(*,*)'Hauteur equivalente du reservoir de sol: ',hsoltr(it)
     58  WRITE(*,*)'Decroissance (s): ', tautr(it)
     59  WRITE(*,*)'Vitesse de depot sec: ',vdeptr(it)
     60  WRITE(*,*)'Facteur de lessivage: ',scavtr(it)
    8061
    81 cAA
    82 cAA quelques tests
    83 cAA POur l'instant le pctsrf(i,3) = 1.0
    84 cAA lorsqu'il ya de la terre mias ne prend aucune autre valeur
    85 cAA il n'est donc pas necessaire de multiplier fshtr par pctsrf
    86 cAA
    87 c       print*, '------------------------------------------ '
    88 c        print*, 'masktr(',i,it,')= ',masktr(i,it)
    89 c        print*, 'fshtr(',i,it,')= ',fshtr(i,it)
    90 c        print*, 'pctsrf(',i,',1)= ',pctsrf(i,1)
    91 c        print*, 'pctsrf(',i,',2)= ',pctsrf(i,2)
    92 c        print*, 'pctsrf(',i,',3)= ',pctsrf(i,3)
    93 c        print*, 'pctsrf(',i,',4)= ',pctsrf(i,4)
    94 c        print*, 's = ',s
    95 c        print*, '------------------------------------------ '
     62  DO i = 1,klon
     63     masktr(i,it) = 0.
     64     IF ( NINT(pctsrf(i,1)) .EQ. 1 ) masktr(i,it) = 1.
     65     fshtr(i,it) = s * masktr(i,it)
     66  END DO
     67!
     68! 210Pb it = 2
     69!----------------
     70  IF ( nbtr .LE. 1 ) STOP '**PHYTRAC**:initrrnpb:** nbtr <= 1; verifier PB dans traceur.def'
     71  it = 2
     72  s = 0.                ! Pas de source
     73  hsoltr(it) = 10.      ! Hauteur equivalente du reservoir
     74                        ! a partir duquel le depot Brownien a lieu
     75  tautr(it) = 1.028E9   ! Decroissance du Pb210, secondes
     76  vdeptr(it) = 1.E-3    ! 1 mm/s pour le 210Pb
     77  scavtr(it) =  .5      ! Lessivage du Pb210
     78  DO i = 1,klon
     79     masktr(i,it) = 1.  ! Le depot sec peut avoir lieu partout
     80     fshtr(i,it) = s * masktr(i,it)
     81  END DO
     82  WRITE(*,*)'-------------- SOURCE DU PLOMB ------------------------ '
     83  WRITE(*,*)'it = ',it
     84  WRITE(*,*)'Source : ', s
     85  WRITE(*,*)'Hauteur equivalente du reservoir : ',hsoltr(it)
     86  WRITE(*,*)'Decroissance (s): ', tautr(it)
     87  WRITE(*,*)'Vitesse de depot sec: ',vdeptr(it)
     88  WRITE(*,*)'Facteur de lessivage: ',scavtr(it)
    9689
    97       END DO
    98 C
    99 C 210Pb it = 2
    100 C
    101       IF ( nbtr .LE. 1 ) STOP 'initrrnpb pas glop pas glop'
    102       it = 2
    103       s = 0. !  Pas de source !!!
    104       hsoltr(it) = 10.     ! Hauteur equivalente du reservoir
    105 c                              a partir duquel le
    106 c                              depot Brownien a lieu
    107       tautr(it) = 1.028E9 ! Decroissance du Pb210, secondes
    108       vdeptr(it) = 1.E-3 ! 1 mm/s pour le 210Pb
    109       scavtr(it) =  .5   ! Lessivage du Pb210
    110       DO i = 1,klon
    111         masktr(i,it) = 1. ! Le depot sec peut avoir lieu partout
    112         fshtr(i,it) = s * masktr(i,it)
    113       END DO
    114       print*, '-------------- SOURCE DU PLOMB ------------------------ '
    115       print*,'it = ',it
    116       print*,'Source : ', s
    117       print*,'Hauteur equivalente du reservoir : ',hsoltr(it)
    118       print*,'Decroissance (s): ', tautr(it)
    119       print*,'Vitesse de depot sec: ',vdeptr(it)
    120       print*,'Facteur de lessivage: ',scavtr(it)
    121 c
    122       WRITE(*,*) 'initialisation rnpb ok'
    123 c
    124       RETURN
    125       END
     90  WRITE(*,*) 'Initialisation RN et PB ok'
     91
     92END SUBROUTINE initrrnpb
Note: See TracChangeset for help on using the changeset viewer.