Ignore:
Timestamp:
Aug 6, 2013, 3:33:18 PM (11 years ago)
Author:
lguez
Message:

Changed names of variables ema_work1 and ema_work2 to more meaningful
sig1 and w01. Same change in (re)startphy.nc. phyetat0 tries to find
old names ema_work1 and ema_work2 if new names sig1 and w01 are not
found, so the program can run with an old restartphy.nc. restartphy.nc
is modified compared to the previous SVN revision because of the change of
names but the data content is not modified (this can be checked with
max_diff_nc.sh -i).

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phyredem.F90

    r1826 r1827  
    1 !
    21! $Id$
    3 !
    4 c
    5       SUBROUTINE phyredem (fichnom)
    6 
    7       USE dimphy
    8       USE mod_grid_phy_lmdz
    9       USE mod_phys_lmdz_para
    10       USE fonte_neige_mod,  ONLY : fonte_neige_final
    11       USE pbl_surface_mod,  ONLY : pbl_surface_final
    12       USE phys_state_var_mod
    13       USE iostart
    14       USE traclmdz_mod, ONLY : traclmdz_to_restart
    15       USE infotrac
    16       USE control_mod
    17       USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, co2_send
    18       USE indice_sol_mod
    19 
    20       IMPLICIT none
    21 c======================================================================
    22 c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
    23 c Objet: Ecriture de l'etat de redemarrage pour la physique
    24 c======================================================================
    25 #include "netcdf.inc"
    26 #include "dimsoil.h"
    27 #include "clesphys.h"
    28 #include "temps.h"
    29 #include "thermcell.h"
    30 #include "compbl.h"
    31 c======================================================================
    32       CHARACTER*(*) fichnom
    33 
    34 c les variables globales ecrites dans le fichier restart
    35 
    36      
    37       REAL tsoil(klon,nsoilmx,nbsrf)
    38       REAL tslab(klon), seaice(klon)
    39       REAL qsurf(klon,nbsrf)
    40       REAL qsol(klon)
    41       REAL snow(klon,nbsrf)
    42       REAL evap(klon,nbsrf)
    43       real fder(klon)
    44       REAL frugs(klon,nbsrf)
    45       REAL agesno(klon,nbsrf)
    46       REAL run_off_lic_0(klon)
    47       REAL trs(klon,nbtr)
    48 c
    49       INTEGER nid, nvarid, idim1, idim2, idim3
    50       INTEGER ierr
    51       INTEGER length
    52       PARAMETER (length=100)
    53       REAL tab_cntrl(length)
    54 c
    55       INTEGER isoil, nsrf
    56       CHARACTER (len=7) :: str7
    57       CHARACTER (len=2) :: str2
    58       INTEGER           :: it, iiq
    59      
    60 c======================================================================
    61 c
    62 c Get variables which will be written to restart file from module
    63 c pbl_surface_mod
    64       CALL pbl_surface_final(qsol, fder, snow, qsurf,
    65      $     evap, frugs, agesno, tsoil)
    66 
    67 c Get a variable calculated in module fonte_neige_mod
    68       CALL fonte_neige_final(run_off_lic_0)
    69 
    70 c======================================================================
    71 
    72       CALL open_restartphy(fichnom)
    73      
    74       DO ierr = 1, length
    75          tab_cntrl(ierr) = 0.0
    76       ENDDO
    77       tab_cntrl(1) = dtime
    78       tab_cntrl(2) = radpas
    79 c co2_ppm : current value of atmospheric CO2
    80       tab_cntrl(3) = co2_ppm
    81       tab_cntrl(4) = solaire
    82       tab_cntrl(5) = iflag_con
    83       tab_cntrl(6) = nbapp_rad
    84 
    85       IF( cycle_diurne ) tab_cntrl( 7 ) = 1.
    86       IF(   soil_model ) tab_cntrl( 8 ) = 1.
    87       IF(     new_oliq ) tab_cntrl( 9 ) = 1.
    88       IF(     ok_orodr ) tab_cntrl(10 ) = 1.
    89       IF(     ok_orolf ) tab_cntrl(11 ) = 1.
    90 
    91       tab_cntrl(13) = day_end
    92       tab_cntrl(14) = annee_ref
    93       tab_cntrl(15) = itau_phy
    94 
    95 c co2_ppm0 : initial value of atmospheric CO2
    96       tab_cntrl(16) = co2_ppm0
    97 c
    98       CALL put_var("controle","Parametres de controle",tab_cntrl)
    99 c
    100 
    101       CALL put_field("longitude",
    102      .               "Longitudes de la grille physique",rlon)
    103      
    104       CALL put_field("latitude","Latitudes de la grille physique",rlat)
    105 
    106 c
    107 C PB ajout du masque terre/mer
    108 C
    109       CALL put_field("masque","masque terre mer",zmasq)
    110 
    111 c BP ajout des fraction de chaque sous-surface
    112 C
    113 C 1. fraction de terre
    114 C
    115       CALL put_field("FTER","fraction de continent",pctsrf(:,is_ter))
    116 C
    117 C 2. Fraction de glace de terre
    118 C
    119       CALL put_field("FLIC","fraction glace de terre",pctsrf(:,is_lic))
    120 C
    121 C 3. fraction ocean
    122 C
    123       CALL put_field("FOCE","fraction ocean",pctsrf(:,is_oce))
    124 C
    125 C 4. Fraction glace de mer
    126 C
    127       CALL put_field("FSIC","fraction glace mer",pctsrf(:,is_sic))
    128 C
    129 C
    130 c
    131       DO nsrf = 1, nbsrf
     2
     3SUBROUTINE phyredem (fichnom)
     4
     5  USE dimphy
     6  USE mod_grid_phy_lmdz
     7  USE mod_phys_lmdz_para
     8  USE fonte_neige_mod,  ONLY : fonte_neige_final
     9  USE pbl_surface_mod,  ONLY : pbl_surface_final
     10  USE phys_state_var_mod
     11  USE iostart
     12  USE traclmdz_mod, ONLY : traclmdz_to_restart
     13  USE infotrac
     14  USE control_mod
     15  USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, co2_send
     16  USE indice_sol_mod
     17
     18  IMPLICIT none
     19  !======================================================================
     20  ! Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
     21  ! Objet: Ecriture de l'etat de redemarrage pour la physique
     22  !======================================================================
     23  include "netcdf.inc"
     24  include "dimsoil.h"
     25  include "clesphys.h"
     26  include "temps.h"
     27  include "thermcell.h"
     28  include "compbl.h"
     29  !======================================================================
     30  CHARACTER*(*) fichnom
     31
     32  ! les variables globales ecrites dans le fichier restart
     33
     34  REAL tsoil(klon, nsoilmx, nbsrf)
     35  REAL tslab(klon), seaice(klon)
     36  REAL qsurf(klon, nbsrf)
     37  REAL qsol(klon)
     38  REAL snow(klon, nbsrf)
     39  REAL evap(klon, nbsrf)
     40  real fder(klon)
     41  REAL frugs(klon, nbsrf)
     42  REAL agesno(klon, nbsrf)
     43  REAL run_off_lic_0(klon)
     44  REAL trs(klon, nbtr)
     45
     46  INTEGER nid, nvarid, idim1, idim2, idim3
     47  INTEGER ierr
     48  INTEGER length
     49  PARAMETER (length=100)
     50  REAL tab_cntrl(length)
     51
     52  INTEGER isoil, nsrf
     53  CHARACTER (len=7) :: str7
     54  CHARACTER (len=2) :: str2
     55  INTEGER           :: it, iiq
     56
     57  !======================================================================
     58
     59  ! Get variables which will be written to restart file from module
     60  ! pbl_surface_mod
     61  CALL pbl_surface_final(qsol, fder, snow, qsurf,  &
     62       evap, frugs, agesno, tsoil)
     63
     64  ! Get a variable calculated in module fonte_neige_mod
     65  CALL fonte_neige_final(run_off_lic_0)
     66
     67  !======================================================================
     68
     69  CALL open_restartphy(fichnom)
     70
     71  DO ierr = 1, length
     72     tab_cntrl(ierr) = 0.0
     73  ENDDO
     74  tab_cntrl(1) = dtime
     75  tab_cntrl(2) = radpas
     76  ! co2_ppm : current value of atmospheric CO2
     77  tab_cntrl(3) = co2_ppm
     78  tab_cntrl(4) = solaire
     79  tab_cntrl(5) = iflag_con
     80  tab_cntrl(6) = nbapp_rad
     81
     82  IF( cycle_diurne ) tab_cntrl( 7 ) = 1.
     83  IF(   soil_model ) tab_cntrl( 8 ) = 1.
     84  IF(     new_oliq ) tab_cntrl( 9 ) = 1.
     85  IF(     ok_orodr ) tab_cntrl(10 ) = 1.
     86  IF(     ok_orolf ) tab_cntrl(11 ) = 1.
     87
     88  tab_cntrl(13) = day_end
     89  tab_cntrl(14) = annee_ref
     90  tab_cntrl(15) = itau_phy
     91
     92  ! co2_ppm0 : initial value of atmospheric CO2
     93  tab_cntrl(16) = co2_ppm0
     94
     95  CALL put_var("controle", "Parametres de controle", tab_cntrl)
     96
     97  CALL put_field("longitude", &
     98       "Longitudes de la grille physique", rlon)
     99
     100  CALL put_field("latitude", "Latitudes de la grille physique", rlat)
     101
     102  ! PB ajout du masque terre/mer
     103
     104  CALL put_field("masque", "masque terre mer", zmasq)
     105
     106  ! BP ajout des fraction de chaque sous-surface
     107
     108  ! 1. fraction de terre
     109
     110  CALL put_field("FTER", "fraction de continent", pctsrf(:, is_ter))
     111
     112  ! 2. Fraction de glace de terre
     113
     114  CALL put_field("FLIC", "fraction glace de terre", pctsrf(:, is_lic))
     115
     116  ! 3. fraction ocean
     117
     118  CALL put_field("FOCE", "fraction ocean", pctsrf(:, is_oce))
     119
     120  ! 4. Fraction glace de mer
     121
     122  CALL put_field("FSIC", "fraction glace mer", pctsrf(:, is_sic))
     123
     124  DO nsrf = 1, nbsrf
     125     IF (nsrf.LE.99) THEN
     126        WRITE(str2, '(i2.2)') nsrf
     127        CALL put_field("TS"//str2, "Temperature de surface No."//str2, &
     128             ftsol(:, nsrf))
     129     ELSE
     130        PRINT*, "Trop de sous-mailles"
     131        CALL abort
     132     ENDIF
     133  ENDDO
     134
     135  DO nsrf = 1, nbsrf
     136     DO isoil=1, nsoilmx
     137        IF (isoil.LE.99 .AND. nsrf.LE.99) THEN
     138           WRITE(str7, '(i2.2, "srf", i2.2)') isoil, nsrf
     139           CALL put_field("Tsoil"//str7, "Temperature du sol No."//str7, &
     140                tsoil(:, isoil, nsrf))
     141        ELSE
     142           PRINT*, "Trop de couches"
     143           CALL abort
     144        ENDIF
     145     ENDDO
     146  ENDDO
     147
     148  DO nsrf = 1, nbsrf
     149     IF (nsrf.LE.99) THEN
     150        WRITE(str2, '(i2.2)') nsrf
     151        CALL put_field("QS"//str2, "Humidite de surface No."//str2, &
     152             qsurf(:, nsrf))
     153     ELSE
     154        PRINT*, "Trop de sous-mailles"
     155        CALL abort
     156     ENDIF
     157  END DO
     158
     159  CALL put_field("QSOL", "Eau dans le sol (mm)", qsol)
     160
     161  DO nsrf = 1, nbsrf
     162     IF (nsrf.LE.99) THEN
     163        WRITE(str2, '(i2.2)') nsrf
     164        CALL put_field("ALBE"//str2, "albedo de surface No."//str2, &
     165             falb1(:, nsrf))
     166     ELSE
     167        PRINT*, "Trop de sous-mailles"
     168        CALL abort
     169     ENDIF
     170  ENDDO
     171
     172  DO nsrf = 1, nbsrf
     173     IF (nsrf.LE.99) THEN
     174        WRITE(str2, '(i2.2)') nsrf
     175        CALL put_field("ALBLW"//str2, "albedo LW de surface No."//str2, &
     176             falb2(:, nsrf))
     177     ELSE
     178        PRINT*, "Trop de sous-mailles"
     179        CALL abort
     180     ENDIF
     181  ENDDO
     182
     183  DO nsrf = 1, nbsrf
     184     IF (nsrf.LE.99) THEN
     185        WRITE(str2, '(i2.2)') nsrf
     186        CALL put_field("EVAP"//str2, "Evaporation de surface No."//str2 &
     187             , evap(:, nsrf))
     188     ELSE
     189        PRINT*, "Trop de sous-mailles"
     190        CALL abort
     191     ENDIF
     192  ENDDO
     193
     194  DO nsrf = 1, nbsrf
     195     IF (nsrf.LE.99) THEN
     196        WRITE(str2, '(i2.2)') nsrf
     197        CALL put_field("SNOW"//str2, "Neige de surface No."//str2, &
     198             snow(:, nsrf))
     199     ELSE
     200        PRINT*, "Trop de sous-mailles"
     201        CALL abort
     202     ENDIF
     203  ENDDO
     204
     205  CALL put_field("RADS", "Rayonnement net a la surface", radsol)
     206
     207  CALL put_field("solsw", "Rayonnement solaire a la surface", solsw)
     208
     209  CALL put_field("sollw", "Rayonnement IF a la surface", sollw)
     210
     211  CALL put_field("fder", "Derive de flux", fder)
     212
     213  CALL put_field("rain_f", "precipitation liquide", rain_fall)
     214
     215  CALL put_field("snow_f", "precipitation solide", snow_fall)
     216
     217  DO nsrf = 1, nbsrf
     218     IF (nsrf.LE.99) THEN
     219        WRITE(str2, '(i2.2)') nsrf
     220        CALL put_field("RUG"//str2, "rugosite de surface No."//str2, &
     221             frugs(:, nsrf))
     222     ELSE
     223        PRINT*, "Trop de sous-mailles"
     224        CALL abort
     225     ENDIF
     226  ENDDO
     227
     228  DO nsrf = 1, nbsrf
     229     IF (nsrf.LE.99) THEN
     230        WRITE(str2, '(i2.2)') nsrf
     231        CALL put_field("AGESNO"//str2, &
     232             "Age de la neige surface No."//str2, &
     233             agesno(:, nsrf))
     234     ELSE
     235        PRINT*, "Trop de sous-mailles"
     236        CALL abort
     237     ENDIF
     238  ENDDO
     239
     240  CALL put_field("ZMEA", "ZMEA", zmea)
     241
     242  CALL put_field("ZSTD", "ZSTD", zstd)
     243
     244  CALL put_field("ZSIG", "ZSIG", zsig)
     245
     246  CALL put_field("ZGAM", "ZGAM", zgam)
     247
     248  CALL put_field("ZTHE", "ZTHE", zthe)
     249
     250  CALL put_field("ZPIC", "ZPIC", zpic)
     251
     252  CALL put_field("ZVAL", "ZVAL", zval)
     253
     254  CALL put_field("RUGSREL", "RUGSREL", rugoro)
     255
     256  CALL put_field("TANCIEN", "TANCIEN", t_ancien)
     257
     258  CALL put_field("QANCIEN", "QANCIEN", q_ancien)
     259
     260  CALL put_field("UANCIEN", "", u_ancien)
     261
     262  CALL put_field("VANCIEN", "", v_ancien)
     263
     264  CALL put_field("RUGMER", "Longueur de rugosite sur mer", &
     265       frugs(:, is_oce))
     266
     267  CALL put_field("CLWCON", "Eau liquide convective", clwcon)
     268
     269  CALL put_field("RNEBCON", "Nebulosite convective", rnebcon)
     270
     271  CALL put_field("RATQS", "Ratqs", ratqs)
     272
     273  ! run_off_lic_0
     274
     275  CALL put_field("RUNOFFLIC0", "Runofflic0", run_off_lic_0)
     276
     277  ! DEB TKE PBL !
     278
     279  IF (iflag_pbl>1) then
     280     DO nsrf = 1, nbsrf
    132281        IF (nsrf.LE.99) THEN
    133           WRITE(str2,'(i2.2)') nsrf
    134           CALL put_field("TS"//str2,"Temperature de surface No."//str2,
    135      .                    ftsol(:,nsrf))
     282           WRITE(str2, '(i2.2)') nsrf
     283           CALL put_field("TKE"//str2, "Energ. Cineti. Turb."//str2, &
     284                pbl_tke(:, 1:klev+1, nsrf))
    136285        ELSE
    137           PRINT*, "Trop de sous-mailles"
    138           CALL abort
     286           PRINT*, "Trop de sous-mailles"
     287           CALL abort
    139288        ENDIF
    140       ENDDO
    141 c
    142       DO nsrf = 1, nbsrf
    143         DO isoil=1, nsoilmx
    144           IF (isoil.LE.99 .AND. nsrf.LE.99) THEN
    145             WRITE(str7,'(i2.2,"srf",i2.2)') isoil,nsrf
    146             CALL put_field("Tsoil"//str7,"Temperature du sol No."//str7,
    147      .                     tsoil(:,isoil,nsrf))
    148           ELSE
    149             PRINT*, "Trop de couches"
    150             CALL abort
    151           ENDIF
    152         ENDDO
    153       ENDDO
    154 c
    155       DO nsrf = 1, nbsrf
    156         IF (nsrf.LE.99) THEN
    157           WRITE(str2,'(i2.2)') nsrf
    158           CALL put_field("QS"//str2,"Humidite de surface No."//str2,
    159      .                   qsurf(:,nsrf))
    160         ELSE
    161           PRINT*, "Trop de sous-mailles"
    162           CALL abort
    163         ENDIF
    164       END DO
    165 C
    166       CALL put_field("QSOL","Eau dans le sol (mm)",qsol)
    167 c
    168       DO nsrf = 1, nbsrf
    169         IF (nsrf.LE.99) THEN
    170           WRITE(str2,'(i2.2)') nsrf
    171           CALL put_field("ALBE"//str2,"albedo de surface No."//str2,
    172      .                   falb1(:,nsrf))
    173         ELSE
    174           PRINT*, "Trop de sous-mailles"
    175           CALL abort
    176         ENDIF
    177       ENDDO
    178 
    179       DO nsrf = 1, nbsrf
    180         IF (nsrf.LE.99) THEN
    181           WRITE(str2,'(i2.2)') nsrf
    182           CALL put_field("ALBLW"//str2,"albedo LW de surface No."//str2,
    183      .                   falb2(:,nsrf))
    184         ELSE
    185           PRINT*, "Trop de sous-mailles"
    186           CALL abort
    187         ENDIF
    188       ENDDO
    189 c
    190 c
    191       DO nsrf = 1, nbsrf
    192         IF (nsrf.LE.99) THEN
    193           WRITE(str2,'(i2.2)') nsrf
    194           CALL put_field("EVAP"//str2,"Evaporation de surface No."//str2
    195      .                   ,evap(:,nsrf))
    196         ELSE
    197           PRINT*, "Trop de sous-mailles"
    198           CALL abort
    199         ENDIF
    200       ENDDO
    201 
    202 c
    203       DO nsrf = 1, nbsrf
    204         IF (nsrf.LE.99) THEN
    205           WRITE(str2,'(i2.2)') nsrf
    206           CALL put_field("SNOW"//str2,"Neige de surface No."//str2,
    207      .                   snow(:,nsrf))
    208         ELSE
    209           PRINT*, "Trop de sous-mailles"
    210           CALL abort
    211         ENDIF
    212       ENDDO
    213 
    214 c
    215       CALL put_field("RADS","Rayonnement net a la surface",radsol)
    216 c
    217       CALL put_field("solsw","Rayonnement solaire a la surface",solsw)
    218 c
    219       CALL put_field("sollw","Rayonnement IF a la surface",sollw)
    220 c
    221       CALL put_field("fder","Derive de flux",fder)
    222 c
    223       CALL put_field("rain_f","precipitation liquide",rain_fall)
    224 c
    225       CALL put_field("snow_f", "precipitation solide",snow_fall)
    226 c
    227       DO nsrf = 1, nbsrf
    228         IF (nsrf.LE.99) THEN
    229         WRITE(str2,'(i2.2)') nsrf
    230           CALL put_field("RUG"//str2,"rugosite de surface No."//str2,
    231      .         frugs(:,nsrf))
    232         ELSE
    233           PRINT*, "Trop de sous-mailles"
    234           CALL abort
    235         ENDIF
    236       ENDDO
    237 c
    238       DO nsrf = 1, nbsrf
    239         IF (nsrf.LE.99) THEN
    240             WRITE(str2,'(i2.2)') nsrf
    241             CALL put_field("AGESNO"//str2,
    242      .                     "Age de la neige surface No."//str2,
    243      .                     agesno(:,nsrf))
    244         ELSE
    245             PRINT*, "Trop de sous-mailles"
    246             CALL abort
    247         ENDIF
    248       ENDDO
    249 c
    250       CALL put_field("ZMEA","ZMEA",zmea)
    251 c
    252       CALL put_field("ZSTD","ZSTD",zstd)
    253      
    254       CALL put_field("ZSIG","ZSIG",zsig)
    255      
    256       CALL put_field("ZGAM","ZGAM",zgam)
    257      
    258       CALL put_field("ZTHE","ZTHE",zthe)
    259      
    260       CALL put_field("ZPIC","ZPIC",zpic)
    261      
    262       CALL put_field("ZVAL","ZVAL",zval)
    263      
    264       CALL put_field("RUGSREL","RUGSREL",rugoro)
    265      
    266       CALL put_field("TANCIEN","TANCIEN",t_ancien)
    267      
    268       CALL put_field("QANCIEN","QANCIEN",q_ancien)
    269 
    270       CALL put_field("UANCIEN","",u_ancien)
    271 
    272       CALL put_field("VANCIEN","",v_ancien)
    273 
    274       CALL put_field("RUGMER","Longueur de rugosite sur mer",
    275      .               frugs(:,is_oce))
    276      
    277       CALL put_field("CLWCON","Eau liquide convective",clwcon)
    278      
    279       CALL put_field("RNEBCON","Nebulosite convective",rnebcon)
    280      
    281       CALL put_field("RATQS", "Ratqs",ratqs)
    282 c
    283 c run_off_lic_0
    284 c
    285       CALL put_field("RUNOFFLIC0","Runofflic0",run_off_lic_0)
    286 c
    287 c
    288 !!!!!!!!!!!!!!!!!!!! DEB TKE PBL !!!!!!!!!!!!!!!!!!!!!!!!!
    289 c
    290       IF (iflag_pbl>1) then
    291         DO nsrf = 1, nbsrf
    292           IF (nsrf.LE.99) THEN
    293             WRITE(str2,'(i2.2)') nsrf
    294             CALL put_field("TKE"//str2,"Energ. Cineti. Turb."//str2,
    295      .                     pbl_tke(:,1:klev+1,nsrf))
    296           ELSE
    297             PRINT*, "Trop de sous-mailles"
    298             CALL abort
    299           ENDIF
    300         ENDDO
    301       ENDIF
    302 
    303 !!!!!!!!!!!!!!!!!!!! FIN TKE PBL !!!!!!!!!!!!!!!!!!!!!!!!!
    304 cIM ajout zmax0, f0, ema_work1, ema_work2
    305 cIM wake_deltat, wake_deltaq, wake_s, wake_cstar, wake_pe, wake_fip
    306      
    307       CALL put_field("ZMAX0","ZMAX0",zmax0)
    308      
    309       CALL put_field("F0","F0",f0)
    310      
    311       CALL put_field("EMA_WORK1","EMA_WORK1",ema_work1)
    312      
    313       CALL put_field("EMA_WORK2","EMA_WORK2",ema_work2)
    314      
    315 c wake_deltat
    316       CALL put_field("WAKE_DELTAT","WAKE_DELTAT",wake_deltat)
    317 
    318       CALL put_field("WAKE_DELTAQ","WAKE_DELTAQ",wake_deltaq)
    319      
    320       CALL put_field("WAKE_S","WAKE_S",wake_s)
    321      
    322       CALL put_field("WAKE_CSTAR","WAKE_CSTAR",wake_cstar)
    323      
    324       CALL put_field("WAKE_PE","WAKE_PE",wake_pe)
    325 
    326       CALL put_field("WAKE_FIP","WAKE_FIP",wake_fip)
    327 
    328 c thermiques
    329 
    330       CALL put_field("FM_THERM","FM_THERM",fm_therm)
    331 
    332       CALL put_field("ENTR_THERM","ENTR_THERM",entr_therm)
    333 
    334       CALL put_field("DETR_THERM","DETR_THERM",detr_therm)
    335 
    336 ! trs from traclmdz_mod
    337       IF (type_trac == 'lmdz') THEN
    338          CALL traclmdz_to_restart(trs)
    339          DO it=1,nbtr
    340             iiq=niadv(it+2)
    341             CALL put_field("trs_"//tname(iiq),"",trs(:,it))
    342          END DO
    343          IF (carbon_cycle_cpl) THEN
    344             IF (.NOT. ALLOCATED(co2_send)) THEN
    345                ! This is the case of create_etat0_limit, ce0l
    346                ALLOCATE(co2_send(klon))
    347                co2_send(:) = co2_ppm0
    348             END IF
    349             CALL put_field("co2_send","co2_ppm for coupling",co2_send)
    350          END IF
    351       END IF
    352 
    353       CALL close_restartphy
    354 !$OMP BARRIER
    355       RETURN
    356       END
     289     ENDDO
     290  ENDIF
     291
     292  ! FIN TKE PBL !
     293  !IM ajout zmax0, f0, sig1, w01
     294  !IM wake_deltat, wake_deltaq, wake_s, wake_cstar, wake_pe, wake_fip
     295
     296  CALL put_field("ZMAX0", "ZMAX0", zmax0)
     297
     298  CALL put_field("F0", "F0", f0)
     299
     300  CALL put_field("sig1", "sig1 Emanuel", sig1)
     301
     302  CALL put_field("w01", "w01 Emanuel", w01)
     303
     304  ! wake_deltat
     305  CALL put_field("WAKE_DELTAT", "WAKE_DELTAT", wake_deltat)
     306
     307  CALL put_field("WAKE_DELTAQ", "WAKE_DELTAQ", wake_deltaq)
     308
     309  CALL put_field("WAKE_S", "WAKE_S", wake_s)
     310
     311  CALL put_field("WAKE_CSTAR", "WAKE_CSTAR", wake_cstar)
     312
     313  CALL put_field("WAKE_PE", "WAKE_PE", wake_pe)
     314
     315  CALL put_field("WAKE_FIP", "WAKE_FIP", wake_fip)
     316
     317  ! thermiques
     318
     319  CALL put_field("FM_THERM", "FM_THERM", fm_therm)
     320
     321  CALL put_field("ENTR_THERM", "ENTR_THERM", entr_therm)
     322
     323  CALL put_field("DETR_THERM", "DETR_THERM", detr_therm)
     324
     325  ! trs from traclmdz_mod
     326  IF (type_trac == 'lmdz') THEN
     327     CALL traclmdz_to_restart(trs)
     328     DO it=1, nbtr
     329        iiq=niadv(it+2)
     330        CALL put_field("trs_"//tname(iiq), "", trs(:, it))
     331     END DO
     332     IF (carbon_cycle_cpl) THEN
     333        IF (.NOT. ALLOCATED(co2_send)) THEN
     334           ! This is the case of create_etat0_limit, ce0l
     335           ALLOCATE(co2_send(klon))
     336           co2_send(:) = co2_ppm0
     337        END IF
     338        CALL put_field("co2_send", "co2_ppm for coupling", co2_send)
     339     END IF
     340  END IF
     341
     342  CALL close_restartphy
     343  !$OMP BARRIER
     344
     345END SUBROUTINE phyredem
Note: See TracChangeset for help on using the changeset viewer.