Ignore:
Timestamp:
Apr 9, 2009, 12:11:35 PM (15 years ago)
Author:
Laurent Fairhead
Message:

Réintegration dans le tronc des modifications issues de la branche LMDZ-dev
comprises entre la révision 1074 et 1145
Validation: une simulation de 1 jour en séquentiel sur PC donne les mêmes
résultats entre la trunk et la dev
LF

Location:
LMDZ4/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk

  • LMDZ4/trunk/libf/phylmd/phys_output_write.h

    r1100 r1146  
    88
    99!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    10        IF (flag_phis(iff)<=lev_files(iff)) THEN
     10       IF (o_phis%flag(iff)<=lev_files(iff)) THEN
    1111         CALL histwrite_phy(nid_files(iff),
    12      $                      "phis",itau_w,pphis)
    13        ENDIF
    14 
    15        IF (flag_aire(iff)<=lev_files(iff)) THEN
    16        CALL histwrite_phy(nid_files(iff),"aire",itau_w,airephy)
    17        ENDIF
    18 
    19        IF (flag_pourc_sol(iff)<=lev_files(iff)) THEN
    20       zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100.
    21       CALL histwrite_phy(nid_files(iff),
    22      $                   "pourc_"//clnsurf(is_ter),itau_w,
    23      $                   zx_tmp_fi2d)
    24        ENDIF
    25 
    26        IF (flag_fract_sol(iff)<=lev_files(iff)) THEN
    27       zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)
    28       CALL histwrite_phy(nid_files(iff),
    29      $               "fract_"//clnsurf(is_ter),itau_w,
    30      $               zx_tmp_fi2d)
    31        ENDIF
    32 
    33        IF (flag_contfracATM(iff)<=lev_files(iff)) THEN
     12     $                      o_phis%name,itau_w,pphis)
     13       ENDIF
     14
     15       IF (o_aire%flag(iff)<=lev_files(iff)) THEN
     16       CALL histwrite_phy(nid_files(iff),o_aire%name,itau_w,airephy)
     17       ENDIF
     18
     19       IF (o_contfracATM%flag(iff)<=lev_files(iff)) THEN
    3420      DO i=1, klon
    3521       zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
    3622      ENDDO
    3723      CALL histwrite_phy(nid_files(iff),
    38      $                   "contfracATM",itau_w,zx_tmp_fi2d)
    39        ENDIF
    40 
    41        IF (flag_contfracOR(iff)<=lev_files(iff)) THEN
    42       CALL histwrite_phy(nid_files(iff),"contfracOR",itau_w,
     24     $             o_contfracATM%name,itau_w,zx_tmp_fi2d)
     25       ENDIF
     26
     27       IF (o_contfracOR%flag(iff)<=lev_files(iff)) THEN
     28      CALL histwrite_phy(nid_files(iff),o_contfracOR%name,itau_w,
    4329     $                   pctsrf(:,is_ter))
    4430       ENDIF
    4531
    46        IF (flag_aireTER(iff)<=lev_files(iff)) THEN
    47       CALL histwrite_phy(nid_files(iff),
    48      $                  "aireTER",itau_w,paire_ter)
     32       IF (o_aireTER%flag(iff)<=lev_files(iff)) THEN
     33      CALL histwrite_phy(nid_files(iff),
     34     $                  o_aireTER%name,itau_w,paire_ter)
    4935       ENDIF
    5036
    5137!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    5238
    53        IF (flag_flat(iff)<=lev_files(iff)) THEN
    54       CALL histwrite_phy(nid_files(iff),"flat",itau_w,zxfluxlat)
    55        ENDIF
    56 
    57        IF (flag_slp(iff)<=lev_files(iff)) THEN
    58       CALL histwrite_phy(nid_files(iff),"slp",itau_w,slp)
    59        ENDIF
    60 
    61        IF (flag_tsol(iff)<=lev_files(iff)) THEN
    62       CALL histwrite_phy(nid_files(iff),"tsol",itau_w,zxtsol)
    63        ENDIF
    64 
    65        IF (flag_t2m(iff)<=lev_files(iff)) THEN
    66       CALL histwrite_phy(nid_files(iff),"t2m",itau_w,zt2m)
    67        ENDIF
    68 
    69        IF (flag_t2m_min(iff)<=lev_files(iff)) THEN
    70       CALL histwrite_phy(nid_files(iff),"t2m_min",itau_w,zt2m)
    71        ENDIF
    72 
    73        IF (flag_t2m_max(iff)<=lev_files(iff)) THEN
    74       CALL histwrite_phy(nid_files(iff),"t2m_max",itau_w,zt2m)
    75        ENDIF
    76 
    77        IF (flag_wind10m(iff)<=lev_files(iff)) THEN
     39       IF (o_flat%flag(iff)<=lev_files(iff)) THEN
     40      CALL histwrite_phy(nid_files(iff),o_flat%name,itau_w,zxfluxlat)
     41       ENDIF
     42
     43       IF (o_slp%flag(iff)<=lev_files(iff)) THEN
     44      CALL histwrite_phy(nid_files(iff),o_slp%name,itau_w,slp)
     45       ENDIF
     46
     47       IF (o_tsol%flag(iff)<=lev_files(iff)) THEN
     48      CALL histwrite_phy(nid_files(iff),o_tsol%name,itau_w,zxtsol)
     49       ENDIF
     50
     51       IF (o_t2m%flag(iff)<=lev_files(iff)) THEN
     52      CALL histwrite_phy(nid_files(iff),o_t2m%name,itau_w,zt2m)
     53       ENDIF
     54
     55       IF (o_t2m_min%flag(iff)<=lev_files(iff)) THEN
     56      CALL histwrite_phy(nid_files(iff),o_t2m_min%name,itau_w,zt2m)
     57       ENDIF
     58
     59       IF (o_t2m_max%flag(iff)<=lev_files(iff)) THEN
     60      CALL histwrite_phy(nid_files(iff),o_t2m_max%name,itau_w,zt2m)
     61       ENDIF
     62
     63       IF (o_wind10m%flag(iff)<=lev_files(iff)) THEN
    7864      DO i=1, klon
    7965       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    8066      ENDDO
    81       CALL histwrite_phy(nid_files(iff),"wind10m",itau_w,zx_tmp_fi2d)
    82        ENDIF
    83 
    84        IF (flag_wind10max(iff)<=lev_files(iff)) THEN
     67      CALL histwrite_phy(nid_files(iff),
     68     s                  o_wind10m%name,itau_w,zx_tmp_fi2d)
     69       ENDIF
     70
     71       IF (o_wind10max%flag(iff)<=lev_files(iff)) THEN
    8572      DO i=1, klon
    8673       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    8774      ENDDO
    88       CALL histwrite_phy(nid_files(iff),"wind10max",
     75      CALL histwrite_phy(nid_files(iff),o_wind10max%name,
    8976     $                   itau_w,zx_tmp_fi2d)
    9077       ENDIF
    9178
    92        IF (flag_sicf(iff)<=lev_files(iff)) THEN
     79       IF (o_sicf%flag(iff)<=lev_files(iff)) THEN
    9380      DO i = 1, klon
    9481         zx_tmp_fi2d(i) = pctsrf(i,is_sic)
    9582      ENDDO
    96       CALL histwrite_phy(nid_files(iff),"sicf",itau_w,zx_tmp_fi2d)
    97        ENDIF
    98 
    99        IF (flag_q2m(iff)<=lev_files(iff)) THEN
    100       CALL histwrite_phy(nid_files(iff),"q2m",itau_w,zq2m)
    101        ENDIF
    102 
    103        IF (flag_u10m(iff)<=lev_files(iff)) THEN
    104       CALL histwrite_phy(nid_files(iff),"u10m",itau_w,zu10m)
    105        ENDIF
    106 
    107        IF (flag_v10m(iff)<=lev_files(iff)) THEN
    108       CALL histwrite_phy(nid_files(iff),"v10m",itau_w,zv10m)
    109        ENDIF
    110 
    111        IF (flag_psol(iff)<=lev_files(iff)) THEN
     83      CALL histwrite_phy(nid_files(iff),
     84     $                   o_sicf%name,itau_w,zx_tmp_fi2d)
     85       ENDIF
     86
     87       IF (o_q2m%flag(iff)<=lev_files(iff)) THEN
     88      CALL histwrite_phy(nid_files(iff),o_q2m%name,itau_w,zq2m)
     89       ENDIF
     90
     91       IF (o_u10m%flag(iff)<=lev_files(iff)) THEN
     92      CALL histwrite_phy(nid_files(iff),o_u10m%name,itau_w,zu10m)
     93       ENDIF
     94
     95       IF (o_v10m%flag(iff)<=lev_files(iff)) THEN
     96      CALL histwrite_phy(nid_files(iff),o_v10m%name,itau_w,zv10m)
     97       ENDIF
     98
     99       IF (o_psol%flag(iff)<=lev_files(iff)) THEN
    112100      DO i = 1, klon
    113101         zx_tmp_fi2d(i) = paprs(i,1)
    114102      ENDDO
    115       CALL histwrite_phy(nid_files(iff),"psol",itau_w,zx_tmp_fi2d)
    116        ENDIF
    117 
    118        IF (flag_qsurf(iff)<=lev_files(iff)) THEN
    119       CALL histwrite_phy(nid_files(iff),"qsurf",itau_w,zxqsurf)
     103      CALL histwrite_phy(nid_files(iff),
     104     s                   o_psol%name,itau_w,zx_tmp_fi2d)
     105       ENDIF
     106
     107       IF (o_qsurf%flag(iff)<=lev_files(iff)) THEN
     108      CALL histwrite_phy(nid_files(iff),o_qsurf%name,itau_w,zxqsurf)
    120109       ENDIF
    121110
    122111       if (.not. ok_veget) then
    123          IF (flag_qsol(iff)<=lev_files(iff)) THEN
    124         CALL histwrite_phy(nid_files(iff),"qsol",itau_w,qsol)
     112         IF (o_qsol%flag(iff)<=lev_files(iff)) THEN
     113        CALL histwrite_phy(nid_files(iff),o_qsol%name,itau_w,qsol)
    125114         ENDIF
    126115       endif
    127116
    128       IF (flag_precip(iff)<=lev_files(iff)) THEN
     117      IF (o_precip%flag(iff)<=lev_files(iff)) THEN
    129118       DO i = 1, klon
    130119         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    131120       ENDDO
    132       CALL histwrite_phy(nid_files(iff),"precip",itau_w,zx_tmp_fi2d)
    133       ENDIF
    134 
    135        IF (flag_ndayrain(iff)<=lev_files(iff)) THEN
    136       CALL histwrite_phy(nid_files(iff),"ndayrain",itau_w,nday_rain)
    137        ENDIF
    138 
    139       IF (flag_plul(iff)<=lev_files(iff)) THEN
     121      CALL histwrite_phy(nid_files(iff),o_precip%name,
     122     s                   itau_w,zx_tmp_fi2d)
     123      ENDIF
     124
     125       IF (o_ndayrain%flag(iff)<=lev_files(iff)) THEN
     126      CALL histwrite_phy(nid_files(iff),o_ndayrain%name,
     127     s                   itau_w,nday_rain)
     128       ENDIF
     129
     130      IF (o_plul%flag(iff)<=lev_files(iff)) THEN
    140131       DO i = 1, klon
    141132         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
    142133       ENDDO
    143       CALL histwrite_phy(nid_files(iff),"plul",itau_w,zx_tmp_fi2d)
    144       ENDIF
    145 
    146       IF (flag_pluc(iff)<=lev_files(iff)) THEN
     134      CALL histwrite_phy(nid_files(iff),o_plul%name,itau_w,zx_tmp_fi2d)
     135      ENDIF
     136
     137      IF (o_pluc%flag(iff)<=lev_files(iff)) THEN
    147138      DO i = 1, klon
    148139         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
    149140      ENDDO
    150       CALL histwrite_phy(nid_files(iff),"pluc",itau_w,zx_tmp_fi2d)
    151       ENDIF
    152 
    153        IF (flag_snow(iff)<=lev_files(iff)) THEN
    154       CALL histwrite_phy(nid_files(iff),"snow",itau_w,snow_fall)
    155        ENDIF
    156 
    157        IF (flag_evap(iff)<=lev_files(iff)) THEN
    158       CALL histwrite_phy(nid_files(iff),"evap",itau_w,evap)
    159        ENDIF
    160 
    161        IF (flag_tops(iff)<=lev_files(iff)) THEN
    162       CALL histwrite_phy(nid_files(iff),"tops",itau_w,topsw)
    163        ENDIF
    164 
    165        IF (flag_tops0(iff)<=lev_files(iff)) THEN
    166       CALL histwrite_phy(nid_files(iff),"tops0",itau_w,topsw0)
    167        ENDIF
    168 
    169        IF (flag_topl(iff)<=lev_files(iff)) THEN
    170       CALL histwrite_phy(nid_files(iff),"topl",itau_w,toplw)
    171        ENDIF
    172 
    173        IF (flag_topl0(iff)<=lev_files(iff)) THEN
    174       CALL histwrite_phy(nid_files(iff),"topl0",itau_w,toplw0)
    175        ENDIF
    176 
    177        IF (flag_SWupTOA(iff)<=lev_files(iff)) THEN
     141      CALL histwrite_phy(nid_files(iff),o_pluc%name,itau_w,zx_tmp_fi2d)
     142      ENDIF
     143
     144       IF (o_snow%flag(iff)<=lev_files(iff)) THEN
     145      CALL histwrite_phy(nid_files(iff),o_snow%name,itau_w,snow_fall)
     146       ENDIF
     147
     148       IF (o_evap%flag(iff)<=lev_files(iff)) THEN
     149      CALL histwrite_phy(nid_files(iff),o_evap%name,itau_w,evap)
     150       ENDIF
     151
     152       IF (o_tops%flag(iff)<=lev_files(iff)) THEN
     153      CALL histwrite_phy(nid_files(iff),o_tops%name,itau_w,topsw)
     154       ENDIF
     155
     156       IF (o_tops0%flag(iff)<=lev_files(iff)) THEN
     157      CALL histwrite_phy(nid_files(iff),o_tops0%name,itau_w,topsw0)
     158       ENDIF
     159
     160       IF (o_topl%flag(iff)<=lev_files(iff)) THEN
     161      CALL histwrite_phy(nid_files(iff),o_topl%name,itau_w,toplw)
     162       ENDIF
     163
     164       IF (o_topl0%flag(iff)<=lev_files(iff)) THEN
     165      CALL histwrite_phy(nid_files(iff),o_topl0%name,itau_w,toplw0)
     166       ENDIF
     167
     168       IF (o_SWupTOA%flag(iff)<=lev_files(iff)) THEN
    178169      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
    179       CALL histwrite_phy(nid_files(iff), "SWupTOA",itau_w,zx_tmp_fi2d)
    180        ENDIF
    181 
    182        IF (flag_SWupTOAclr(iff)<=lev_files(iff)) THEN
     170      CALL histwrite_phy(nid_files(iff),o_SWupTOA%name,
     171     s                     itau_w,zx_tmp_fi2d)
     172       ENDIF
     173
     174       IF (o_SWupTOAclr%flag(iff)<=lev_files(iff)) THEN
    183175      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
    184176      CALL histwrite_phy(nid_files(iff),
    185      $                  "SWupTOAclr",itau_w,zx_tmp_fi2d)
    186        ENDIF
    187 
    188        IF (flag_SWdnTOA(iff)<=lev_files(iff)) THEN
     177     $                  o_SWupTOAclr%name,itau_w,zx_tmp_fi2d)
     178       ENDIF
     179
     180       IF (o_SWdnTOA%flag(iff)<=lev_files(iff)) THEN
    189181      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
    190       CALL histwrite_phy(nid_files(iff), "SWdnTOA",itau_w,zx_tmp_fi2d)
    191        ENDIF
    192 
    193        IF (flag_SWdnTOAclr(iff)<=lev_files(iff)) THEN
     182      CALL histwrite_phy(nid_files(iff),
     183     s                  o_SWdnTOA%name,itau_w,zx_tmp_fi2d)
     184       ENDIF
     185
     186       IF (o_SWdnTOAclr%flag(iff)<=lev_files(iff)) THEN
    194187      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
    195188      CALL histwrite_phy(nid_files(iff),
    196      $                  "SWdnTOAclr",itau_w,zx_tmp_fi2d)
    197        ENDIF
    198 
    199        IF (flag_SWup200(iff)<=lev_files(iff)) THEN
    200       CALL histwrite_phy(nid_files(iff),"SWup200",itau_w,SWup200)
    201        ENDIF
    202 
    203        IF (flag_SWup200clr(iff)<=lev_files(iff)) THEN
    204       CALL histwrite_phy(nid_files(iff),"SWup200clr",itau_w,SWup200clr)
    205        ENDIF
    206 
    207        IF (flag_SWdn200(iff)<=lev_files(iff)) THEN
    208       CALL histwrite_phy(nid_files(iff),"SWdn200",itau_w,SWdn200)
    209        ENDIF
    210 
    211        IF (flag_SWdn200clr(iff)<=lev_files(iff)) THEN
    212       CALL histwrite_phy(nid_files(iff),"SWdn200clr",itau_w,SWdn200clr)
    213        ENDIF
    214 
    215        IF (flag_LWup200(iff)<=lev_files(iff)) THEN
    216       CALL histwrite_phy(nid_files(iff),"LWup200",itau_w,LWup200)
    217        ENDIF
    218 
    219        IF (flag_LWup200clr(iff)<=lev_files(iff)) THEN
    220       CALL histwrite_phy(nid_files(iff),"LWup200clr",itau_w,LWup200clr)
    221        ENDIF
    222 
    223        IF (flag_LWdn200(iff)<=lev_files(iff)) THEN
    224       CALL histwrite_phy(nid_files(iff),"LWdn200",itau_w,zx_tmp_fi2d)
    225        ENDIF
    226 
    227        IF (flag_LWdn200clr(iff)<=lev_files(iff)) THEN
    228       CALL histwrite_phy(nid_files(iff),"LWdn200clr",itau_w,zx_tmp_fi2d)
    229        ENDIF
    230 
    231        IF (flag_sols(iff)<=lev_files(iff)) THEN
    232       CALL histwrite_phy(nid_files(iff),"sols",itau_w,solsw)
    233        ENDIF
    234 
    235        IF (flag_sols0(iff)<=lev_files(iff)) THEN
    236       CALL histwrite_phy(nid_files(iff),"sols0",itau_w,solsw0)
    237        ENDIF
    238 
    239        IF (flag_soll(iff)<=lev_files(iff)) THEN
    240       CALL histwrite_phy(nid_files(iff),"soll",itau_w,sollw)
    241        ENDIF
    242 
    243        IF (flag_radsol(iff)<=lev_files(iff)) THEN
    244       CALL histwrite_phy(nid_files(iff),"radsol",itau_w,radsol)
    245        ENDIF
    246 
    247        IF (flag_soll0(iff)<=lev_files(iff)) THEN
    248       CALL histwrite_phy(nid_files(iff),"soll0",itau_w,sollw0)
    249        ENDIF
    250 
    251        IF (flag_SWupSFC(iff)<=lev_files(iff)) THEN
     189     $                  o_SWdnTOAclr%name,itau_w,zx_tmp_fi2d)
     190       ENDIF
     191
     192       IF (o_SWup200%flag(iff)<=lev_files(iff)) THEN
     193      CALL histwrite_phy(nid_files(iff),o_SWup200%name,itau_w,SWup200)
     194       ENDIF
     195
     196       IF (o_SWup200clr%flag(iff)<=lev_files(iff)) THEN
     197      CALL histwrite_phy(nid_files(iff),
     198     s                   o_SWup200clr%name,itau_w,SWup200clr)
     199       ENDIF
     200
     201       IF (o_SWdn200%flag(iff)<=lev_files(iff)) THEN
     202      CALL histwrite_phy(nid_files(iff),o_SWdn200%name,itau_w,SWdn200)
     203       ENDIF
     204
     205       IF (o_SWdn200clr%flag(iff)<=lev_files(iff)) THEN
     206      CALL histwrite_phy(nid_files(iff),
     207     s                o_SWdn200clr%name,itau_w,SWdn200clr)
     208       ENDIF
     209
     210       IF (o_LWup200%flag(iff)<=lev_files(iff)) THEN
     211      CALL histwrite_phy(nid_files(iff),o_LWup200%name,itau_w,LWup200)
     212       ENDIF
     213
     214       IF (o_LWup200clr%flag(iff)<=lev_files(iff)) THEN
     215      CALL histwrite_phy(nid_files(iff),
     216     s                   o_LWup200clr%name,itau_w,LWup200clr)
     217       ENDIF
     218
     219       IF (o_LWdn200%flag(iff)<=lev_files(iff)) THEN
     220      CALL histwrite_phy(nid_files(iff),
     221     s                   o_LWdn200%name,itau_w,zx_tmp_fi2d)
     222       ENDIF
     223
     224       IF (o_LWdn200clr%flag(iff)<=lev_files(iff)) THEN
     225      CALL histwrite_phy(nid_files(iff),
     226     s                  o_LWdn200clr%name,itau_w,zx_tmp_fi2d)
     227       ENDIF
     228
     229       IF (o_sols%flag(iff)<=lev_files(iff)) THEN
     230      CALL histwrite_phy(nid_files(iff),o_sols%name,itau_w,solsw)
     231       ENDIF
     232
     233       IF (o_sols0%flag(iff)<=lev_files(iff)) THEN
     234      CALL histwrite_phy(nid_files(iff),o_sols0%name,itau_w,solsw0)
     235       ENDIF
     236
     237       IF (o_soll%flag(iff)<=lev_files(iff)) THEN
     238      CALL histwrite_phy(nid_files(iff),o_soll%name,itau_w,sollw)
     239       ENDIF
     240
     241       IF (o_radsol%flag(iff)<=lev_files(iff)) THEN
     242      CALL histwrite_phy(nid_files(iff),o_radsol%name,itau_w,radsol)
     243       ENDIF
     244
     245       IF (o_soll0%flag(iff)<=lev_files(iff)) THEN
     246      CALL histwrite_phy(nid_files(iff),o_soll0%name,itau_w,sollw0)
     247       ENDIF
     248
     249       IF (o_SWupSFC%flag(iff)<=lev_files(iff)) THEN
    252250      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
    253       CALL histwrite_phy(nid_files(iff), "SWupSFC",itau_w,zx_tmp_fi2d)
    254        ENDIF
    255 
    256        IF (flag_SWupSFCclr(iff)<=lev_files(iff)) THEN
     251      CALL histwrite_phy(nid_files(iff),
     252     s               o_SWupSFC%name,itau_w,zx_tmp_fi2d)
     253       ENDIF
     254
     255       IF (o_SWupSFCclr%flag(iff)<=lev_files(iff)) THEN
    257256      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
    258257      CALL histwrite_phy(nid_files(iff),
    259      $                   "SWupSFCclr",itau_w,zx_tmp_fi2d)
    260        ENDIF
    261 
    262        IF (flag_SWdnSFC(iff)<=lev_files(iff)) THEN
     258     $                   o_SWupSFCclr%name,itau_w,zx_tmp_fi2d)
     259       ENDIF
     260
     261       IF (o_SWdnSFC%flag(iff)<=lev_files(iff)) THEN
    263262      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
    264263      CALL histwrite_phy(nid_files(iff),
    265      $                   "SWdnSFC",itau_w,zx_tmp_fi2d)
    266        ENDIF
    267 
    268        IF (flag_SWdnSFCclr(iff)<=lev_files(iff)) THEN
     264     $                   o_SWdnSFC%name,itau_w,zx_tmp_fi2d)
     265       ENDIF
     266
     267       IF (o_SWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
    269268      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
    270269      CALL histwrite_phy(nid_files(iff),
    271      $                  "SWdnSFCclr",itau_w,zx_tmp_fi2d)
    272        ENDIF
    273 
    274        IF (flag_LWupSFC(iff)<=lev_files(iff)) THEN
     270     $                  o_SWdnSFCclr%name,itau_w,zx_tmp_fi2d)
     271       ENDIF
     272
     273       IF (o_LWupSFC%flag(iff)<=lev_files(iff)) THEN
    275274      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
    276275      CALL histwrite_phy(nid_files(iff),
    277      $                    "LWupSFC",itau_w,zx_tmp_fi2d)
    278        ENDIF
    279 
    280        IF (flag_LWdnSFC(iff)<=lev_files(iff)) THEN
    281       CALL histwrite_phy(nid_files(iff),
    282      $                   "LWdnSFC",itau_w,sollwdown)
     276     $                    o_LWupSFC%name,itau_w,zx_tmp_fi2d)
     277       ENDIF
     278
     279       IF (o_LWdnSFC%flag(iff)<=lev_files(iff)) THEN
     280      CALL histwrite_phy(nid_files(iff),
     281     $                   o_LWdnSFC%name,itau_w,sollwdown)
    283282       ENDIF
    284283
    285284       sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
    286        IF (flag_LWupSFCclr(iff)<=lev_files(iff)) THEN
     285       IF (o_LWupSFCclr%flag(iff)<=lev_files(iff)) THEN
    287286      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
    288287      CALL histwrite_phy(nid_files(iff),
    289      $                   "LWupSFCclr",itau_w,zx_tmp_fi2d)
    290        ENDIF
    291 
    292        IF (flag_LWdnSFCclr(iff)<=lev_files(iff)) THEN
    293       CALL histwrite_phy(nid_files(iff),
    294      $                   "LWdnSFCclr",itau_w,sollwdownclr)
    295        ENDIF
    296 
    297        IF (flag_bils(iff)<=lev_files(iff)) THEN
    298       CALL histwrite_phy(nid_files(iff),"bils",itau_w,bils)
    299        ENDIF
    300 
    301        IF (flag_sens(iff)<=lev_files(iff)) THEN
     288     $                   o_LWupSFCclr%name,itau_w,zx_tmp_fi2d)
     289       ENDIF
     290
     291       IF (o_LWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
     292      CALL histwrite_phy(nid_files(iff),
     293     $                   o_LWdnSFCclr%name,itau_w,sollwdownclr)
     294       ENDIF
     295
     296       IF (o_bils%flag(iff)<=lev_files(iff)) THEN
     297      CALL histwrite_phy(nid_files(iff),o_bils%name,itau_w,bils)
     298       ENDIF
     299
     300       IF (o_sens%flag(iff)<=lev_files(iff)) THEN
    302301      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
    303       CALL histwrite_phy(nid_files(iff),"sens",itau_w,zx_tmp_fi2d)
    304        ENDIF
    305 
    306        IF (flag_fder(iff)<=lev_files(iff)) THEN
    307       CALL histwrite_phy(nid_files(iff),"fder",itau_w,fder)
    308        ENDIF
    309 
    310        IF (flag_ffonte(iff)<=lev_files(iff)) THEN
    311        CALL histwrite_phy(nid_files(iff),"ffonte",itau_w,zxffonte)
    312        ENDIF
    313 
    314        IF (flag_fqcalving(iff)<=lev_files(iff)) THEN
     302      CALL histwrite_phy(nid_files(iff),o_sens%name,itau_w,zx_tmp_fi2d)
     303       ENDIF
     304
     305       IF (o_fder%flag(iff)<=lev_files(iff)) THEN
     306      CALL histwrite_phy(nid_files(iff),o_fder%name,itau_w,fder)
     307       ENDIF
     308
     309       IF (o_ffonte%flag(iff)<=lev_files(iff)) THEN
     310       CALL histwrite_phy(nid_files(iff),o_ffonte%name,itau_w,zxffonte)
     311       ENDIF
     312
     313       IF (o_fqcalving%flag(iff)<=lev_files(iff)) THEN
    315314       CALL histwrite_phy(nid_files(iff),
    316      $                    "fqcalving",itau_w,zxfqcalving)
    317        ENDIF
    318 
    319        IF (flag_fqfonte(iff)<=lev_files(iff)) THEN
     315     $                    o_fqcalving%name,itau_w,zxfqcalving)
     316       ENDIF
     317
     318       IF (o_fqfonte%flag(iff)<=lev_files(iff)) THEN
    320319       CALL histwrite_phy(nid_files(iff),
    321      $                    "fqfonte",itau_w,zxfqfonte)
     320     $                   o_fqfonte%name,itau_w,zxfqfonte)
    322321       ENDIF
    323322
    324323         DO nsrf = 1, nbsrf
    325            IF(nsrf.GE.2) THEN
    326             IF (flag_pourc_sol(iff)<=lev_files(iff)) THEN
     324!           IF(nsrf.GE.2) THEN
     325            IF (o_pourc_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    327326            zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    328327            CALL histwrite_phy(nid_files(iff),
    329      $                     "pourc_"//clnsurf(nsrf),itau_w,
     328     $                     o_pourc_srf(nsrf)%name,itau_w,
    330329     $                     zx_tmp_fi2d)
    331330            ENDIF
    332331
    333           IF (flag_fract_sol(iff)<=lev_files(iff)) THEN
     332          IF (o_fract_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    334333          zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    335334          CALL histwrite_phy(nid_files(iff),
    336      $                    "fract_"//clnsurf(nsrf),itau_w,
     335     $                  o_fract_srf(nsrf)%name,itau_w,
     336     $                  zx_tmp_fi2d)
     337          ENDIF
     338!         ENDIF !nsrf.GT.2
     339
     340        IF (o_taux_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
     341        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
     342        CALL histwrite_phy(nid_files(iff),
     343     $                     o_taux_srf(nsrf)%name,itau_w,
     344     $                     zx_tmp_fi2d)
     345        ENDIF
     346
     347        IF (o_tauy_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN           
     348        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
     349        CALL histwrite_phy(nid_files(iff),
     350     $                    o_tauy_srf(nsrf)%name,itau_w,
     351     $                    zx_tmp_fi2d)
     352        ENDIF
     353
     354        IF (o_tsol_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
     355        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
     356        CALL histwrite_phy(nid_files(iff),
     357     $                   o_tsol_srf(nsrf)%name,itau_w,
    337358     $      zx_tmp_fi2d)
    338           ENDIF
    339          ENDIF !nsrf.GT.2
    340 
    341         IF (flag_taux_sol(iff)<=lev_files(iff)) THEN
    342         zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
    343         CALL histwrite_phy(nid_files(iff),
    344      $                     "taux_"//clnsurf(nsrf),itau_w,
    345      $      zx_tmp_fi2d)
    346         ENDIF
    347 
    348         IF (flag_tauy_sol(iff)<=lev_files(iff)) THEN           
    349         zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
    350         CALL histwrite_phy(nid_files(iff),
    351      $                    "tauy_"//clnsurf(nsrf),itau_w,
    352      $      zx_tmp_fi2d)
    353         ENDIF
    354 
    355         IF (flag_tsol_sol(iff)<=lev_files(iff)) THEN
    356         zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
    357         CALL histwrite_phy(nid_files(iff),
    358      $                   "tsol_"//clnsurf(nsrf),itau_w,
    359      $      zx_tmp_fi2d)
    360         ENDIF
    361 
    362       IF (flag_u10m_sol(iff)<=lev_files(iff)) THEN
     359        ENDIF
     360
     361      IF (o_u10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    363362      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
    364       CALL histwrite_phy(nid_files(iff),"u10m_"//clnsurf(nsrf),
     363      CALL histwrite_phy(nid_files(iff),o_u10m_srf(nsrf)%name,
    365364     $                 itau_w,zx_tmp_fi2d)
    366365      ENDIF
    367366
    368       IF (flag_v10m_sol(iff)<=lev_files(iff)) THEN
     367      IF (o_v10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    369368      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
    370       CALL histwrite_phy(nid_files(iff),"v10m_"//clnsurf(nsrf),
     369      CALL histwrite_phy(nid_files(iff),o_v10m_srf(nsrf)%name,
    371370     $              itau_w,zx_tmp_fi2d)
    372371      ENDIF
    373372 
    374       IF (flag_t2m_sol(iff)<=lev_files(iff)) THEN
     373      IF (o_t2m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    375374      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
    376       CALL histwrite_phy(nid_files(iff),"t2m_"//clnsurf(nsrf),
     375      CALL histwrite_phy(nid_files(iff),o_t2m_srf(nsrf)%name,
    377376     $           itau_w,zx_tmp_fi2d)
    378377      ENDIF
    379378
    380        IF (flag_sens_sol(iff)<=lev_files(iff)) THEN
     379       IF (o_sens_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    381380       zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
    382381       CALL histwrite_phy(nid_files(iff),
    383      $                     "sens_"//clnsurf(nsrf),itau_w,
     382     $                    o_sens_srf(nsrf)%name,itau_w,
    384383     $      zx_tmp_fi2d)
    385384       ENDIF
    386385
    387         IF (flag_lat_sol(iff)<=lev_files(iff)) THEN
     386        IF (o_lat_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    388387        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
    389388        CALL histwrite_phy(nid_files(iff),
    390      $                 "lat_"//clnsurf(nsrf),itau_w,
     389     $                 o_lat_srf(nsrf)%name,itau_w,
    391390     $                                   zx_tmp_fi2d)
    392391          ENDIF
    393392
    394         IF (flag_flw_sol(iff)<=lev_files(iff)) THEN
     393        IF (o_flw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    395394        zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
    396395        CALL histwrite_phy(nid_files(iff),
    397      $                     "flw_"//clnsurf(nsrf),itau_w,
     396     $                     o_flw_srf(nsrf)%name,itau_w,
    398397     $      zx_tmp_fi2d)
    399398        ENDIF
    400399
    401         IF (flag_fsw_sol(iff)<=lev_files(iff)) THEN
     400        IF (o_fsw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    402401        zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
    403402        CALL histwrite_phy(nid_files(iff),
    404      $                     "fsw_"//clnsurf(nsrf),itau_w,
     403     $                   o_fsw_srf(nsrf)%name,itau_w,
    405404     $      zx_tmp_fi2d)
    406405        ENDIF
    407406
    408         IF (flag_wbils_sol(iff)<=lev_files(iff)) THEN
     407        IF (o_wbils_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    409408        zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
    410409        CALL histwrite_phy(nid_files(iff),
    411      $                     "wbils_"//clnsurf(nsrf),itau_w,
     410     $                   o_wbils_srf(nsrf)%name,itau_w,
    412411     $      zx_tmp_fi2d)
    413412        ENDIF
    414413
    415         IF (flag_wbilo_sol(iff)<=lev_files(iff)) THEN
     414        IF (o_wbilo_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    416415        zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
    417416        CALL histwrite_phy(nid_files(iff),
    418      $                    "wbilo_"//clnsurf(nsrf),itau_w,
     417     $                    o_wbilo_srf(nsrf)%name,itau_w,
    419418     $      zx_tmp_fi2d)
    420419        ENDIF
    421420
    422421       if (iflag_pbl>1 .and. lev_histday.gt.10 ) then
    423         IF (flag_tke_sol(iff)<=lev_files(iff)) THEN
    424         CALL histwrite_phy(nid_files(iff),
    425      $                    "tke_"//clnsurf(nsrf),itau_w,
    426      $      pbl_tke(:,1:klev,nsrf))
    427        ENDIF
    428 
    429         IF (flag_tke_max_sol(iff)<=lev_files(iff)) THEN
    430         CALL histwrite_phy(nid_files(iff),
    431      $                    "tke_max_"//clnsurf(nsrf),itau_w,
     422        IF (o_tke_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
     423        CALL histwrite_phy(nid_files(iff),
     424     $                   o_tke_srf(nsrf)%name,itau_w,
     425     $                    pbl_tke(:,1:klev,nsrf))
     426       ENDIF
     427
     428        IF (o_tke_max_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
     429        CALL histwrite_phy(nid_files(iff),
     430     $                    o_tke_max_srf(nsrf)%name,itau_w,
    432431     $      pbl_tke(:,1:klev,nsrf))
    433432        ENDIF
     
    435434      ENDDO
    436435
    437         IF (flag_cdrm(iff)<=lev_files(iff)) THEN
    438       CALL histwrite_phy(nid_files(iff),"cdrm",itau_w,cdragm)
    439         ENDIF
    440 
    441         IF (flag_cdrh(iff)<=lev_files(iff)) THEN
    442       CALL histwrite_phy(nid_files(iff),"cdrh",itau_w,cdragh)
    443         ENDIF
    444 
    445         IF (flag_cldl(iff)<=lev_files(iff)) THEN
    446       CALL histwrite_phy(nid_files(iff),"cldl",itau_w,cldl)
    447         ENDIF
    448 
    449         IF (flag_cldm(iff)<=lev_files(iff)) THEN
    450       CALL histwrite_phy(nid_files(iff),"cldm",itau_w,cldm)
    451         ENDIF
    452 
    453         IF (flag_cldh(iff)<=lev_files(iff)) THEN
    454       CALL histwrite_phy(nid_files(iff),"cldh",itau_w,cldh)
    455         ENDIF
    456 
    457         IF (flag_cldt(iff)<=lev_files(iff)) THEN
    458       CALL histwrite_phy(nid_files(iff),"cldt",
     436        IF (o_cdrm%flag(iff)<=lev_files(iff)) THEN
     437      CALL histwrite_phy(nid_files(iff),o_cdrm%name,itau_w,cdragm)
     438        ENDIF
     439
     440        IF (o_cdrh%flag(iff)<=lev_files(iff)) THEN
     441      CALL histwrite_phy(nid_files(iff),o_cdrh%name,itau_w,cdragh)
     442        ENDIF
     443
     444        IF (o_cldl%flag(iff)<=lev_files(iff)) THEN
     445      CALL histwrite_phy(nid_files(iff),o_cldl%name,itau_w,cldl)
     446        ENDIF
     447
     448        IF (o_cldm%flag(iff)<=lev_files(iff)) THEN
     449      CALL histwrite_phy(nid_files(iff),o_cldm%name,itau_w,cldm)
     450        ENDIF
     451
     452        IF (o_cldh%flag(iff)<=lev_files(iff)) THEN
     453      CALL histwrite_phy(nid_files(iff),o_cldh%name,itau_w,cldh)
     454        ENDIF
     455
     456        IF (o_cldt%flag(iff)<=lev_files(iff)) THEN
     457      CALL histwrite_phy(nid_files(iff),o_cldt%name,
    459458     &                   itau_w,cldt*100)
    460459        ENDIF
    461460
    462         IF (flag_cldq(iff)<=lev_files(iff)) THEN
    463       CALL histwrite_phy(nid_files(iff),"cldq",itau_w,cldq)
    464         ENDIF
    465 
    466         IF (flag_lwp(iff)<=lev_files(iff)) THEN
     461        IF (o_cldq%flag(iff)<=lev_files(iff)) THEN
     462      CALL histwrite_phy(nid_files(iff),o_cldq%name,itau_w,cldq)
     463        ENDIF
     464
     465        IF (o_lwp%flag(iff)<=lev_files(iff)) THEN
    467466      zx_tmp_fi2d(1:klon) = flwp(1:klon)
    468       CALL histwrite_phy(nid_files(iff),"lwp",itau_w,zx_tmp_fi2d)
    469         ENDIF
    470 
    471         IF (flag_iwp(iff)<=lev_files(iff)) THEN
     467      CALL histwrite_phy(nid_files(iff),
     468     s                   o_lwp%name,itau_w,zx_tmp_fi2d)
     469        ENDIF
     470
     471        IF (o_iwp%flag(iff)<=lev_files(iff)) THEN
    472472      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
    473       CALL histwrite_phy(nid_files(iff),"iwp",itau_w,zx_tmp_fi2d)
    474         ENDIF
    475 
    476         IF (flag_ue(iff)<=lev_files(iff)) THEN
    477       CALL histwrite_phy(nid_files(iff),"ue",itau_w,ue)
    478         ENDIF
    479 
    480         IF (flag_ve(iff)<=lev_files(iff)) THEN
    481       CALL histwrite_phy(nid_files(iff),"ve",itau_w,ve)
    482         ENDIF
    483 
    484         IF (flag_uq(iff)<=lev_files(iff)) THEN
    485       CALL histwrite_phy(nid_files(iff),"uq",itau_w,uq)
    486         ENDIF
    487 
    488         IF (flag_vq(iff)<=lev_files(iff)) THEN
    489       CALL histwrite_phy(nid_files(iff),"vq",itau_w,vq)
     473      CALL histwrite_phy(nid_files(iff),
     474     s                    o_iwp%name,itau_w,zx_tmp_fi2d)
     475        ENDIF
     476
     477        IF (o_ue%flag(iff)<=lev_files(iff)) THEN
     478      CALL histwrite_phy(nid_files(iff),o_ue%name,itau_w,ue)
     479        ENDIF
     480
     481        IF (o_ve%flag(iff)<=lev_files(iff)) THEN
     482      CALL histwrite_phy(nid_files(iff),o_ve%name,itau_w,ve)
     483        ENDIF
     484
     485        IF (o_uq%flag(iff)<=lev_files(iff)) THEN
     486      CALL histwrite_phy(nid_files(iff),o_uq%name,itau_w,uq)
     487        ENDIF
     488
     489        IF (o_vq%flag(iff)<=lev_files(iff)) THEN
     490      CALL histwrite_phy(nid_files(iff),o_vq%name,itau_w,vq)
    490491        ENDIF
    491492
    492493      IF(iflag_con.GE.3) THEN ! sb
    493         IF (flag_cape(iff)<=lev_files(iff)) THEN
    494       CALL histwrite_phy(nid_files(iff),"cape",itau_w,cape)
    495         ENDIF
    496 
    497         IF (flag_pbase(iff)<=lev_files(iff)) THEN
    498       CALL histwrite_phy(nid_files(iff),"pbase",itau_w,pbase)
    499         ENDIF
    500 
    501         IF (flag_ptop(iff)<=lev_files(iff)) THEN
    502       CALL histwrite_phy(nid_files(iff),"ptop",itau_w,ema_pct)
    503         ENDIF
    504 
    505         IF (flag_fbase(iff)<=lev_files(iff)) THEN
    506       CALL histwrite_phy(nid_files(iff),"fbase",itau_w,ema_cbmf)
    507         ENDIF
    508 
    509         IF (flag_prw(iff)<=lev_files(iff)) THEN
    510       CALL histwrite_phy(nid_files(iff),"prw",itau_w,prw)
    511         ENDIF
    512 !!! IM beg
    513       IF (flag_cape_max(iff)<=lev_files(iff)) THEN
    514        CALL histwrite_phy(nid_files(iff),"cape_max",itau_w,cape)
    515       ENDIF
    516       IF (flag_upwd(iff)<=lev_files(iff)) THEN
    517        CALL histwrite_phy(nid_files(iff),"upwd",itau_w,upwd)
    518       ENDIF
    519       IF (flag_Ma(iff)<=lev_files(iff)) THEN
    520        CALL histwrite_phy(nid_files(iff),"Ma",itau_w,Ma)
    521       ENDIF
    522 
    523       IF (flag_dnwd(iff)<=lev_files(iff)) THEN
    524        CALL histwrite_phy(nid_files(iff),"dnwd",itau_w,dnwd)
    525       ENDIF
    526 
    527       IF (flag_dnwd0(iff)<=lev_files(iff)) THEN
    528        CALL histwrite_phy(nid_files(iff),"dnwd0",itau_w,dnwd0)
    529       ENDIF
    530 !!! IM end
     494        IF (o_cape%flag(iff)<=lev_files(iff)) THEN
     495      CALL histwrite_phy(nid_files(iff),o_cape%name,itau_w,cape)
     496        ENDIF
     497
     498        IF (o_pbase%flag(iff)<=lev_files(iff)) THEN
     499      CALL histwrite_phy(nid_files(iff),o_pbase%name,itau_w,pbase)
     500        ENDIF
     501
     502        IF (o_ptop%flag(iff)<=lev_files(iff)) THEN
     503      CALL histwrite_phy(nid_files(iff),o_ptop%name,itau_w,ema_pct)
     504        ENDIF
     505
     506        IF (o_fbase%flag(iff)<=lev_files(iff)) THEN
     507      CALL histwrite_phy(nid_files(iff),o_fbase%name,itau_w,ema_cbmf)
     508        ENDIF
     509
     510        IF (o_prw%flag(iff)<=lev_files(iff)) THEN
     511      CALL histwrite_phy(nid_files(iff),o_prw%name,itau_w,prw)
     512        ENDIF
     513
     514      IF (o_cape_max%flag(iff)<=lev_files(iff)) THEN
     515      CALL histwrite_phy(nid_files(iff),o_cape_max%name,itau_w,cape)
     516      ENDIF
     517
     518       IF (o_upwd%flag(iff)<=lev_files(iff)) THEN
     519      CALL histwrite_phy(nid_files(iff),o_upwd%name,itau_w,upwd)
     520       ENDIF
     521
     522       IF (o_Ma%flag(iff)<=lev_files(iff)) THEN
     523      CALL histwrite_phy(nid_files(iff),o_Ma%name,itau_w,Ma)
     524       ENDIF
     525
     526       IF (o_dnwd%flag(iff)<=lev_files(iff)) THEN
     527      CALL histwrite_phy(nid_files(iff),o_dnwd%name,itau_w,dnwd)
     528       ENDIF
     529
     530       IF (o_dnwd0%flag(iff)<=lev_files(iff)) THEN
     531      CALL histwrite_phy(nid_files(iff),o_dnwd0%name,itau_w,dnwd0)
     532       ENDIF
     533
    531534      ENDIF !iflag_con .GE. 3
    532535
    533         IF (flag_s_pblh(iff)<=lev_files(iff)) THEN
    534       CALL histwrite_phy(nid_files(iff),"s_pblh",itau_w,s_pblh)
    535         ENDIF
    536 
    537         IF (flag_s_pblt(iff)<=lev_files(iff)) THEN
    538       CALL histwrite_phy(nid_files(iff),"s_pblt",itau_w,s_pblt)
    539         ENDIF
    540 
    541         IF (flag_s_lcl(iff)<=lev_files(iff)) THEN
    542       CALL histwrite_phy(nid_files(iff),"s_lcl",itau_w,s_lcl)
    543         ENDIF
    544 
    545         IF (flag_s_capCL(iff)<=lev_files(iff)) THEN
    546       CALL histwrite_phy(nid_files(iff),"s_capCL",itau_w,s_capCL)
    547         ENDIF
    548 
    549         IF (flag_s_oliqCL(iff)<=lev_files(iff)) THEN
    550       CALL histwrite_phy(nid_files(iff),"s_oliqCL",itau_w,s_oliqCL)
    551         ENDIF
    552 
    553         IF (flag_s_cteiCL(iff)<=lev_files(iff)) THEN
    554       CALL histwrite_phy(nid_files(iff),"s_cteiCL",itau_w,s_cteiCL)
    555         ENDIF
    556 
    557         IF (flag_s_therm(iff)<=lev_files(iff)) THEN
    558       CALL histwrite_phy(nid_files(iff),"s_therm",itau_w,s_therm)
    559         ENDIF
    560 
    561         IF (flag_s_trmb1(iff)<=lev_files(iff)) THEN
    562       CALL histwrite_phy(nid_files(iff),"s_trmb1",itau_w,s_trmb1)
    563         ENDIF
    564 
    565         IF (flag_s_trmb2(iff)<=lev_files(iff)) THEN
    566       CALL histwrite_phy(nid_files(iff),"s_trmb2",itau_w,s_trmb2)
    567         ENDIF
    568 
    569         IF (flag_s_trmb3(iff)<=lev_files(iff)) THEN
    570       CALL histwrite_phy(nid_files(iff),"s_trmb3",itau_w,s_trmb3)
     536        IF (o_s_pblh%flag(iff)<=lev_files(iff)) THEN
     537      CALL histwrite_phy(nid_files(iff),o_s_pblh%name,itau_w,s_pblh)
     538        ENDIF
     539
     540        IF (o_s_pblt%flag(iff)<=lev_files(iff)) THEN
     541      CALL histwrite_phy(nid_files(iff),o_s_pblt%name,itau_w,s_pblt)
     542        ENDIF
     543
     544        IF (o_s_lcl%flag(iff)<=lev_files(iff)) THEN
     545      CALL histwrite_phy(nid_files(iff),o_s_lcl%name,itau_w,s_lcl)
     546        ENDIF
     547
     548        IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
     549      CALL histwrite_phy(nid_files(iff),o_s_capCL%name,itau_w,s_capCL)
     550        ENDIF
     551
     552        IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
     553      CALL histwrite_phy(nid_files(iff),o_s_oliqCL%name,itau_w,s_oliqCL)
     554        ENDIF
     555
     556        IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
     557      CALL histwrite_phy(nid_files(iff),o_s_cteiCL%name,itau_w,s_cteiCL)
     558        ENDIF
     559
     560        IF (o_s_therm%flag(iff)<=lev_files(iff)) THEN
     561      CALL histwrite_phy(nid_files(iff),o_s_therm%name,itau_w,s_therm)
     562        ENDIF
     563
     564        IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
     565      CALL histwrite_phy(nid_files(iff),o_s_trmb1%name,itau_w,s_trmb1)
     566        ENDIF
     567
     568        IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
     569      CALL histwrite_phy(nid_files(iff),o_s_trmb2%name,itau_w,s_trmb2)
     570        ENDIF
     571
     572        IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
     573      CALL histwrite_phy(nid_files(iff),o_s_trmb3%name,itau_w,s_trmb3)
    571574        ENDIF
    572575
     
    578581!      on ecrit u v t q a 850 700 500 200 au niv 3
    579582
     583        ll=0
    580584        DO k=1, nlevSTD
    581585         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     
    585589
    586590! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    587        IF (flag_ulevsSTD(iff)<=lev_files(iff)) THEN
    588        CALL histwrite_phy(nid_files(iff),"u"//bb2,
    589      & itau_w,uwriteSTD(:,k,iff))
    590        ENDIF
    591 
    592        IF (flag_vlevsSTD(iff)<=lev_files(iff)) THEN
    593       CALL histwrite_phy(nid_files(iff),"v"//bb2, 
    594      & itau_w,vwriteSTD(:,k,iff))
    595        ENDIF
    596 
    597        IF (flag_wlevsSTD(iff)<=lev_files(iff)) THEN
    598       CALL histwrite_phy(nid_files(iff),"w"//bb2,
    599      & itau_w,wwriteSTD(:,k,iff))
    600        ENDIF
    601 
    602        IF (flag_philevsSTD(iff)<=lev_files(iff)) THEN
    603       CALL histwrite_phy(nid_files(iff),
    604      $                  "phi"//bb2,
     591          ll=ll+1
     592       IF (o_uSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
     593       CALL histwrite_phy(nid_files(iff),o_uSTDlevs(ll)%name,
     594     &                    itau_w,uwriteSTD(:,k,iff))
     595       ENDIF
     596
     597       IF (o_vSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
     598      CALL histwrite_phy(nid_files(iff),o_vSTDlevs(ll)%name, 
     599     &                   itau_w,vwriteSTD(:,k,iff))
     600       ENDIF
     601
     602       IF (o_wSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
     603      CALL histwrite_phy(nid_files(iff),o_wSTDlevs(ll)%name,
     604     &                    itau_w,wwriteSTD(:,k,iff))
     605       ENDIF
     606
     607       IF (o_phiSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
     608      CALL histwrite_phy(nid_files(iff),o_phiSTDlevs(ll)%name,
    605609     &               itau_w,phiwriteSTD(:,k,iff))
    606610       ENDIF
    607611
    608        IF (flag_qlevsSTD(iff)<=lev_files(iff)) THEN
    609       CALL histwrite_phy(nid_files(iff),"q"//bb2,
    610      & itau_w, qwriteSTD(:,k,iff))
    611        ENDIF
    612 
    613        IF (flag_tlevsSTD(iff)<=lev_files(iff)) THEN
    614       CALL histwrite_phy(nid_files(iff),"t"//bb2,
    615      & itau_w, twriteSTD(:,k,iff))
     612       IF (o_qSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
     613      CALL histwrite_phy(nid_files(iff),o_qSTDlevs(ll)%name,
     614     &                   itau_w, qwriteSTD(:,k,iff))
     615       ENDIF
     616
     617       IF (o_tSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
     618      CALL histwrite_phy(nid_files(iff),o_tSTDlevs(ll)%name,
     619     &                   itau_w, twriteSTD(:,k,iff))
    616620       ENDIF
    617621
     
    619623       ENDDO
    620624
    621       IF (flag_t_oce_sic(iff)<=lev_files(iff)) THEN
     625      IF (o_t_oce_sic%flag(iff)<=lev_files(iff)) THEN
    622626      DO i=1, klon
    623627       IF (pctsrf(i,is_oce).GT.epsfra.OR.
     
    630634       ENDIF
    631635      ENDDO
    632       CALL histwrite_phy(nid_files(iff),"t_oce_sic",itau_w,zx_tmp_fi2d)
    633       ENDIF
    634 
    635       IF (type_ocean=='force ') THEN
    636 
     636      CALL histwrite_phy(nid_files(iff),
     637     s                   o_t_oce_sic%name,itau_w,zx_tmp_fi2d)
     638      ENDIF
     639
     640! Couplage convection-couche limite
     641      IF (iflag_con.GE.3) THEN
     642      IF (iflag_coupl.EQ.1) THEN
     643       IF (o_ale_bl%flag(iff)<=lev_files(iff)) THEN
     644       CALL histwrite_phy(nid_files(iff),o_ale_bl%name,itau_w,ale_bl)
     645       ENDIF
     646       IF (o_alp_bl%flag(iff)<=lev_files(iff)) THEN
     647       CALL histwrite_phy(nid_files(iff),o_alp_bl%name,itau_w,alp_bl)
     648       ENDIF
     649      ENDIF !iflag_coupl.EQ.1
     650      ENDIF !(iflag_con.GE.3)
     651
     652! Wakes
    637653      IF (iflag_con.EQ.3) THEN
    638        IF (flag_ale(iff)<=lev_files(iff)) THEN
    639        CALL histwrite_phy(nid_files(iff),"ale",itau_w,ale)
    640        ENDIF
    641        IF (flag_alp(iff)<=lev_files(iff)) THEN
    642        CALL histwrite_phy(nid_files(iff),"alp",itau_w,alp)
    643        ENDIF
    644        IF (flag_cin(iff)<=lev_files(iff)) THEN
    645        CALL histwrite_phy(nid_files(iff),"cin",itau_w,cin)
    646        ENDIF
    647       IF (iflag_coupl.EQ.1) THEN
    648        IF (flag_ale_bl(iff)<=lev_files(iff)) THEN
    649        CALL histwrite_phy(nid_files(iff),"ale_bl",itau_w,ale_bl)
    650        ENDIF
    651        IF (flag_alp_bl(iff)<=lev_files(iff)) THEN
    652        CALL histwrite_phy(nid_files(iff),"alp_bl",itau_w,alp_bl)
    653        ENDIF
    654       ENDIF !iflag_coupl.EQ.1
    655 
    656654      IF (iflag_wake.EQ.1) THEN
    657        IF (flag_ale_wk(iff)<=lev_files(iff)) THEN
    658        CALL histwrite_phy(nid_files(iff),"ale_wk",itau_w,ale_wake)
    659        ENDIF
    660        IF (flag_alp_wk(iff)<=lev_files(iff)) THEN
    661        CALL histwrite_phy(nid_files(iff),"alp_wk",itau_w,alp_wake)
    662        ENDIF
    663 
    664        IF (flag_wape(iff)<=lev_files(iff)) THEN
    665        CALL histwrite_phy(nid_files(iff),"WAPE",itau_w,wake_pe)
    666        ENDIF
    667        IF (flag_wake_h(iff)<=lev_files(iff)) THEN
    668       CALL histwrite_phy(nid_files(iff),"wake_h",itau_w,wake_h)
    669        ENDIF
    670 
    671        IF (flag_wake_s(iff)<=lev_files(iff)) THEN
    672       CALL histwrite_phy(nid_files(iff),"wake_s",itau_w,wake_s)
    673        ENDIF
    674 
    675         IF (flag_wake_deltat(iff)<=lev_files(iff)) THEN
    676        CALL histwrite_phy(nid_files(iff),"wake_deltat",
     655       IF (o_ale_wk%flag(iff)<=lev_files(iff)) THEN
     656       CALL histwrite_phy(nid_files(iff),o_ale_wk%name,itau_w,ale_wake)
     657       ENDIF
     658       IF (o_alp_wk%flag(iff)<=lev_files(iff)) THEN
     659       CALL histwrite_phy(nid_files(iff),o_alp_wk%name,itau_w,alp_wake)
     660       ENDIF
     661
     662       IF (o_ale%flag(iff)<=lev_files(iff)) THEN
     663       CALL histwrite_phy(nid_files(iff),o_ale%name,itau_w,ale)
     664       ENDIF
     665       IF (o_alp%flag(iff)<=lev_files(iff)) THEN
     666       CALL histwrite_phy(nid_files(iff),o_alp%name,itau_w,alp)
     667       ENDIF
     668       IF (o_cin%flag(iff)<=lev_files(iff)) THEN
     669       CALL histwrite_phy(nid_files(iff),o_cin%name,itau_w,cin)
     670       ENDIF
     671       IF (o_wape%flag(iff)<=lev_files(iff)) THEN
     672       CALL histwrite_phy(nid_files(iff),o_WAPE%name,itau_w,wake_pe)
     673       ENDIF
     674       IF (o_wake_h%flag(iff)<=lev_files(iff)) THEN
     675      CALL histwrite_phy(nid_files(iff),o_wake_h%name,itau_w,wake_h)
     676       ENDIF
     677
     678       IF (o_wake_s%flag(iff)<=lev_files(iff)) THEN
     679      CALL histwrite_phy(nid_files(iff),o_wake_s%name,itau_w,wake_s)
     680       ENDIF
     681
     682        IF (o_wake_deltat%flag(iff)<=lev_files(iff)) THEN
     683       CALL histwrite_phy(nid_files(iff),o_wake_deltat%name,
    677684     $                     itau_w,wake_deltat)
    678685        ENDIF
    679686
    680         IF (flag_wake_deltaq(iff)<=lev_files(iff)) THEN
    681        CALL histwrite_phy(nid_files(iff),"wake_deltaq",
     687        IF (o_wake_deltaq%flag(iff)<=lev_files(iff)) THEN
     688       CALL histwrite_phy(nid_files(iff),o_wake_deltaq%name,
    682689     $                    itau_w,wake_deltaq)
    683690        ENDIF
    684691
    685         IF (flag_wake_omg(iff)<=lev_files(iff)) THEN
    686        CALL histwrite_phy(nid_files(iff),"wake_omg",itau_w,wake_omg)
    687         ENDIF
    688 !!!IM beg
    689         IF (flag_dtwak(iff)<=lev_files(iff)) THEN
    690           zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev)
     692        IF (o_wake_omg%flag(iff)<=lev_files(iff)) THEN
     693       CALL histwrite_phy(nid_files(iff),
     694     s                    o_wake_omg%name,itau_w,wake_omg)
     695        ENDIF
     696
     697         IF (o_dtwak%flag(iff)<=lev_files(iff)) THEN
     698           zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev)
    691699     &                                        /pdtphys
    692           CALL histwrite_phy(nid_files(iff),"dtwak",itau_w,zx_tmp_fi3d)
    693         ENDIF
    694 
    695         IF (flag_dqwak(iff)<=lev_files(iff)) THEN
    696          zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
    697          CALL histwrite_phy(nid_files(iff),"dqwak",itau_w,zx_tmp_fi3d)
    698         ENDIF
    699 
    700         IF (flag_ftd(iff)<=lev_files(iff)) THEN
    701        CALL histwrite_phy(nid_files(iff),"ftd",itau_w,ftd)
    702         ENDIF
    703 
    704         IF (flag_fqd(iff)<=lev_files(iff)) THEN
    705        CALL histwrite_phy(nid_files(iff),"fqd",itau_w,fqd)
    706         ENDIF
    707 !!!IM end
    708       ENDIF
    709 
    710        IF (flag_Vprecip(iff)<=lev_files(iff)) THEN
    711         CALL histwrite_phy(nid_files(iff),"Vprecip",itau_w,Vprecip)
    712        ENDIF
    713 
     700           CALL histwrite_phy(nid_files(iff),
     701     &                       o_dtwak%name,itau_w,zx_tmp_fi3d)
     702         ENDIF
     703
     704        IF (o_dqwak%flag(iff)<=lev_files(iff)) THEN
     705        zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
     706        CALL histwrite_phy(nid_files(iff),
     707     &                     o_dqwak%name,itau_w,zx_tmp_fi3d)
     708        ENDIF
     709      ENDIF ! iflag_wake.EQ.1
     710
     711        IF (o_Vprecip%flag(iff)<=lev_files(iff)) THEN
     712       CALL histwrite_phy(nid_files(iff),o_Vprecip%name,itau_w,Vprecip)
     713        ENDIF
     714
     715        IF (o_ftd%flag(iff)<=lev_files(iff)) THEN
     716       CALL histwrite_phy(nid_files(iff),o_ftd%name,itau_w,ftd)
     717        ENDIF
     718
     719        IF (o_fqd%flag(iff)<=lev_files(iff)) THEN
     720       CALL histwrite_phy(nid_files(iff),o_fqd%name,itau_w,fqd)
     721        ENDIF
    714722      ENDIF !(iflag_con.EQ.3)
    715723 
    716       ELSE IF (type_ocean=='slab  ') THEN
    717 
    718       IF ( flag_slab_bils(iff)<=lev_files(iff))
     724      IF (type_ocean=='slab ') THEN
     725      IF ( o_slab_bils%flag(iff)<=lev_files(iff))
    719726     $     CALL histwrite_phy(
    720      $     nid_files(iff),"slab_wbils_oce",itau_w,slab_wfbils)
     727     $     nid_files(iff),o_slab_bils%name,itau_w,slab_wfbils)
    721728
    722729      ENDIF !type_ocean == force/slab
    723730
    724       IF (flag_weakinv(iff)<=lev_files(iff)) THEN
    725       CALL histwrite_phy(nid_files(iff),"weakinv",itau_w,weak_inversion)
    726       ENDIF
    727 
    728       IF (flag_dthmin(iff)<=lev_files(iff)) THEN
    729       CALL histwrite_phy(nid_files(iff),"dthmin",itau_w,dthmin)
    730       ENDIF
    731 
    732        IF (flag_cldtau(iff)<=lev_files(iff)) THEN
    733        CALL histwrite_phy(nid_files(iff),"cldtau",itau_w,cldtau)
    734        ENDIF
    735 
    736        IF (flag_cldemi(iff)<=lev_files(iff)) THEN
    737        CALL histwrite_phy(nid_files(iff),"cldemi",itau_w,cldemi)
    738        ENDIF
    739 
    740 !      IF (flag_pr_con_l(iff)<=lev_files(iff)) THEN
    741 !      CALL histwrite_phy(nid_files(iff),"pmflxr",itau_w,pmflxr)
     731      IF (o_weakinv%flag(iff)<=lev_files(iff)) THEN
     732      CALL histwrite_phy(nid_files(iff),
     733     s                  o_weakinv%name,itau_w,weak_inversion)
     734      ENDIF
     735
     736      IF (o_dthmin%flag(iff)<=lev_files(iff)) THEN
     737      CALL histwrite_phy(nid_files(iff),o_dthmin%name,itau_w,dthmin)
     738      ENDIF
     739
     740       IF (o_cldtau%flag(iff)<=lev_files(iff)) THEN
     741       CALL histwrite_phy(nid_files(iff),o_cldtau%name,itau_w,cldtau)
     742       ENDIF
     743
     744       IF (o_cldemi%flag(iff)<=lev_files(iff)) THEN
     745       CALL histwrite_phy(nid_files(iff),o_cldemi%name,itau_w,cldemi)
     746       ENDIF
     747
     748!      IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN
     749!      CALL histwrite_phy(nid_files(iff),o_pmflxr%name,itau_w,pmflxr)
    742750!      ENDIF
    743751
    744 !      IF (flag_pr_con_i(iff)<=lev_files(iff)) THEN
    745 !      CALL histwrite_phy(nid_files(iff),"pmflxs",itau_w,pmflxs)
     752!      IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN
     753!      CALL histwrite_phy(nid_files(iff),o_pmflxs%name,itau_w,pmflxs)
    746754!      ENDIF
    747755
    748 !      IF (flag_pr_lsc_l(iff)<=lev_files(iff)) THEN
    749 !      CALL histwrite_phy(nid_files(iff),"prfl",itau_w,prfl)
     756!      IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN
     757!      CALL histwrite_phy(nid_files(iff),o_prfl%name,itau_w,prfl)
    750758!      ENDIF
    751759
    752 !      IF (flag_pr_lsc_i(iff)<=lev_files(iff)) THEN
    753 !      CALL histwrite_phy(nid_files(iff),"psfl",itau_w,psfl)
     760!      IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN
     761!      CALL histwrite_phy(nid_files(iff),o_psfl%name,itau_w,psfl)
    754762!      ENDIF
    755763
    756       IF (flag_rh2m(iff)<=lev_files(iff)) THEN
     764      IF (o_rh2m%flag(iff)<=lev_files(iff)) THEN
    757765      DO i=1, klon
    758766       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
    759767      ENDDO
    760       CALL histwrite_phy(nid_files(iff),"rh2m",itau_w,zx_tmp_fi2d)
    761       ENDIF
    762 
    763       IF (flag_qsat2m(iff)<=lev_files(iff)) THEN
    764       CALL histwrite_phy(nid_files(iff),"qsat2m",itau_w,qsat2m)
    765       ENDIF
    766 
    767       IF (flag_tpot(iff)<=lev_files(iff)) THEN
    768       CALL histwrite_phy(nid_files(iff),"tpot",itau_w,tpot)
    769       ENDIF
    770 
    771        IF (flag_tpote(iff)<=lev_files(iff)) THEN
    772       CALL histwrite_phy(nid_files(iff),"tpote",itau_w,tpote)
    773        ENDIF
    774 
    775       IF (flag_SWnetOR(iff)<=lev_files(iff)) THEN
     768      CALL histwrite_phy(nid_files(iff),o_rh2m%name,itau_w,zx_tmp_fi2d)
     769      ENDIF
     770
     771      IF (o_qsat2m%flag(iff)<=lev_files(iff)) THEN
     772      CALL histwrite_phy(nid_files(iff),o_qsat2m%name,itau_w,qsat2m)
     773      ENDIF
     774
     775      IF (o_tpot%flag(iff)<=lev_files(iff)) THEN
     776      CALL histwrite_phy(nid_files(iff),o_tpot%name,itau_w,tpot)
     777      ENDIF
     778
     779       IF (o_tpote%flag(iff)<=lev_files(iff)) THEN
     780      CALL histwrite_phy(nid_files(iff),o_tpote%name,itau_w,tpote)
     781       ENDIF
     782
     783      IF (o_SWnetOR%flag(iff)<=lev_files(iff)) THEN
    776784      zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
    777       CALL histwrite_phy(nid_files(iff),"SWnetOR",itau_w, zx_tmp_fi2d)
    778       ENDIF
    779 
    780       IF (flag_SWdownOR(iff)<=lev_files(iff)) THEN
     785      CALL histwrite_phy(nid_files(iff),
     786     s                   o_SWnetOR%name,itau_w, zx_tmp_fi2d)
     787      ENDIF
     788
     789      IF (o_SWdownOR%flag(iff)<=lev_files(iff)) THEN
    781790      zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
    782       CALL histwrite_phy(nid_files(iff),"SWdownOR",itau_w, zx_tmp_fi2d)
    783       ENDIF
    784 
    785       IF (flag_LWdownOR(iff)<=lev_files(iff)) THEN
    786       CALL histwrite_phy(nid_files(iff),"LWdownOR",itau_w,sollwdown)
    787       ENDIF
    788 
    789       IF (flag_snowl(iff)<=lev_files(iff)) THEN
    790       CALL histwrite_phy(nid_files(iff),"snowl",itau_w,snow_lsc)
    791       ENDIF
    792 
    793       IF (flag_solldown(iff)<=lev_files(iff)) THEN
    794       CALL histwrite_phy(nid_files(iff),"solldown",itau_w,sollwdown)
    795       ENDIF
    796 
    797       IF (flag_dtsvdfo(iff)<=lev_files(iff)) THEN
    798       CALL histwrite_phy(nid_files(iff),"dtsvdfo",itau_w,d_ts(:,is_oce))
    799       ENDIF
    800 
    801       IF (flag_dtsvdft(iff)<=lev_files(iff)) THEN
    802       CALL histwrite_phy(nid_files(iff),"dtsvdft",itau_w,d_ts(:,is_ter))
    803       ENDIF
    804 
    805        IF (flag_dtsvdfg(iff)<=lev_files(iff)) THEN
    806         CALL histwrite_phy(nid_files(iff),
    807      $                     "dtsvdfg",itau_w, d_ts(:,is_lic))
    808        ENDIF
    809 
    810        IF (flag_dtsvdfi(iff)<=lev_files(iff)) THEN
    811       CALL histwrite_phy(nid_files(iff),"dtsvdfi",itau_w,d_ts(:,is_sic))
    812        ENDIF
    813 
    814        IF (flag_rugs(iff)<=lev_files(iff)) THEN
    815       CALL histwrite_phy(nid_files(iff),"rugs",itau_w,zxrugs)
     791      CALL histwrite_phy(nid_files(iff),
     792     s                   o_SWdownOR%name,itau_w, zx_tmp_fi2d)
     793      ENDIF
     794
     795      IF (o_LWdownOR%flag(iff)<=lev_files(iff)) THEN
     796      CALL histwrite_phy(nid_files(iff),
     797     s                  o_LWdownOR%name,itau_w,sollwdown)
     798      ENDIF
     799
     800      IF (o_snowl%flag(iff)<=lev_files(iff)) THEN
     801      CALL histwrite_phy(nid_files(iff),o_snowl%name,itau_w,snow_lsc)
     802      ENDIF
     803
     804      IF (o_solldown%flag(iff)<=lev_files(iff)) THEN
     805      CALL histwrite_phy(nid_files(iff),
     806     s                   o_solldown%name,itau_w,sollwdown)
     807      ENDIF
     808
     809      IF (o_dtsvdfo%flag(iff)<=lev_files(iff)) THEN
     810      CALL histwrite_phy(nid_files(iff),
     811     s                 o_dtsvdfo%name,itau_w,d_ts(:,is_oce))
     812      ENDIF
     813
     814      IF (o_dtsvdft%flag(iff)<=lev_files(iff)) THEN
     815      CALL histwrite_phy(nid_files(iff),
     816     s                   o_dtsvdft%name,itau_w,d_ts(:,is_ter))
     817      ENDIF
     818
     819       IF (o_dtsvdfg%flag(iff)<=lev_files(iff)) THEN
     820        CALL histwrite_phy(nid_files(iff),
     821     $                   o_dtsvdfg%name,itau_w, d_ts(:,is_lic))
     822       ENDIF
     823
     824       IF (o_dtsvdfi%flag(iff)<=lev_files(iff)) THEN
     825      CALL histwrite_phy(nid_files(iff),
     826     s                   o_dtsvdfi%name,itau_w,d_ts(:,is_sic))
     827       ENDIF
     828
     829       IF (o_rugs%flag(iff)<=lev_files(iff)) THEN
     830      CALL histwrite_phy(nid_files(iff),o_rugs%name,itau_w,zxrugs)
     831       ENDIF
     832
     833       IF (ok_ade) THEN
     834        IF (o_topswad%flag(iff)<=lev_files(iff)) THEN
     835      CALL histwrite_phy(nid_files(iff),o_topswad%name,itau_w,topswad)
     836        ENDIF
     837        IF (o_solswad%flag(iff)<=lev_files(iff)) THEN
     838      CALL histwrite_phy(nid_files(iff),o_solswad%name,itau_w,solswad)
     839        ENDIF
     840       ENDIF
     841
     842       IF (ok_aie) THEN
     843        IF (o_topswai%flag(iff)<=lev_files(iff)) THEN
     844      CALL histwrite_phy(nid_files(iff),o_topswai%name,itau_w,topswai)
     845        ENDIF
     846        IF (o_solswai%flag(iff)<=lev_files(iff)) THEN
     847      CALL histwrite_phy(nid_files(iff),o_solswai%name,itau_w,solswai)
     848        ENDIF
    816849       ENDIF
    817850
    818851! Champs 3D:
    819        IF (flag_lwcon(iff)<=lev_files(iff)) THEN
    820       CALL histwrite_phy(nid_files(iff),"lwcon",itau_w,flwc)
    821        ENDIF
    822 
    823        IF (flag_iwcon(iff)<=lev_files(iff)) THEN
    824       CALL histwrite_phy(nid_files(iff),"iwcon",itau_w,fiwc)
    825        ENDIF
    826 
    827        IF (flag_temp(iff)<=lev_files(iff)) THEN
    828       CALL histwrite_phy(nid_files(iff),"temp",itau_w,t_seri)
    829        ENDIF
    830 
    831        IF (flag_theta(iff)<=lev_files(iff)) THEN
    832       CALL histwrite_phy(nid_files(iff),"theta",itau_w,theta)
    833        ENDIF
    834 
    835        IF (flag_ovap(iff)<=lev_files(iff)) THEN
    836       CALL histwrite_phy(nid_files(iff),"ovap",itau_w,qx(:,:,ivap))
    837        ENDIF
    838 
    839        IF (flag_geop(iff)<=lev_files(iff)) THEN
    840       CALL histwrite_phy(nid_files(iff),"geop",itau_w,zphi)
    841        ENDIF
    842 
    843        IF (flag_vitu(iff)<=lev_files(iff)) THEN
    844       CALL histwrite_phy(nid_files(iff),"vitu",itau_w,u_seri)
    845        ENDIF
    846 
    847        IF (flag_vitv(iff)<=lev_files(iff)) THEN
    848       CALL histwrite_phy(nid_files(iff),"vitv",itau_w,v_seri)
    849        ENDIF
    850 
    851        IF (flag_vitw(iff)<=lev_files(iff)) THEN
    852       CALL histwrite_phy(nid_files(iff),"vitw",itau_w,omega)
    853        ENDIF
    854 
    855         IF (flag_pres(iff)<=lev_files(iff)) THEN
    856       CALL histwrite_phy(nid_files(iff),"pres",itau_w,pplay)
    857         ENDIF
    858 
    859        IF (flag_rneb(iff)<=lev_files(iff)) THEN
    860       CALL histwrite_phy(nid_files(iff),"rneb",itau_w,cldfra)
    861        ENDIF
    862 
    863        IF (flag_rnebcon(iff)<=lev_files(iff)) THEN
    864       CALL histwrite_phy(nid_files(iff),"rnebcon",itau_w,rnebcon)
    865        ENDIF
    866 
    867        IF (flag_rhum(iff)<=lev_files(iff)) THEN
    868       CALL histwrite_phy(nid_files(iff),"rhum",itau_w,zx_rh)
    869        ENDIF
    870 
    871       IF (flag_ozone(iff)<=lev_files(iff)) THEN
     852       IF (o_lwcon%flag(iff)<=lev_files(iff)) THEN
     853      CALL histwrite_phy(nid_files(iff),o_lwcon%name,itau_w,flwc)
     854       ENDIF
     855
     856       IF (o_iwcon%flag(iff)<=lev_files(iff)) THEN
     857      CALL histwrite_phy(nid_files(iff),o_iwcon%name,itau_w,fiwc)
     858       ENDIF
     859
     860       IF (o_temp%flag(iff)<=lev_files(iff)) THEN
     861      CALL histwrite_phy(nid_files(iff),o_temp%name,itau_w,t_seri)
     862       ENDIF
     863
     864       IF (o_theta%flag(iff)<=lev_files(iff)) THEN
     865      CALL histwrite_phy(nid_files(iff),o_theta%name,itau_w,theta)
     866       ENDIF
     867
     868       IF (o_ovap%flag(iff)<=lev_files(iff)) THEN
     869      CALL histwrite_phy(nid_files(iff),o_ovap%name,itau_w,qx(:,:,ivap))
     870       ENDIF
     871
     872       IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN
     873      CALL histwrite_phy(nid_files(iff),
     874     $                   o_ovapinit%name,itau_w,q_seri)
     875       ENDIF
     876
     877       IF (o_geop%flag(iff)<=lev_files(iff)) THEN
     878      CALL histwrite_phy(nid_files(iff),o_geop%name,itau_w,zphi)
     879       ENDIF
     880
     881       IF (o_vitu%flag(iff)<=lev_files(iff)) THEN
     882      CALL histwrite_phy(nid_files(iff),o_vitu%name,itau_w,u_seri)
     883       ENDIF
     884
     885       IF (o_vitv%flag(iff)<=lev_files(iff)) THEN
     886      CALL histwrite_phy(nid_files(iff),o_vitv%name,itau_w,v_seri)
     887       ENDIF
     888
     889       IF (o_vitw%flag(iff)<=lev_files(iff)) THEN
     890      CALL histwrite_phy(nid_files(iff),o_vitw%name,itau_w,omega)
     891       ENDIF
     892
     893        IF (o_pres%flag(iff)<=lev_files(iff)) THEN
     894      CALL histwrite_phy(nid_files(iff),o_pres%name,itau_w,pplay)
     895        ENDIF
     896
     897       IF (o_rneb%flag(iff)<=lev_files(iff)) THEN
     898      CALL histwrite_phy(nid_files(iff),o_rneb%name,itau_w,cldfra)
     899       ENDIF
     900
     901       IF (o_rnebcon%flag(iff)<=lev_files(iff)) THEN
     902      CALL histwrite_phy(nid_files(iff),o_rnebcon%name,itau_w,rnebcon)
     903       ENDIF
     904
     905       IF (o_rhum%flag(iff)<=lev_files(iff)) THEN
     906      CALL histwrite_phy(nid_files(iff),o_rhum%name,itau_w,zx_rh)
     907       ENDIF
     908
     909      IF (o_ozone%flag(iff)<=lev_files(iff)) THEN
    872910      DO k=1, klev
    873911       DO i=1, klon
     
    877915       ENDDO !i
    878916      ENDDO !k
    879       CALL histwrite_phy(nid_files(iff),"ozone",itau_w,zx_tmp_fi3d)
    880       ENDIF
    881 
    882        IF (flag_dtphy(iff)<=lev_files(iff)) THEN
    883       CALL histwrite_phy(nid_files(iff),"dtphy",itau_w,d_t)
    884        ENDIF
    885 
    886        IF (flag_dqphy(iff)<=lev_files(iff)) THEN
    887       CALL histwrite_phy(nid_files(iff),"dqphy",itau_w, d_qx(:,:,ivap))
     917      CALL histwrite_phy(nid_files(iff),o_ozone%name,itau_w,zx_tmp_fi3d)
     918      ENDIF
     919
     920       IF (o_dtphy%flag(iff)<=lev_files(iff)) THEN
     921      CALL histwrite_phy(nid_files(iff),o_dtphy%name,itau_w,d_t)
     922       ENDIF
     923
     924       IF (o_dqphy%flag(iff)<=lev_files(iff)) THEN
     925      CALL histwrite_phy(nid_files(iff),
     926     s                  o_dqphy%name,itau_w, d_qx(:,:,ivap))
    888927       ENDIF
    889928
    890929        DO nsrf=1, nbsrf
    891         IF (flag_albe_sol(iff)<=lev_files(iff)) THEN
     930        IF (o_albe_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    892931        zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
    893         CALL histwrite_phy(nid_files(iff),"albe_"//clnsurf(nsrf),itau_w,
     932        CALL histwrite_phy(nid_files(iff),
     933     s                    o_albe_srf(nsrf)%name,itau_w,
     934     $                     zx_tmp_fi2d)
     935        ENDIF
     936
     937        IF (o_rugs_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 
     938        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
     939        CALL histwrite_phy(nid_files(iff),
     940     s                     o_rugs_srf(nsrf)%name,itau_w,
    894941     $      zx_tmp_fi2d)
    895942        ENDIF
    896943
    897         IF (flag_rugs_sol(iff)<=lev_files(iff)) THEN 
    898         zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
    899         CALL histwrite_phy(nid_files(iff),"rugs_"//clnsurf(nsrf),itau_w,
    900      $      zx_tmp_fi2d)
    901         ENDIF
    902 
    903         IF (flag_ages_sol(iff)<=lev_files(iff)) THEN
     944        IF (o_ages_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    904945        zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
    905         CALL histwrite_phy(nid_files(iff),"ages_"//clnsurf(nsrf),itau_w
     946        CALL histwrite_phy(nid_files(iff),
     947     s                     o_ages_srf(nsrf)%name,itau_w
    906948     $    ,zx_tmp_fi2d)
    907949        ENDIF
    908950        ENDDO !nsrf=1, nbsrf
    909951
    910        IF (flag_albs(iff)<=lev_files(iff)) THEN
    911       CALL histwrite_phy(nid_files(iff),"albs",itau_w,albsol1)
    912        ENDIF
    913 
    914        IF (flag_albslw(iff)<=lev_files(iff)) THEN
    915       CALL histwrite_phy(nid_files(iff),"albslw",itau_w,albsol2)
     952       IF (o_albs%flag(iff)<=lev_files(iff)) THEN
     953      CALL histwrite_phy(nid_files(iff),o_albs%name,itau_w,albsol1)
     954       ENDIF
     955
     956       IF (o_albslw%flag(iff)<=lev_files(iff)) THEN
     957      CALL histwrite_phy(nid_files(iff),o_albslw%name,itau_w,albsol2)
    916958       ENDIF
    917959
     
    925967         enddo
    926968      enddo
    927        IF (flag_tke(iff)<=lev_files(iff)) THEN
    928       CALL histwrite_phy(nid_files(iff),"tke",itau_w,zx_tmp_fi3d)
    929        ENDIF
    930 
    931        IF (flag_tke_max(iff)<=lev_files(iff)) THEN
    932       CALL histwrite_phy(nid_files(iff),"tke_max",itau_w,zx_tmp_fi3d)
     969       IF (o_tke%flag(iff)<=lev_files(iff)) THEN
     970      CALL histwrite_phy(nid_files(iff),o_tke%name,itau_w,zx_tmp_fi3d)
     971       ENDIF
     972
     973       IF (o_tke_max%flag(iff)<=lev_files(iff)) THEN
     974      CALL histwrite_phy(nid_files(iff),
     975     s                   o_tke_max%name,itau_w,zx_tmp_fi3d)
    933976       ENDIF
    934977      endif
    935978
    936        IF (flag_kz(iff)<=lev_files(iff)) THEN
    937       ! combinaision de cdrag et le coef melange dans la meme variable
    938       zx_tmp_fi3d(:,1)     = cdragh(:)
    939       zx_tmp_fi3d(:,2:klev)= coefh(:,2:klev)
    940       CALL histwrite_phy(nid_files(iff),"kz",itau_w,zx_tmp_fi3d)
    941        ENDIF
    942 
    943        IF (flag_kz_max(iff)<=lev_files(iff)) THEN
    944       ! combinaision de cdrag et le coef melange dans la meme variable
    945       zx_tmp_fi3d(:,1)     = cdragh(:)
    946       zx_tmp_fi3d(:,2:klev)= coefh(:,2:klev)
    947       CALL histwrite_phy(nid_files(iff),"kz_max",itau_w,zx_tmp_fi3d)
    948        ENDIF
    949 
    950        IF (flag_clwcon(iff)<=lev_files(iff)) THEN
    951       CALL histwrite_phy(nid_files(iff),"clwcon",itau_w,clwcon0)
    952        ENDIF
    953 
    954        IF (flag_dtdyn(iff)<=lev_files(iff)) THEN
    955       CALL histwrite_phy(nid_files(iff),"dtdyn",itau_w,d_t_dyn)
    956        ENDIF
    957 
    958        IF (flag_dqdyn(iff)<=lev_files(iff)) THEN
    959       CALL histwrite_phy(nid_files(iff),"dqdyn",itau_w,d_q_dyn)
    960        ENDIF
    961 
    962        IF (flag_dudyn(iff)<=lev_files(iff)) THEN
    963       CALL histwrite_phy(nid_files(iff),"dudyn",itau_w,d_u_dyn)
     979       IF (o_kz%flag(iff)<=lev_files(iff)) THEN
     980      CALL histwrite_phy(nid_files(iff),o_kz%name,itau_w,coefh)
     981       ENDIF
     982
     983       IF (o_kz_max%flag(iff)<=lev_files(iff)) THEN
     984      CALL histwrite_phy(nid_files(iff),o_kz_max%name,itau_w,coefh)
     985       ENDIF
     986
     987       IF (o_clwcon%flag(iff)<=lev_files(iff)) THEN
     988      CALL histwrite_phy(nid_files(iff),o_clwcon%name,itau_w,clwcon0)
     989       ENDIF
     990
     991       IF (o_dtdyn%flag(iff)<=lev_files(iff)) THEN
     992      CALL histwrite_phy(nid_files(iff),o_dtdyn%name,itau_w,d_t_dyn)
     993       ENDIF
     994
     995       IF (o_dqdyn%flag(iff)<=lev_files(iff)) THEN
     996      CALL histwrite_phy(nid_files(iff),o_dqdyn%name,itau_w,d_q_dyn)
     997       ENDIF
     998
     999       IF (o_dudyn%flag(iff)<=lev_files(iff)) THEN
     1000      CALL histwrite_phy(nid_files(iff),o_dudyn%name,itau_w,d_u_dyn)
    9641001       ENDIF                                                   
    9651002
    966        IF (flag_dvdyn(iff)<=lev_files(iff)) THEN                 
    967       CALL histwrite_phy(nid_files(iff),"dvdyn",itau_w,d_v_dyn) 
     1003       IF (o_dvdyn%flag(iff)<=lev_files(iff)) THEN                 
     1004      CALL histwrite_phy(nid_files(iff),o_dvdyn%name,itau_w,d_v_dyn) 
    9681005       ENDIF                                                     
    9691006
    970        IF (flag_dtcon(iff)<=lev_files(iff)) THEN
     1007       IF (o_dtcon%flag(iff)<=lev_files(iff)) THEN
    9711008      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
    972       CALL histwrite_phy(nid_files(iff),"dtcon",itau_w,zx_tmp_fi3d)
    973        ENDIF
    974 
    975        IF (flag_ducon(iff)<=lev_files(iff)) THEN
     1009      CALL histwrite_phy(nid_files(iff),o_dtcon%name,itau_w,zx_tmp_fi3d)
     1010       ENDIF
     1011
     1012       IF (o_ducon%flag(iff)<=lev_files(iff)) THEN
    9761013      zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
    977       CALL histwrite_phy(nid_files(iff),"ducon",itau_w,zx_tmp_fi3d)
    978        ENDIF
    979 
    980        IF (flag_dqcon(iff)<=lev_files(iff)) THEN
     1014      CALL histwrite_phy(nid_files(iff),o_ducon%name,itau_w,zx_tmp_fi3d)
     1015       ENDIF
     1016
     1017       IF (o_dqcon%flag(iff)<=lev_files(iff)) THEN
    9811018      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    982       CALL histwrite_phy(nid_files(iff),"dqcon",itau_w,zx_tmp_fi3d)
    983        ENDIF
    984 
    985        IF (flag_dtlsc(iff)<=lev_files(iff)) THEN
     1019      CALL histwrite_phy(nid_files(iff),o_dqcon%name,itau_w,zx_tmp_fi3d)
     1020       ENDIF
     1021
     1022       IF (o_dtlsc%flag(iff)<=lev_files(iff)) THEN
    9861023      zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
    987       CALL histwrite_phy(nid_files(iff),"dtlsc",itau_w,zx_tmp_fi3d)
    988        ENDIF
    989 
    990        IF (flag_dtlschr(iff)<=lev_files(iff)) THEN
     1024      CALL histwrite_phy(nid_files(iff),o_dtlsc%name,itau_w,zx_tmp_fi3d)
     1025       ENDIF
     1026
     1027       IF (o_dtlschr%flag(iff)<=lev_files(iff)) THEN
    9911028      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
    9921029     $                           d_t_eva(1:klon,1:klev))/pdtphys
    993       CALL histwrite_phy(nid_files(iff),"dtlschr",itau_w,zx_tmp_fi3d)
    994        ENDIF
    995 
    996        IF (flag_dqlsc(iff)<=lev_files(iff)) THEN
     1030      CALL histwrite_phy(nid_files(iff),
     1031     s                   o_dtlschr%name,itau_w,zx_tmp_fi3d)
     1032       ENDIF
     1033
     1034       IF (o_dqlsc%flag(iff)<=lev_files(iff)) THEN
    9971035      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
    998       CALL histwrite_phy(nid_files(iff),"dqlsc",itau_w,zx_tmp_fi3d)
    999        ENDIF
    1000 
    1001        IF (flag_dtvdf(iff)<=lev_files(iff)) THEN
     1036      CALL histwrite_phy(nid_files(iff),o_dqlsc%name,itau_w,zx_tmp_fi3d)
     1037       ENDIF
     1038
     1039       IF (o_dtvdf%flag(iff)<=lev_files(iff)) THEN
    10021040      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
    1003       CALL histwrite_phy(nid_files(iff),"dtvdf",itau_w,zx_tmp_fi3d)
    1004        ENDIF
    1005 
    1006        IF (flag_dqvdf(iff)<=lev_files(iff)) THEN
     1041      CALL histwrite_phy(nid_files(iff),o_dtvdf%name,itau_w,zx_tmp_fi3d)
     1042       ENDIF
     1043
     1044       IF (o_dqvdf%flag(iff)<=lev_files(iff)) THEN
    10071045      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
    1008       CALL histwrite_phy(nid_files(iff),"dqvdf",itau_w,zx_tmp_fi3d)
    1009        ENDIF
    1010 
    1011        IF (flag_dteva(iff)<=lev_files(iff)) THEN
     1046      CALL histwrite_phy(nid_files(iff),o_dqvdf%name,itau_w,zx_tmp_fi3d)
     1047       ENDIF
     1048
     1049       IF (o_dteva%flag(iff)<=lev_files(iff)) THEN
    10121050      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
    1013       CALL histwrite_phy(nid_files(iff),"dteva",itau_w,zx_tmp_fi3d)
    1014        ENDIF
    1015 
    1016        IF (flag_dqeva(iff)<=lev_files(iff)) THEN
     1051      CALL histwrite_phy(nid_files(iff),o_dteva%name,itau_w,zx_tmp_fi3d)
     1052       ENDIF
     1053
     1054       IF (o_dqeva%flag(iff)<=lev_files(iff)) THEN
    10171055      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
    1018       CALL histwrite_phy(nid_files(iff),"dqeva",itau_w,zx_tmp_fi3d)
    1019        ENDIF
    1020 
    1021        IF (flag_ptconv(iff)<=lev_files(iff)) THEN
     1056      CALL histwrite_phy(nid_files(iff),o_dqeva%name,itau_w,zx_tmp_fi3d)
     1057       ENDIF
     1058
     1059       IF (o_ptconv%flag(iff)<=lev_files(iff)) THEN
    10221060      zpt_conv = 0.
    10231061      where (ptconv) zpt_conv = 1.
    1024       CALL histwrite_phy(nid_files(iff),"ptconv",itau_w,zpt_conv)
    1025        ENDIF
    1026 
    1027        IF (flag_ratqs(iff)<=lev_files(iff)) THEN
    1028       CALL histwrite_phy(nid_files(iff),"ratqs",itau_w,ratqs)
    1029        ENDIF
    1030 
    1031        IF (flag_dtthe(iff)<=lev_files(iff)) THEN
     1062      CALL histwrite_phy(nid_files(iff),o_ptconv%name,itau_w,zpt_conv)
     1063       ENDIF
     1064
     1065       IF (o_ratqs%flag(iff)<=lev_files(iff)) THEN
     1066      CALL histwrite_phy(nid_files(iff),o_ratqs%name,itau_w,ratqs)
     1067       ENDIF
     1068
     1069       IF (o_dtthe%flag(iff)<=lev_files(iff)) THEN
    10321070      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys
    1033       CALL histwrite_phy(nid_files(iff),"dtthe",itau_w,zx_tmp_fi3d)
     1071      CALL histwrite_phy(nid_files(iff),o_dtthe%name,itau_w,zx_tmp_fi3d)
    10341072       ENDIF
    10351073
    10361074       IF (iflag_thermals.gt.1) THEN
    1037         IF (flag_f_th(iff)<=lev_files(iff)) THEN
    1038         CALL histwrite_phy(nid_files(iff),"f_th",itau_w,fm_therm)
    1039         ENDIF
    1040 
    1041         IF (flag_e_th(iff)<=lev_files(iff)) THEN
    1042         CALL histwrite_phy(nid_files(iff),"e_th",itau_w,entr_therm)
    1043         ENDIF
    1044 
    1045         IF (flag_w_th(iff)<=lev_files(iff)) THEN
    1046         CALL histwrite_phy(nid_files(iff),"w_th",itau_w,zw2)
    1047         ENDIF
    1048 
    1049         IF (flag_q_th(iff)<=lev_files(iff)) THEN
    1050         CALL histwrite_phy(nid_files(iff),"q_th",itau_w,zqasc)
    1051         ENDIF
    1052 
    1053         IF (flag_lambda_th(iff)<=lev_files(iff)) THEN
    1054         CALL histwrite_phy(nid_files(iff),"lambda_th",itau_w,lambda_th)
    1055         ENDIF
    1056 
    1057         IF (flag_a_th(iff)<=lev_files(iff)) THEN
    1058         CALL histwrite_phy(nid_files(iff),"a_th",itau_w,fraca)
    1059         ENDIF
    1060 
    1061        IF (flag_d_th(iff)<=lev_files(iff)) THEN
    1062        CALL histwrite_phy(nid_files(iff),"d_th",itau_w,detr_therm)
     1075        IF (o_f_th%flag(iff)<=lev_files(iff)) THEN
     1076        CALL histwrite_phy(nid_files(iff),o_f_th%name,itau_w,fm_therm)
     1077        ENDIF
     1078
     1079        IF (o_e_th%flag(iff)<=lev_files(iff)) THEN
     1080        CALL histwrite_phy(nid_files(iff),o_e_th%name,itau_w,entr_therm)
     1081        ENDIF
     1082
     1083        IF (o_w_th%flag(iff)<=lev_files(iff)) THEN
     1084        CALL histwrite_phy(nid_files(iff),o_w_th%name,itau_w,zw2)
     1085        ENDIF
     1086
     1087        IF (o_q_th%flag(iff)<=lev_files(iff)) THEN
     1088        CALL histwrite_phy(nid_files(iff),o_q_th%name,itau_w,zqasc)
     1089        ENDIF
     1090
     1091        IF (o_lambda_th%flag(iff)<=lev_files(iff)) THEN
     1092        CALL histwrite_phy(nid_files(iff),
     1093     s                     o_lambda_th%name,itau_w,lambda_th)
     1094        ENDIF
     1095
     1096        IF (o_a_th%flag(iff)<=lev_files(iff)) THEN
     1097        CALL histwrite_phy(nid_files(iff),o_a_th%name,itau_w,fraca)
     1098        ENDIF
     1099
     1100       IF (o_d_th%flag(iff)<=lev_files(iff)) THEN
     1101       CALL histwrite_phy(nid_files(iff),o_d_th%name,itau_w,detr_therm)
    10631102       ENDIF
    10641103
    10651104       ENDIF !iflag_thermals
    10661105
    1067        IF (flag_f0_th(iff)<=lev_files(iff)) THEN
    1068       CALL histwrite_phy(nid_files(iff),"f0_th",itau_w,f0)
    1069        ENDIF
    1070 
    1071        IF (flag_f0_th(iff)<=lev_files(iff)) THEN
    1072       CALL histwrite_phy(nid_files(iff),"zmax_th",itau_w,zmax0)
    1073        ENDIF
    1074 
    1075        IF (flag_dqthe(iff)<=lev_files(iff)) THEN
     1106       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
     1107      CALL histwrite_phy(nid_files(iff),o_f0_th%name,itau_w,f0)
     1108       ENDIF
     1109
     1110       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
     1111      CALL histwrite_phy(nid_files(iff),o_zmax_th%name,itau_w,zmax0)
     1112       ENDIF
     1113
     1114       IF (o_dqthe%flag(iff)<=lev_files(iff)) THEN
    10761115      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
    1077       CALL histwrite_phy(nid_files(iff),"dqthe",itau_w,zx_tmp_fi3d)
    1078        ENDIF
    1079 
    1080        IF (flag_dtajs(iff)<=lev_files(iff)) THEN
     1116      CALL histwrite_phy(nid_files(iff),o_dqthe%name,itau_w,zx_tmp_fi3d)
     1117       ENDIF
     1118
     1119       IF (o_dtajs%flag(iff)<=lev_files(iff)) THEN
    10811120      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
    1082       CALL histwrite_phy(nid_files(iff),"dtajs",itau_w,zx_tmp_fi3d)
    1083        ENDIF
    1084 
    1085        IF (flag_dqajs(iff)<=lev_files(iff)) THEN
     1121      CALL histwrite_phy(nid_files(iff),o_dtajs%name,itau_w,zx_tmp_fi3d)
     1122       ENDIF
     1123
     1124       IF (o_dqajs%flag(iff)<=lev_files(iff)) THEN
    10861125      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
    1087       CALL histwrite_phy(nid_files(iff),"dqajs",itau_w,zx_tmp_fi3d)
    1088        ENDIF
    1089 
    1090        IF (flag_dtswr(iff)<=lev_files(iff)) THEN
     1126      CALL histwrite_phy(nid_files(iff),o_dqajs%name,itau_w,zx_tmp_fi3d)
     1127       ENDIF
     1128
     1129       IF (o_dtswr%flag(iff)<=lev_files(iff)) THEN
    10911130      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    1092       CALL histwrite_phy(nid_files(iff),"dtswr",itau_w,zx_tmp_fi3d)
    1093        ENDIF
    1094 
    1095        IF (flag_dtsw0(iff)<=lev_files(iff)) THEN
     1131      CALL histwrite_phy(nid_files(iff),o_dtswr%name,itau_w,zx_tmp_fi3d)
     1132       ENDIF
     1133
     1134       IF (o_dtsw0%flag(iff)<=lev_files(iff)) THEN
    10961135      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
    1097       CALL histwrite_phy(nid_files(iff),"dtsw0",itau_w,zx_tmp_fi3d)
    1098        ENDIF
    1099 
    1100        IF (flag_dtlwr(iff)<=lev_files(iff)) THEN
     1136      CALL histwrite_phy(nid_files(iff),o_dtsw0%name,itau_w,zx_tmp_fi3d)
     1137       ENDIF
     1138
     1139       IF (o_dtlwr%flag(iff)<=lev_files(iff)) THEN
    11011140      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    1102       CALL histwrite_phy(nid_files(iff),"dtlwr",itau_w,zx_tmp_fi3d)
    1103        ENDIF
    1104 
    1105        IF (flag_dtlw0(iff)<=lev_files(iff)) THEN
     1141      CALL histwrite_phy(nid_files(iff),o_dtlwr%name,itau_w,zx_tmp_fi3d)
     1142       ENDIF
     1143
     1144       IF (o_dtlw0%flag(iff)<=lev_files(iff)) THEN
    11061145      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
    1107       CALL histwrite_phy(nid_files(iff),"dtlw0",itau_w,zx_tmp_fi3d)
    1108        ENDIF
    1109 
    1110        IF (flag_dtec(iff)<=lev_files(iff)) THEN
     1146      CALL histwrite_phy(nid_files(iff),o_dtlw0%name,itau_w,zx_tmp_fi3d)
     1147       ENDIF
     1148
     1149       IF (o_dtec%flag(iff)<=lev_files(iff)) THEN
    11111150      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
    1112       CALL histwrite_phy(nid_files(iff),"dtec",itau_w,zx_tmp_fi3d)
    1113        ENDIF
    1114 
    1115        IF (flag_duvdf(iff)<=lev_files(iff)) THEN
     1151      CALL histwrite_phy(nid_files(iff),o_dtec%name,itau_w,zx_tmp_fi3d)
     1152       ENDIF
     1153
     1154       IF (o_duvdf%flag(iff)<=lev_files(iff)) THEN
    11161155      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
    1117       CALL histwrite_phy(nid_files(iff),"duvdf",itau_w,zx_tmp_fi3d)
    1118        ENDIF
    1119 
    1120        IF (flag_dvvdf(iff)<=lev_files(iff)) THEN
     1156      CALL histwrite_phy(nid_files(iff),o_duvdf%name,itau_w,zx_tmp_fi3d)
     1157       ENDIF
     1158
     1159       IF (o_dvvdf%flag(iff)<=lev_files(iff)) THEN
    11211160      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
    1122       CALL histwrite_phy(nid_files(iff),"dvvdf",itau_w,zx_tmp_fi3d)
     1161      CALL histwrite_phy(nid_files(iff),o_dvvdf%name,itau_w,zx_tmp_fi3d)
    11231162       ENDIF
    11241163
    11251164       IF (ok_orodr) THEN
    1126       IF (flag_duoro(iff)<=lev_files(iff)) THEN
     1165      IF (o_duoro%flag(iff)<=lev_files(iff)) THEN
    11271166      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
    1128       CALL histwrite_phy(nid_files(iff),"duoro",itau_w,zx_tmp_fi3d)
    1129        ENDIF
    1130 
    1131       IF (flag_dvoro(iff)<=lev_files(iff)) THEN
     1167      CALL histwrite_phy(nid_files(iff),o_duoro%name,itau_w,zx_tmp_fi3d)
     1168       ENDIF
     1169
     1170      IF (o_dvoro%flag(iff)<=lev_files(iff)) THEN
    11321171      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
    1133       CALL histwrite_phy(nid_files(iff),"dvoro",itau_w,zx_tmp_fi3d)
     1172      CALL histwrite_phy(nid_files(iff),o_dvoro%name,itau_w,zx_tmp_fi3d)
    11341173      ENDIF
    11351174       ENDIF
    11361175
    11371176        IF (ok_orolf) THEN
    1138        IF (flag_dulif(iff)<=lev_files(iff)) THEN
     1177       IF (o_dulif%flag(iff)<=lev_files(iff)) THEN
    11391178      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
    1140       CALL histwrite_phy(nid_files(iff),"dulif",itau_w,zx_tmp_fi3d)
    1141        ENDIF
    1142 
    1143         IF (flag_dvlif(iff)<=lev_files(iff)) THEN
     1179      CALL histwrite_phy(nid_files(iff),o_dulif%name,itau_w,zx_tmp_fi3d)
     1180       ENDIF
     1181
     1182        IF (o_dvlif%flag(iff)<=lev_files(iff)) THEN
    11441183      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
    1145       CALL histwrite_phy(nid_files(iff),"dvlif",itau_w,zx_tmp_fi3d)
    1146        ENDIF
    1147         ENDIF
    1148 
    1149        IF (flag_trac(iff)<=lev_files(iff)) THEN
    1150          if (nqmax.GE.3) THEN
    1151            DO iq=3,nqmax
    1152          CALL histwrite_phy(nid_files(iff),tnom(iq),itau_w,qx(:,:,iq))
     1184      CALL histwrite_phy(nid_files(iff),o_dvlif%name,itau_w,zx_tmp_fi3d)
     1185       ENDIF
     1186        ENDIF
     1187
     1188!       IF (o_trac%flag(iff)<=lev_files(iff)) THEN
     1189         if (nqtot.GE.3) THEN
     1190!           DO iq=3,nqtot
     1191           DO iq=3,4
     1192       IF (o_trac(iq-2)%flag(iff)<=lev_files(iff)) THEN
     1193         CALL histwrite_phy(nid_files(iff),
     1194     s                  o_trac(iq-2)%name,itau_w,qx(:,:,iq))
     1195       ENDIF
    11531196           ENDDO
    1154           endif
    1155 
    1156        ENDIF
     1197         endif
     1198
    11571199      if (ok_sync) then
    11581200c$OMP MASTER
Note: See TracChangeset for help on using the changeset viewer.