Changeset 115


Ignore:
Timestamp:
Jul 28, 2000, 6:49:17 PM (24 years ago)
Author:
lmdzadmin
Message:

Probleme entre physdem et phyredem qui n'ecrivait pas les bonnes valeurs
dans la table de controle de restartphy.nc. J'ai donc remplace
dyn3d/physdem.F par phylmd/phyredem.F
LF

Location:
LMDZ.3.3/branches/rel-LF/libf
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/dyn3d/etat0_netcdf.F

    r112 r115  
    500500      frugs(:,is_sic) = rugmer
    501501
    502       call phyredem("startphy.nc",phystep,radpas, co2_ppm, solaire,
     502      call physdem("startphy.nc",phystep,radpas, co2_ppm, solaire,
    503503     $    latfi, lonfi, pctsrf, tsolsrf, tsoil, deltat, qsolsrf, snsrf,
    504504     $    albe, evap, rain_fall, snow_fall, solsw, sollw,
  • LMDZ.3.3/branches/rel-LF/libf/dyn3d/physdem.F

    r110 r115  
    1       subroutine physdem(lonfi, latfi,phystep,radpas,co2_ppm,
    2      .                   solaire, ts, ws,
    3      .                   sn, radsol, deltat, rugmer,
    4      .                   agesno, zmea, zstd, zsig,
    5      .                   zgam, zthe, zpic, zval,
    6      .                   rugsrel)
    7 
     1      SUBROUTINE physdem (fichnom,dtime,radpas,co2_ppm,solaire,
     2     .           rlat,rlon, pctsrf,tsol,tsoil,deltat,qsol,snow,
     3     .           albedo, evap, rain_fall, snow_fall,
     4     .           solsw, sollw,
     5     .           radsol,frugs,agesno,
     6     .           zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,
     7     .           t_ancien, q_ancien)
    88      IMPLICIT none
    9 c-------------------------------------------------------------
    10 C Author : L. Fairhead
    11 C Date   : 01/10/1999
    12 C Objet  : Ecriture des etats initiaux physiques
    13 c-------------------------------------------------------------
    14 c
    15 c
    16 c
    17       INTEGER ivap
    18       PARAMETER (ivap=1)
    19 c
    20       REAL qsolmax
    21       PARAMETER ( qsolmax = 150.0 )
    22 c
     9c======================================================================
     10c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
     11c Objet: Ecriture de l'etat de redemarrage pour la physique
     12c======================================================================
    2313#include "dimensions.h"
    24 #include "paramet.h"
    25 c-----------------------------------------------------------------------
    26       INTEGER KIDIA, KFDIA, KLON, KLEV
    27       PARAMETER (KIDIA=1,KFDIA=iim*(jjm-1)+2,
    28      .           KLON=KFDIA-KIDIA+1,KLEV=llm)
    29 c-----------------------------------------------------------------------
    30 #include "comconst.h"
    31 #include "comvert.h"
    32 #include "comgeom2.h"
     14#include "dimphy.h"
     15#include "netcdf.inc"
     16#include "indicesol.h"
     17#include "dimsoil.h"
     18#include "clesph0.h"
    3319#include "control.h"
    34 #include "comdissnew.h"
    35 #include "logic.h"
    36 #include "ener.h"
    37 #include "netcdf.inc"
    38 c
    39       INTEGER nid
    40 
    41 c Ajout de quelques parametres orographiques (F. LOTT janvier 1995)
    42 
    43       REAL zmea(klon),zstd(klon)
    44       REAL zsig(klon),zgam(klon),zthe(klon)
    45       REAL zpic(klon),zval(klon)
    46       REAL rugsrel(klon)
    47       INTEGER idayref,anneeref
    48 
    49 
    50       integer ierr, idim1, idim2, nvarid
    51 
    52 c
    53       REAL phystep
     20#include "temps.h"
     21c======================================================================
     22      CHARACTER*(*) fichnom
     23      REAL dtime
    5424      INTEGER radpas
     25      REAL rlat(klon), rlon(klon)
    5526      REAL co2_ppm
    5627      REAL solaire
    57       REAL latfi(klon), lonfi(klon)
    58       REAL champhys(klon)
    59       REAL ts(klon)
     28      REAL tsol(klon,nbsrf)
     29      REAL tsoil(klon,nsoilmx,nbsrf)
    6030      REAL deltat(klon)
    61       REAL ws(klon)
    62       REAL sn(klon)
     31      REAL qsol(klon,nbsrf)
     32      REAL snow(klon,nbsrf)
     33      REAL albedo(klon,nbsrf)
     34      REAL evap(klon,nbsrf)
     35      REAL rain_fall(klon)
     36      REAL snow_fall(klon)
     37      real solsw(klon)
     38      real sollw(klon)
    6339      REAL radsol(klon)
    64       REAL rugmer(klon)
     40      REAL frugs(klon,nbsrf)
    6541      REAL agesno(klon)
     42      REAL zmea(klon)
     43      REAL zstd(klon)
     44      REAL zsig(klon)
     45      REAL zgam(klon)
     46      REAL zthe(klon)
     47      REAL zpic(klon)
     48      REAL zval(klon)
     49      REAL rugsrel(klon)
     50      REAL pctsrf(klon, nbsrf)
     51      REAL t_ancien(klon,klev), q_ancien(klon,klev)
     52c
     53      INTEGER nid, nvarid, idim1, idim2, idim3
     54      INTEGER ierr
    6655      INTEGER length
    6756      PARAMETER (length=100)
    6857      REAL tab_cntrl(length)
    69 
    70 c
    71 
    72       EXTERNAL defrun_new,iniconst,geopot,inigeom,massdair,pression
    73       EXTERNAL exner_hyb , SSUM
    74 c
    75 #include "serre.h"
    76 #include "clesph0.h"
    77 #include "fxyprim.h"
    78 c-----------------------------------------------------------------------
    79 c
    80 c  stockage sur le fichier Physique:
    81 c
    82       ierr = NF_CREATE("startphy.nc", NF_CLOBBER, nid)
     58c
     59      INTEGER isoil, nsrf
     60      CHARACTER*7 str7
     61      CHARACTER*2 str2
     62c
     63      ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)
    8364      IF (ierr.NE.NF_NOERR) THEN
    84         WRITE(6,*)' Pb d''ouverture du fichier startphy.nc'
    85         WRITE(6,*)' ierr = ', ierr
     65        write(6,*)' Pb d''ouverture du fichier '//fichnom
     66        write(6,*)' ierr = ', ierr
    8667        CALL ABORT
    8768      ENDIF
    8869c
    8970      ierr = NF_PUT_ATT_TEXT (nid, NF_GLOBAL, "title", 28,
    90      .                       "Fichier demmarage physique")
     71     .                       "Fichier redemmarage physique")
    9172c
    9273      ierr = NF_DEF_DIM (nid, "index", length, idim1)
    9374      ierr = NF_DEF_DIM (nid, "points_physiques", klon, idim2)
     75      ierr = NF_DEF_DIM (nid, "horizon_vertical", klon*klev, idim3)
    9476c
    9577      ierr = NF_ENDDEF(nid)
     
    9880         tab_cntrl(ierr) = 0.0
    9981      ENDDO
    100       tab_cntrl(1)  = phystep
    101       tab_cntrl(2)  = radpas
    102       tab_cntrl(3)  = co2_ppm
    103       tab_cntrl(4)  = solaire
    104       tab_cntrl(5)  = iflag_con
    105       tab_cntrl(6)  = nbapp_rad
    106 c
    107 cc     Modif ( P. Le Van )
    108 c
    109        tab_cntrl( 7 ) = 0.
    110        tab_cntrl( 8 ) = 0.
    111        tab_cntrl( 9 ) = 0.
    112        tab_cntrl(10 ) = 0.
    113        tab_cntrl(11 ) = 0.
    114        tab_cntrl(12 ) = 0.
     82      tab_cntrl(1) = dtime
     83      tab_cntrl(2) = radpas
     84      tab_cntrl(3) = co2_ppm
     85      tab_cntrl(4) = solaire
     86      tab_cntrl(5) = iflag_con
     87      tab_cntrl(6) = nbapp_rad
    11588
    116       IF(  cycle_diurne )  tab_cntrl( 7 ) = 1.
    117       IF(   soil_model  )  tab_cntrl( 8 ) = 1.
    118       IF(    new_oliq   )  tab_cntrl( 9 ) = 1.
    119       IF(    ok_orodr   )  tab_cntrl(10 ) = 1.
    120       IF(    ok_orolf   )  tab_cntrl(11 ) = 1.
    121       IF(  ok_limitvrai )  tab_cntrl(12 ) = 1.
     89      IF( cycle_diurne ) tab_cntrl( 7 ) = 1.
     90      IF(   soil_model ) tab_cntrl( 8 ) = 1.
     91      IF(     new_oliq ) tab_cntrl( 9 ) = 1.
     92      IF(     ok_orodr ) tab_cntrl(10 ) = 1.
     93      IF(     ok_orolf ) tab_cntrl(11 ) = 1.
    12294
    123       tab_cntrl(13)  = dayref
    124       tab_cntrl(14)  = anneeref
    125 
    126 
    127 cc   ***    new_oliq   (  commentaires de L. LI dans routine physique )
    128 cc   ***  ok_orodr  et ok_orolf   si on appelle l'orographie      ****
    129 
     95      tab_cntrl(13) = dayref
     96      tab_cntrl(14) = anneeref
     97      tab_cntrl(13) = day_end
     98      tab_cntrl(14) = anne_ini
    13099c
    131100      ierr = NF_REDEF (nid)
     
    153122     .                        "Longitudes de la grille physique")
    154123      ierr = NF_ENDDEF(nid)
    155 
    156 #ifdef NC_DOUBLE
    157       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,lonfi)
    158 #else
    159       ierr = NF_PUT_VAR_REAL (nid,nvarid,lonfi)
     124#ifdef NC_DOUBLE
     125      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlon)
     126#else
     127      ierr = NF_PUT_VAR_REAL (nid,nvarid,rlon)
    160128#endif
    161129c
     
    170138      ierr = NF_ENDDEF(nid)
    171139#ifdef NC_DOUBLE
    172       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,latfi)
    173 #else
    174       ierr = NF_PUT_VAR_REAL (nid,nvarid,latfi)
    175 #endif
    176 c
    177       ierr = NF_REDEF (nid)
    178 #ifdef NC_DOUBLE
    179       ierr = NF_DEF_VAR (nid, "TS", NF_DOUBLE, 1, idim2,nvarid)
    180 #else
    181       ierr = NF_DEF_VAR (nid, "TS", NF_FLOAT, 1, idim2,nvarid)
    182 #endif
    183       ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 25,
    184      .                        "Temperature de la surface")
    185       ierr = NF_ENDDEF(nid)
    186 #ifdef NC_DOUBLE
    187       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ts)
    188 #else
    189       ierr = NF_PUT_VAR_REAL (nid,nvarid,ts)
    190 #endif
    191 c
    192       ierr = NF_REDEF (nid)
    193 #ifdef NC_DOUBLE
    194       ierr = NF_DEF_VAR (nid, "QS", NF_DOUBLE, 1, idim2,nvarid)
    195 #else
    196       ierr = NF_DEF_VAR (nid, "QS", NF_FLOAT, 1, idim2,nvarid)
    197 #endif
    198       ierr = NF_PUT_ATT_TEXT (nid, nvarid, "title", 15,
    199      .                        "Humidite du sol")
    200       ierr = NF_ENDDEF(nid)
    201 #ifdef NC_DOUBLE
    202       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ws)
    203 #else
    204       ierr = NF_PUT_VAR_REAL (nid,nvarid,ws)
    205 #endif
    206 c
    207       ierr = NF_REDEF (nid)
    208 #ifdef NC_DOUBLE
    209       ierr = NF_DEF_VAR (nid, "SNOW", NF_DOUBLE, 1, idim2,nvarid)
    210 #else
    211       ierr = NF_DEF_VAR (nid, "SNOW", NF_FLOAT, 1, idim2,nvarid)
    212 #endif
    213       ierr = NF_PUT_ATT_TEXT (nid, nvarid, "title", 5,
    214      .                        "Neige")
    215       ierr = NF_ENDDEF(nid)
    216 #ifdef NC_DOUBLE
    217       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,sn)
    218 #else
    219       ierr = NF_PUT_VAR_REAL (nid,nvarid,sn)
    220 #endif
     140      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlat)
     141#else
     142      ierr = NF_PUT_VAR_REAL (nid,nvarid,rlat)
     143#endif
     144c
     145C PB ajout du masque terre/mer
     146C
     147      ierr = NF_REDEF (nid)
     148#ifdef NC_DOUBLE
     149      ierr = NF_DEF_VAR (nid, "masque", NF_DOUBLE, 1, idim2,nvarid)
     150#else
     151      ierr = NF_DEF_VAR (nid, "masque", NF_FLOAT, 1, idim2,nvarid)
     152#endif
     153      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 16,
     154     .                        "masque terre mer")
     155      ierr = NF_ENDDEF(nid)
     156#ifdef NC_DOUBLE
     157      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmasq)
     158#else
     159      ierr = NF_PUT_VAR_REAL (nid,nvarid,zmasq)
     160#endif     
     161c BP ajout des fraction de chaque sous-surface
     162C
     163C 1. fraction de terre
     164C
     165      ierr = NF_REDEF (nid)
     166#ifdef NC_DOUBLE
     167      ierr = NF_DEF_VAR (nid, "FTER", NF_DOUBLE, 1, idim2,nvarid)
     168#else
     169      ierr = NF_DEF_VAR (nid, "FTER", NF_FLOAT, 1, idim2,nvarid)
     170#endif
     171      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,
     172     .                        "fraction de continent")
     173      ierr = NF_ENDDEF(nid)
     174#ifdef NC_DOUBLE
     175      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_ter))
     176#else
     177      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_ter))
     178#endif
     179C
     180C 2. Fraction de glace de terre
     181C
     182      ierr = NF_REDEF (nid)
     183#ifdef NC_DOUBLE
     184      ierr = NF_DEF_VAR (nid, "FLIC", NF_DOUBLE, 1, idim2,nvarid)
     185#else
     186      ierr = NF_DEF_VAR (nid, "FLIC", NF_FLOAT, 1, idim2,nvarid)
     187#endif
     188      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 24,
     189     .                        "fraction glace de terre")
     190      ierr = NF_ENDDEF(nid)
     191#ifdef NC_DOUBLE
     192      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon,is_lic))
     193#else
     194      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_lic))
     195#endif
     196C
     197C 3. fraction ocean
     198C
     199      ierr = NF_REDEF (nid)
     200#ifdef NC_DOUBLE
     201      ierr = NF_DEF_VAR (nid, "FOCE", NF_DOUBLE, 1, idim2,nvarid)
     202#else
     203      ierr = NF_DEF_VAR (nid, "FOCE", NF_FLOAT, 1, idim2,nvarid)
     204#endif
     205      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14,
     206     .                        "fraction ocean")
     207      ierr = NF_ENDDEF(nid)
     208#ifdef NC_DOUBLE
     209      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_oce))
     210#else
     211      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_oce))
     212#endif
     213C
     214C 4. Fraction glace de mer
     215C
     216      ierr = NF_REDEF (nid)
     217#ifdef NC_DOUBLE
     218      ierr = NF_DEF_VAR (nid, "FSIC", NF_DOUBLE, 1, idim2,nvarid)
     219#else
     220      ierr = NF_DEF_VAR (nid, "FSIC", NF_FLOAT, 1, idim2,nvarid)
     221#endif
     222      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 18,
     223     .                        "fraction glace mer")
     224      ierr = NF_ENDDEF(nid)
     225#ifdef NC_DOUBLE
     226      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_sic))
     227#else
     228      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_sic))
     229#endif
     230C
     231C
     232c
     233      DO nsrf = 1, nbsrf
     234        IF (nsrf.LE.99) THEN
     235        WRITE(str2,'(i2.2)') nsrf
     236        ierr = NF_REDEF (nid)
     237#ifdef NC_DOUBLE
     238        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_DOUBLE, 1, idim2,nvarid)
     239#else
     240        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_FLOAT, 1, idim2,nvarid)
     241#endif
     242        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
     243     .                        "Temperature de surface No."//str2)
     244        ierr = NF_ENDDEF(nid)
     245        ELSE
     246        PRINT*, "Trop de sous-mailles"
     247        CALL abort
     248        ENDIF
     249#ifdef NC_DOUBLE
     250        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tsol(1,nsrf))
     251#else
     252        ierr = NF_PUT_VAR_REAL (nid,nvarid,tsol(1,nsrf))
     253#endif
     254      ENDDO
     255c
     256      DO nsrf = 1, nbsrf
     257      DO isoil=1, nsoilmx
     258        IF (isoil.LE.99 .AND. nsrf.LE.99) THEN
     259        WRITE(str7,'(i2.2,"srf",i2.2)') isoil,nsrf
     260        ierr = NF_REDEF (nid)
     261#ifdef NC_DOUBLE
     262        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_DOUBLE,1,idim2,nvarid)
     263#else
     264        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_FLOAT,1,idim2,nvarid)
     265#endif
     266        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 29,
     267     .                        "Temperature du sol No."//str7)
     268        ierr = NF_ENDDEF(nid)
     269        ELSE
     270        PRINT*, "Trop de couches"
     271        CALL abort
     272        ENDIF
     273#ifdef NC_DOUBLE
     274        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tsoil(1,isoil,nsrf))
     275#else
     276        ierr = NF_PUT_VAR_REAL (nid,nvarid,tsoil(1,isoil,nsrf))
     277#endif
     278      ENDDO
     279      ENDDO
     280c
     281c
     282      ierr = NF_REDEF (nid)
     283#ifdef NC_DOUBLE
     284      ierr = NF_DEF_VAR (nid, "DELTAT", NF_DOUBLE, 1, idim2,nvarid)
     285#else
     286      ierr = NF_DEF_VAR (nid, "DELTAT", NF_FLOAT, 1, idim2,nvarid)
     287#endif
     288      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,
     289     .                        "Ecart de la SST (pour slab-ocean)")
     290      ierr = NF_ENDDEF(nid)
     291#ifdef NC_DOUBLE
     292      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,deltat)
     293#else
     294      ierr = NF_PUT_VAR_REAL (nid,nvarid,deltat)
     295#endif
     296c
     297      DO nsrf = 1, nbsrf
     298        IF (nsrf.LE.99) THEN
     299        WRITE(str2,'(i2.2)') nsrf
     300        ierr = NF_REDEF (nid)
     301#ifdef NC_DOUBLE
     302        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_DOUBLE,1,idim2,nvarid)
     303#else
     304        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_FLOAT,1,idim2,nvarid)
     305#endif
     306        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 25,
     307     .                        "Humidite de surface No."//str2)
     308        ierr = NF_ENDDEF(nid)
     309        ELSE
     310        PRINT*, "Trop de sous-mailles"
     311        CALL abort
     312        ENDIF
     313#ifdef NC_DOUBLE
     314      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,qsol(1,nsrf))
     315#else
     316      ierr = NF_PUT_VAR_REAL (nid,nvarid,qsol(1,nsrf))
     317#endif
     318      ENDDO
     319c
     320      DO nsrf = 1, nbsrf
     321        IF (nsrf.LE.99) THEN
     322        WRITE(str2,'(i2.2)') nsrf
     323        ierr = NF_REDEF (nid)
     324#ifdef NC_DOUBLE
     325        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_DOUBLE,1,idim2,nvarid)
     326#else
     327        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_FLOAT,1,idim2,nvarid)
     328#endif
     329        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,
     330     .                        "albedo de surface No."//str2)
     331        ierr = NF_ENDDEF(nid)
     332        ELSE
     333        PRINT*, "Trop de sous-mailles"
     334        CALL abort
     335        ENDIF
     336#ifdef NC_DOUBLE
     337      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,albedo(1,nsrf))
     338#else
     339      ierr = NF_PUT_VAR_REAL (nid,nvarid,albedo(1,nsrf))
     340#endif
     341      ENDDO
     342c
     343      DO nsrf = 1, nbsrf
     344        IF (nsrf.LE.99) THEN
     345        WRITE(str2,'(i2.2)') nsrf
     346        ierr = NF_REDEF (nid)
     347#ifdef NC_DOUBLE
     348        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_DOUBLE,1,idim2,nvarid)
     349#else
     350        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_FLOAT,1,idim2,nvarid)
     351#endif
     352        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
     353     .                        "Evaporation de surface No."//str2)
     354        ierr = NF_ENDDEF(nid)
     355        ELSE
     356        PRINT*, "Trop de sous-mailles"
     357        CALL abort
     358        ENDIF
     359#ifdef NC_DOUBLE
     360      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,evap(1,nsrf))
     361#else
     362      ierr = NF_PUT_VAR_REAL (nid,nvarid,evap(1,nsrf))
     363#endif
     364      ENDDO
     365
     366c
     367      DO nsrf = 1, nbsrf
     368        IF (nsrf.LE.99) THEN
     369        WRITE(str2,'(i2.2)') nsrf
     370        ierr = NF_REDEF (nid)
     371#ifdef NC_DOUBLE
     372        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_DOUBLE,1,idim2,nvarid)
     373#else
     374        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_FLOAT,1,idim2,nvarid)
     375#endif
     376        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22,
     377     .                        "Neige de surface No."//str2)
     378        ierr = NF_ENDDEF(nid)
     379        ELSE
     380        PRINT*, "Trop de sous-mailles"
     381        CALL abort
     382        ENDIF
     383#ifdef NC_DOUBLE
     384      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,snow(1,nsrf))
     385#else
     386      ierr = NF_PUT_VAR_REAL (nid,nvarid,snow(1,nsrf))
     387#endif
     388      ENDDO
     389
    221390c
    222391      ierr = NF_REDEF (nid)
     
    237406      ierr = NF_REDEF (nid)
    238407#ifdef NC_DOUBLE
    239       ierr = NF_DEF_VAR (nid, "DELTAT", NF_DOUBLE, 1, idim2,nvarid)
    240 #else
    241       ierr = NF_DEF_VAR (nid, "DELTAT", NF_FLOAT, 1, idim2,nvarid)
    242 #endif
    243       ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,
    244      .                        "Ecart de la SST (pour slab-ocean)")
    245       ierr = NF_ENDDEF(nid)
    246 #ifdef NC_DOUBLE
    247       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,deltat)
    248 #else
    249       ierr = NF_PUT_VAR_REAL (nid,nvarid,deltat)
    250 #endif
    251 c
    252       ierr = NF_REDEF (nid)
    253 #ifdef NC_DOUBLE
    254       ierr = NF_DEF_VAR (nid, "RUGMER", NF_DOUBLE, 1, idim2,nvarid)
    255 #else
    256       ierr = NF_DEF_VAR (nid, "RUGMER", NF_FLOAT, 1, idim2,nvarid)
    257 #endif
    258       ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
    259      .                        "Longueur de rugosite sur mer")
    260       ierr = NF_ENDDEF(nid)
    261 #ifdef NC_DOUBLE
    262       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rugmer)
    263 #else
    264       ierr = NF_PUT_VAR_REAL (nid,nvarid,rugmer)
    265 #endif
     408      ierr = NF_DEF_VAR (nid, "solsw", NF_DOUBLE, 1, idim2,nvarid)
     409#else
     410      ierr = NF_DEF_VAR (nid, "solsw", NF_FLOAT, 1, idim2,nvarid)
     411#endif
     412      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32,
     413     .                        "Rayonnement solaire a la surface")
     414      ierr = NF_ENDDEF(nid)
     415#ifdef NC_DOUBLE
     416      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,solsw)
     417#else
     418      ierr = NF_PUT_VAR_REAL (nid,nvarid,solsw)
     419#endif
     420c
     421      ierr = NF_REDEF (nid)
     422#ifdef NC_DOUBLE
     423      ierr = NF_DEF_VAR (nid, "sollw", NF_DOUBLE, 1, idim2,nvarid)
     424#else
     425      ierr = NF_DEF_VAR (nid, "sollw", NF_FLOAT, 1, idim2,nvarid)
     426#endif
     427      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 27,
     428     .                        "Rayonnement IF a la surface")
     429      ierr = NF_ENDDEF(nid)
     430#ifdef NC_DOUBLE
     431      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,sollw)
     432#else
     433      ierr = NF_PUT_VAR_REAL (nid,nvarid,sollw)
     434#endif
     435c
     436      ierr = NF_REDEF (nid)
     437#ifdef NC_DOUBLE
     438      ierr = NF_DEF_VAR (nid, "rain_f", NF_DOUBLE, 1, idim2,nvarid)
     439#else
     440      ierr = NF_DEF_VAR (nid, "rain_f", NF_FLOAT, 1, idim2,nvarid)
     441#endif
     442      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,
     443     .                        "precipitation liquide")
     444      ierr = NF_ENDDEF(nid)
     445#ifdef NC_DOUBLE
     446      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rain_fall)
     447#else
     448      ierr = NF_PUT_VAR_REAL (nid,nvarid,rain_fall)
     449#endif
     450c
     451      ierr = NF_REDEF (nid)
     452#ifdef NC_DOUBLE
     453      ierr = NF_DEF_VAR (nid, "snow_f", NF_DOUBLE, 1, idim2,nvarid)
     454#else
     455      ierr = NF_DEF_VAR (nid, "snow_f", NF_FLOAT, 1, idim2,nvarid)
     456#endif
     457      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 20,
     458     .                        "precipitation solide")
     459      ierr = NF_ENDDEF(nid)
     460#ifdef NC_DOUBLE
     461      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,snow_fall)
     462#else
     463      ierr = NF_PUT_VAR_REAL (nid,nvarid,snow_fall)
     464#endif
     465c
     466      DO nsrf = 1, nbsrf
     467        IF (nsrf.LE.99) THEN
     468        WRITE(str2,'(i2.2)') nsrf
     469        ierr = NF_REDEF (nid)
     470#ifdef NC_DOUBLE
     471        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_DOUBLE,1,idim2,nvarid)
     472#else
     473        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_FLOAT,1,idim2,nvarid)
     474#endif
     475        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,
     476     .                        "rugosite de surface No."//str2)
     477        ierr = NF_ENDDEF(nid)
     478        ELSE
     479        PRINT*, "Trop de sous-mailles"
     480        CALL abort
     481        ENDIF
     482#ifdef NC_DOUBLE
     483      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,frugs(1,nsrf))
     484#else
     485      ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,nsrf))
     486#endif
     487      ENDDO
    266488c
    267489      ierr = NF_REDEF (nid)
     
    288510      ierr = NF_ENDDEF(nid)
    289511#ifdef NC_DOUBLE
    290       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    291 #else
    292       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
     512      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmea)
     513#else
     514      ierr = NF_PUT_VAR_REAL (nid,nvarid,zmea)
    293515#endif
    294516c
     
    301523      ierr = NF_ENDDEF(nid)
    302524#ifdef NC_DOUBLE
    303       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    304 #else
    305       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
    306 #endif
    307 
     525      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zstd)
     526#else
     527      ierr = NF_PUT_VAR_REAL (nid,nvarid,zstd)
     528#endif
     529c
    308530      ierr = NF_REDEF (nid)
    309531#ifdef NC_DOUBLE
     
    314536      ierr = NF_ENDDEF(nid)
    315537#ifdef NC_DOUBLE
    316       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    317 #else
    318       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
    319 #endif
    320 
     538      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zsig)
     539#else
     540      ierr = NF_PUT_VAR_REAL (nid,nvarid,zsig)
     541#endif
     542c
    321543      ierr = NF_REDEF (nid)
    322544#ifdef NC_DOUBLE
     
    327549      ierr = NF_ENDDEF(nid)
    328550#ifdef NC_DOUBLE
    329       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    330 #else
    331       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
    332 #endif
    333 
     551      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zgam)
     552#else
     553      ierr = NF_PUT_VAR_REAL (nid,nvarid,zgam)
     554#endif
     555c
    334556      ierr = NF_REDEF (nid)
    335557#ifdef NC_DOUBLE
     
    340562      ierr = NF_ENDDEF(nid)
    341563#ifdef NC_DOUBLE
    342       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    343 #else
    344       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
    345 #endif
    346 
     564      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zthe)
     565#else
     566      ierr = NF_PUT_VAR_REAL (nid,nvarid,zthe)
     567#endif
     568c
    347569      ierr = NF_REDEF (nid)
    348570#ifdef NC_DOUBLE
     
    353575      ierr = NF_ENDDEF(nid)
    354576#ifdef NC_DOUBLE
    355       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    356 #else
    357       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
    358 #endif
    359 
     577      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zpic)
     578#else
     579      ierr = NF_PUT_VAR_REAL (nid,nvarid,zpic)
     580#endif
     581c
    360582      ierr = NF_REDEF (nid)
    361583#ifdef NC_DOUBLE
     
    366588      ierr = NF_ENDDEF(nid)
    367589#ifdef NC_DOUBLE
    368       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    369 #else
    370       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
    371 #endif
    372 
     590      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zval)
     591#else
     592      ierr = NF_PUT_VAR_REAL (nid,nvarid,zval)
     593#endif
     594c
    373595      ierr = NF_REDEF (nid)
    374596#ifdef NC_DOUBLE
     
    379601      ierr = NF_ENDDEF(nid)
    380602#ifdef NC_DOUBLE
    381       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,champhys)
    382 #else
    383       ierr = NF_PUT_VAR_REAL (nid,nvarid,champhys)
     603      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rugsrel)
     604#else
     605      ierr = NF_PUT_VAR_REAL (nid,nvarid,rugsrel)
     606#endif
     607c
     608      ierr = NF_REDEF (nid)
     609#ifdef NC_DOUBLE
     610      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_DOUBLE, 1, idim3,nvarid)
     611#else
     612      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_FLOAT, 1, idim3,nvarid)
     613#endif
     614      ierr = NF_ENDDEF(nid)
     615#ifdef NC_DOUBLE
     616      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,t_ancien)
     617#else
     618      ierr = NF_PUT_VAR_REAL (nid,nvarid,t_ancien)
     619#endif
     620c
     621      ierr = NF_REDEF (nid)
     622#ifdef NC_DOUBLE
     623      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_DOUBLE, 1, idim3,nvarid)
     624#else
     625      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_FLOAT, 1, idim3,nvarid)
     626#endif
     627      ierr = NF_ENDDEF(nid)
     628#ifdef NC_DOUBLE
     629      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q_ancien)
     630#else
     631      ierr = NF_PUT_VAR_REAL (nid,nvarid,q_ancien)
    384632#endif
    385633c
    386634      ierr = NF_CLOSE(nid)
    387 
     635c
    388636      RETURN
    389 
    390637      END
  • LMDZ.3.3/branches/rel-LF/libf/phylmd/interface_surf.F90

    r112 r115  
    10001000      call cpl2gath(read_alb_sic, alb_new, klon, knon,iim,jjm, knindex)
    10011001  endif
     1002 
     1003!  if (lafin) call quitcpl
    10021004
    10031005  END SUBROUTINE interfoce_cpl
Note: See TracChangeset for help on using the changeset viewer.