Ignore:
Timestamp:
Nov 29, 2013, 9:40:25 AM (11 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r1860:1909 into testing branch

Location:
LMDZ5/branches/testing
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf

    • Property copyright set to
      Name of program: LMDZ
      Creation date: 1984
      Version: LMDZ5
      License: CeCILL version 2
      Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
      See the license file in the root directory
  • LMDZ5/branches/testing/libf/phylmd

    • Property copyright set to
      Name of program: LMDZ
      Creation date: 1984
      Version: LMDZ5
      License: CeCILL version 2
      Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
      See the license file in the root directory
  • LMDZ5/branches/testing/libf/phylmd/calcul_STDlev.h

    • Property copyright set to
      Name of program: LMDZ
      Creation date: 1984
      Version: LMDZ5
      License: CeCILL version 2
      Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
      See the license file in the root directory
    r1707 r1910  
    1 c
    2 c $Header$
    3 c
    4 cIM on initialise les variables
    5 c
     1!
     2! $Header$
     3!
     4!IM on initialise les variables
     5!
    66        missing_val=nf90_fill_real
    7 c
    8 cIM freq_moyNMC = frequences auxquelles on moyenne les champs accumules
    9 cIM               sur les niveaux de pression standard du NMC
     7!
     8!IM freq_moyNMC = frequences auxquelles on moyenne les champs accumules
     9!IM               sur les niveaux de pression standard du NMC
    1010      DO n=1, nout
    1111       freq_moyNMC(n)=freq_outNMC(n)/freq_calNMC(n)
    1212      ENDDO
    13 c
     13!
    1414        CALL ini_undefSTD(itap,freq_outNMC)
    15 c
    16 cIM on interpole les champs sur les niveaux STD de pression
    17 cIM a chaque pas de temps de la physique
    18 c
    19 c-------------------------------------------------------c
    20 c positionnement de l'argument logique a .false.        c
    21 c pour ne pas recalculer deux fois la meme chose !      c
    22 c a cet effet un appel a plevel_new a ete deplace       c
    23 c a la fin de la serie d'appels                         c
    24 c la boucle 'DO k=1, nlevSTD' a ete internalisee        c
    25 c dans plevel_new, d'ou la creation de cette routine... c
    26 c-------------------------------------------------------c
    27 c
    28         CALL plevel_new(klon,klev,nlevSTD,.true.,pplay,rlevSTD,
    29      &              t_seri,tlevSTD)
    30         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    31      &             u_seri,ulevSTD)
    32         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    33      &             v_seri,vlevSTD)
    34 c
    35 
    36 c
    37         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    38      &             zphi/RG,philevSTD)
    39         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    40      &             qx(:,:,ivap),qlevSTD)
    41         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    42      &             zx_rh*100.,rhlevSTD)
    43 c
     15!
     16!IM on interpole les champs sur les niveaux STD de pression
     17!IM a chaque pas de temps de la physique
     18!
     19!-------------------------------------------------------c
     20! positionnement de l'argument logique a .false.        c
     21! pour ne pas recalculer deux fois la meme chose !      c
     22! a cet effet un appel a plevel_new a ete deplace       c
     23! a la fin de la serie d'appels                         c
     24! la boucle 'DO k=1, nlevSTD' a ete internalisee        c
     25! dans plevel_new, d'ou la creation de cette routine... c
     26!-------------------------------------------------------c
     27!
     28        CALL plevel_new(klon,klev,nlevSTD,.true.,pplay,rlevSTD, &
     29                    t_seri,tlevSTD)
     30        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     31                   u_seri,ulevSTD)
     32        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     33                   v_seri,vlevSTD)
     34!
     35
     36!
     37        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     38                   zphi/RG,philevSTD)
     39        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     40                   qx(:,:,ivap),qlevSTD)
     41        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     42                   zx_rh*100.,rhlevSTD)
     43!
    4444        DO l=1, klev
    4545         DO i=1, klon
     
    4747         ENDDO !i
    4848        ENDDO !l
    49         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    50      &             zx_tmp_fi3d,uvSTD)
    51 c
     49        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     50                   zx_tmp_fi3d,uvSTD)
     51!
    5252        DO l=1, klev
    5353         DO i=1, klon
     
    5555         ENDDO !i
    5656        ENDDO !l
    57         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    58      &             zx_tmp_fi3d,vqSTD)
    59 c
     57        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     58                   zx_tmp_fi3d,vqSTD)
     59!
    6060        DO l=1, klev
    6161         DO i=1, klon
     
    6363         ENDDO !i
    6464        ENDDO !l
    65         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    66      &             zx_tmp_fi3d,vTSTD)
    67 c
     65        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     66                   zx_tmp_fi3d,vTSTD)
     67!
    6868        DO l=1, klev
    6969         DO i=1, klon
     
    7171         ENDDO !i
    7272        ENDDO !l
    73         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    74      &             zx_tmp_fi3d,wqSTD)
    75 c
     73        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     74                   zx_tmp_fi3d,wqSTD)
     75!
    7676        DO l=1, klev
    7777         DO i=1, klon
     
    7979         ENDDO !i
    8080        ENDDO !l
    81         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    82      &             zx_tmp_fi3d,vphiSTD)
    83 c
     81        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     82                   zx_tmp_fi3d,vphiSTD)
     83!
    8484        DO l=1, klev
    8585         DO i=1, klon
     
    8787         ENDDO !i
    8888        ENDDO !l
    89         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    90      &             zx_tmp_fi3d,wTSTD)
    91 c
     89        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     90                   zx_tmp_fi3d,wTSTD)
     91!
    9292        DO l=1, klev
    9393         DO i=1, klon
     
    9595         ENDDO !i
    9696        ENDDO !l
    97         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    98      &             zx_tmp_fi3d,u2STD)
    99 c
     97        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     98                   zx_tmp_fi3d,u2STD)
     99!
    100100        DO l=1, klev
    101101         DO i=1, klon
     
    103103         ENDDO !i
    104104        ENDDO !l
    105         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    106      &             zx_tmp_fi3d,v2STD)
    107 c
     105        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     106                   zx_tmp_fi3d,v2STD)
     107!
    108108        DO l=1, klev
    109109         DO i=1, klon
     
    111111         ENDDO !i
    112112        ENDDO !l
    113         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    114      &             zx_tmp_fi3d,T2STD)
    115 
    116 c
     113        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     114                   zx_tmp_fi3d,T2STD)
     115
     116!
    117117      zx_tmp_fi3d(:,:)=wo(:,:,1) * dobson_u * 1e3 / zmasse / rmo3 * rmd
    118         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    119      &             zx_tmp_fi3d,O3STD)
    120 c
     118        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     119                   zx_tmp_fi3d,O3STD)
     120!
    121121      if (read_climoz == 2) THEN
    122122      zx_tmp_fi3d(:,:)=wo(:,:,2) * dobson_u * 1e3 / zmasse / rmo3 * rmd
    123         CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
    124      &             zx_tmp_fi3d,O3daySTD)
     123        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD, &
     124                   zx_tmp_fi3d,O3daySTD)
    125125      endif
    126 c
     126!
    127127        DO l=1, klev
    128128        DO i=1, klon
     
    130130        ENDDO !i
    131131        ENDDO !l
    132         CALL plevel_new(klon,klev,nlevSTD,.true.,zx_tmp_fi3d,rlevSTD,
    133      &             omega,wlevSTD)
    134 c
    135 cIM on somme les valeurs toutes les freq_calNMC secondes
    136 c
     132        CALL plevel_new(klon,klev,nlevSTD,.true.,zx_tmp_fi3d,rlevSTD, &
     133                   omega,wlevSTD)
     134!
     135!IM on somme les valeurs toutes les freq_calNMC secondes
     136!
    137137       CALL undefSTD(itap,freq_calNMC, read_climoz)
    138 c
    139 cIM on moyenne a la fin du mois ou du jour (toutes les freq_outNMC secondes)
    140 c
     138!
     139!IM on moyenne a la fin du mois ou du jour (toutes les freq_outNMC secondes)
     140!
    141141       CALL moy_undefSTD(itap,freq_outNMC,freq_moyNMC)
    142 c
    143        CALL plevel(klon,klev,.true.,pplay,50000.,
    144      &              zphi/RG,geo500)
    145 
    146 cIM on interpole a chaque pas de temps le SWup(clr) et SWdn(clr) a 200 hPa
    147 c
    148       CALL plevel(klon,klevp1,.true.,paprs,20000.,
    149      $     swdn0,SWdn200clr)
    150       CALL plevel(klon,klevp1,.false.,paprs,20000.,
    151      $     swdn,SWdn200)
    152       CALL plevel(klon,klevp1,.false.,paprs,20000.,
    153      $     swup0,SWup200clr)
    154       CALL plevel(klon,klevp1,.false.,paprs,20000.,
    155      $     swup,SWup200)
    156 c
    157       CALL plevel(klon,klevp1,.false.,paprs,20000.,
    158      $     lwdn0,LWdn200clr)
    159       CALL plevel(klon,klevp1,.false.,paprs,20000.,
    160      $     lwdn,LWdn200)
    161       CALL plevel(klon,klevp1,.false.,paprs,20000.,
    162      $     lwup0,LWup200clr)
    163       CALL plevel(klon,klevp1,.false.,paprs,20000.,
    164      $     lwup,LWup200)
    165 c
     142!
     143       CALL plevel(klon,klev,.true.,pplay,50000., &
     144                    zphi/RG,geo500)
     145
     146!IM on interpole a chaque pas de temps le SWup(clr) et SWdn(clr) a 200 hPa
     147!
     148      CALL plevel(klon,klevp1,.true.,paprs,20000., &
     149           swdn0,SWdn200clr)
     150      CALL plevel(klon,klevp1,.false.,paprs,20000., &
     151           swdn,SWdn200)
     152      CALL plevel(klon,klevp1,.false.,paprs,20000., &
     153           swup0,SWup200clr)
     154      CALL plevel(klon,klevp1,.false.,paprs,20000., &
     155           swup,SWup200)
     156!
     157      CALL plevel(klon,klevp1,.false.,paprs,20000., &
     158           lwdn0,LWdn200clr)
     159      CALL plevel(klon,klevp1,.false.,paprs,20000., &
     160           lwdn,LWdn200)
     161      CALL plevel(klon,klevp1,.false.,paprs,20000., &
     162           lwup0,LWup200clr)
     163      CALL plevel(klon,klevp1,.false.,paprs,20000., &
     164           lwup,LWup200)
     165!
    166166      twriteSTD(:,:,1)=tsumSTD(:,:,1)
    167167      qwriteSTD(:,:,1)=qsumSTD(:,:,1)
     
    195195      vwriteSTD(:,:,4)=vlevSTD(:,:)
    196196      wwriteSTD(:,:,4)=wlevSTD(:,:)
    197 c
    198 cIM initialisation 5eme fichier de sortie
     197!
     198!IM initialisation 5eme fichier de sortie
    199199      twriteSTD(:,:,5)=tlevSTD(:,:)
    200200      qwriteSTD(:,:,5)=qlevSTD(:,:)
     
    204204      vwriteSTD(:,:,5)=vlevSTD(:,:)
    205205      wwriteSTD(:,:,5)=wlevSTD(:,:)
    206 c
    207 cIM initialisation 6eme fichier de sortie
     206!
     207!IM initialisation 6eme fichier de sortie
    208208      twriteSTD(:,:,6)=tlevSTD(:,:)
    209209      qwriteSTD(:,:,6)=qlevSTD(:,:)
     
    213213      vwriteSTD(:,:,6)=vlevSTD(:,:)
    214214      wwriteSTD(:,:,6)=wlevSTD(:,:)
    215 cIM for NMC files
     215!IM for NMC files
    216216      DO n=1, nlevSTD3
    217217       DO k=1, nlevSTD
     
    227227       ENDDO
    228228      ENDDO
    229 c
     229!
    230230      DO n=1, nlevSTD8
    231231       DO k=1, nlevSTD
Note: See TracChangeset for help on using the changeset viewer.