Changeset 845


Ignore:
Timestamp:
Sep 14, 2007, 4:01:10 PM (17 years ago)
Author:
Laurent Fairhead
Message:

Création de la branche LMDZ4_V3_patches: à partir de la version de référence LMDZ4_V3,

on corrige différents bugs qui sont sur la branche de développement HEAD pour établir
une version de référence LMDZ4_V3 pour les utilisateurs non-développeurs

Cette branche ne servira que pour les corrections de bugs et les version y seront tagguées

LF

Location:
LMDZ4/branches/LMDZ4_V3_patches
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4_V3_patches/bld.cfg

    r808 r845  
    6868bld::excl_dep        use::ioipsl
    6969bld::excl_dep        use::intersurf
     70bld::excl_dep        use::mod_prism_proto
     71bld::excl_dep        use::mod_prism_def_partition_proto
     72bld::excl_dep        use::mod_prism_get_proto
     73bld::excl_dep        use::mod_prism_put_proto
    7074
    7175# Don't generate interface files
  • LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/create_etat0_limit.F

    r844 r845  
    2828#include "paramet.h"
    2929#include "indicesol.h"
     30#include "advtrac.h"
    3031cym#include "dimphy.h"
    3132      REAL :: masque(iip1,jjp1)
    3233      REAL :: pctsrf(iim*(jjm-1)+2, nbsrf)
     34
     35c initialisation traceurs
     36      hadv_flg(:) = 0.
     37      vadv_flg(:) = 0.
     38      conv_flg(:) = 0.
     39      pbl_flg(:)  = 0.
     40      tracnam(:)  = '        '
     41      nprath = 1
     42      nbtrac = 0
     43      mmt_adj(:,:,:,:) = 1
     44
     45#ifdef INCA
     46      call init_const_lmdz(nbtrac,anneeref,dayref,iphysiq,day_step,nday)
     47      print *, 'nbtrac =' , nbtrac
     48#endif
    3349
    3450      CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2)
  • LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/dynredem.F

    r844 r845  
    530530     
    531531      REAL time
    532       INTEGER nid, nvarid
    533       INTEGER ierr
     532      INTEGER nid, nvarid, nid_trac, nvarid_trac
     533      REAL trac_tmp(ip1jmp1,llm)     
     534      INTEGER ierr, ierr_file
    534535      INTEGER iq
    535536      INTEGER length
     
    622623#endif
    623624
     625#ifdef INCA
     626! Ajout Anne pour lecture valeurs traceurs dans un fichier start_trac.nc
     627      ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac)
     628      IF (ierr_file .NE.NF_NOERR) THEN
     629        write(6,*)' Pb d''ouverture du fichier start_trac.nc'
     630        write(6,*)' ierr = ', ierr_file
     631      ENDIF
     632#endif
     633
    624634      IF(nq.GE.1) THEN
    625        do iq=1,nq   
     635       do iq=1,nq
     636#ifdef INCA
     637! lecture de la valeur du traceur dans start_trac.nc
     638         if (ierr_file .ne. 2) then
     639            ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac)
     640            IF (ierr .NE. NF_NOERR) THEN
     641               PRINT*, tname(iq),"est absent de start_trac.nc"
     642               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     643               IF (ierr .NE. NF_NOERR) THEN
     644                  PRINT*, "Variable ", tname(iq)," n est pas definie"
     645                  CALL abort
     646               ENDIF
     647#ifdef NC_DOUBLE
     648               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
     649#else
     650               ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
     651#endif
     652
     653            ELSE
     654               PRINT*, tname(iq), "est present dans start_trac.nc"
     655#ifdef NC_DOUBLE
     656               ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
     657#else
     658               ierr = NF_GET_VAR_REAL(nid_trac, nvarid_trac, trac_tmp)
     659#endif
     660               IF (ierr .NE. NF_NOERR) THEN
     661                  PRINT*, "Lecture echouee pour", tname(iq)
     662                  CALL abort
     663               ENDIF
     664               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     665               IF (ierr .NE. NF_NOERR) THEN
     666                  PRINT*, "Variable ", tname(iq)," n est pas definie"
     667                  CALL abort
     668               ENDIF
     669#ifdef NC_DOUBLE
     670               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,trac_tmp)
     671#else
     672               ierr = NF_PUT_VAR_REAL (nid,nvarid,trac_tmp)
     673#endif
     674
     675          ENDIF
     676! fin lecture du traceur
     677          ELSE  ! si il n'y a pas de fichier start_trac.nc
     678!             print *, 'il n y a pas de fichier start_trac'
     679             ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     680             IF (ierr .NE. NF_NOERR) THEN
     681                PRINT*, "Variable  tname(iq) n est pas definie"
     682                CALL abort
     683             ENDIF
     684#ifdef NC_DOUBLE
     685             ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
     686#else
     687             ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
     688#endif
     689          ENDIF
     690! endif ifdef INCA
     691#endif
     692         
     693#ifndef INCA
    626694        ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    627695        IF (ierr .NE. NF_NOERR) THEN
     
    634702          ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    635703#endif
     704! endif ifndef INCA
     705#endif
    636706      ENDDO
    637707      ENDIF
  • LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/leapfrog.F

    r844 r845  
    185185      PARAMETER (testita = 9)
    186186
     187      integer itau_w   ! pas de temps ecriture = itap + itau_phy
     188
     189
    187190      itaufin   = nday*day_step
    188191      itaufinp1 = itaufin +1
  • LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/write_paramLMDZ_dyn.h

    r844 r845  
    11c
    22      ndex2d = 0
    3       itau_dyn=itau_dyn+itau
     3      itau_w=itau_dyn+itau
    44c
    55      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(prt_level)
    6       CALL histwrite(nid_ctesGCM, "prt_level", itau_dyn,
     6      CALL histwrite(nid_ctesGCM, "prt_level", itau_w,
    77     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    88c
    99      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(dayref)
    10       CALL histwrite(nid_ctesGCM, "dayref", itau_dyn,
     10      CALL histwrite(nid_ctesGCM, "dayref", itau_w,
    1111     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    1212c
    1313      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(anneeref)
    14       CALL histwrite(nid_ctesGCM, "anneeref", itau_dyn,
     14      CALL histwrite(nid_ctesGCM, "anneeref", itau_w,
    1515     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    1616c
    1717      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(raz_date)
    18       CALL histwrite(nid_ctesGCM, "raz_date", itau_dyn,
     18      CALL histwrite(nid_ctesGCM, "raz_date", itau_w,
    1919     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    2020c
    2121      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nday)
    22       CALL histwrite(nid_ctesGCM, "nday", itau_dyn,
     22      CALL histwrite(nid_ctesGCM, "nday", itau_w,
    2323     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    2424c
    2525      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(day_step)
    26       CALL histwrite(nid_ctesGCM, "day_step", itau_dyn,
     26      CALL histwrite(nid_ctesGCM, "day_step", itau_w,
    2727     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    2828c
    2929      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iperiod)
    30       CALL histwrite(nid_ctesGCM, "iperiod", itau_dyn,
     30      CALL histwrite(nid_ctesGCM, "iperiod", itau_w,
    3131     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    3232c
    3333      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iapp_tracvl)
    34       CALL histwrite(nid_ctesGCM, "iapp_tracvl", itau_dyn,
     34      CALL histwrite(nid_ctesGCM, "iapp_tracvl", itau_w,
    3535     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    3636c
    3737      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iconser)
    38       CALL histwrite(nid_ctesGCM, "iconser", itau_dyn,
     38      CALL histwrite(nid_ctesGCM, "iconser", itau_w,
    3939     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    4040c
    4141      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iecri)
    42       CALL histwrite(nid_ctesGCM, "iecri", itau_dyn,
     42      CALL histwrite(nid_ctesGCM, "iecri", itau_w,
    4343     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    4444c
    4545      zx_tmp_2d(1:iip1,1:jjp1)=periodav
    46       CALL histwrite(nid_ctesGCM, "periodav", itau_dyn,
     46      CALL histwrite(nid_ctesGCM, "periodav", itau_w,
    4747     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    4848c
    4949      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(idissip)
    50       CALL histwrite(nid_ctesGCM, "idissip", itau_dyn,
     50      CALL histwrite(nid_ctesGCM, "idissip", itau_w,
    5151     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    5252c
     
    5656       zx_tmp_2d(1:iip1,1:jjp1)=0.
    5757      ENDIF
    58       CALL histwrite(nid_ctesGCM, "lstardis", itau_dyn,
     58      CALL histwrite(nid_ctesGCM, "lstardis", itau_w,
    5959     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    6060c
    6161      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nitergdiv)
    62       CALL histwrite(nid_ctesGCM, "nitergdiv", itau_dyn,
     62      CALL histwrite(nid_ctesGCM, "nitergdiv", itau_w,
    6363     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    6464c
    6565      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nitergrot)
    66       CALL histwrite(nid_ctesGCM, "nitergrot", itau_dyn,
     66      CALL histwrite(nid_ctesGCM, "nitergrot", itau_w,
    6767     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    6868c
    6969      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(niterh)
    70       CALL histwrite(nid_ctesGCM, "niterh", itau_dyn,
     70      CALL histwrite(nid_ctesGCM, "niterh", itau_w,
    7171     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    7272c
    7373      zx_tmp_2d(1:iip1,1:jjp1)=tetagdiv
    74       CALL histwrite(nid_ctesGCM, "tetagdiv", itau_dyn,
     74      CALL histwrite(nid_ctesGCM, "tetagdiv", itau_w,
    7575     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    7676c
    7777      zx_tmp_2d(1:iip1,1:jjp1)=tetagrot
    78       CALL histwrite(nid_ctesGCM, "tetagrot", itau_dyn,
     78      CALL histwrite(nid_ctesGCM, "tetagrot", itau_w,
    7979     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    8080c
    8181      zx_tmp_2d(1:iip1,1:jjp1)=tetatemp
    82       CALL histwrite(nid_ctesGCM, "tetatemp", itau_dyn,
     82      CALL histwrite(nid_ctesGCM, "tetatemp", itau_w,
    8383     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    8484c
    8585      zx_tmp_2d(1:iip1,1:jjp1)=coefdis
    86       CALL histwrite(nid_ctesGCM, "coefdis", itau_dyn,
     86      CALL histwrite(nid_ctesGCM, "coefdis", itau_w,
    8787     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    8888c
     
    9292       zx_tmp_2d(1:iip1,1:jjp1)=0.
    9393      ENDIF
    94       CALL histwrite(nid_ctesGCM, "purmats", itau_dyn,
     94      CALL histwrite(nid_ctesGCM, "purmats", itau_w,
    9595     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    9696c
     
    100100       zx_tmp_2d(1:iip1,1:jjp1)=0.
    101101      ENDIF
    102       CALL histwrite(nid_ctesGCM, "ok_guide", itau_dyn,
     102      CALL histwrite(nid_ctesGCM, "ok_guide", itau_w,
    103103     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    104104c
     
    108108       zx_tmp_2d(1:iip1,1:jjp1)=0.
    109109      ENDIF
    110       CALL histwrite(nid_ctesGCM, "true_calendar", itau_dyn,
     110      CALL histwrite(nid_ctesGCM, "true_calendar", itau_w,
    111111     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    112112c
    113113      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iflag_phys)
    114       CALL histwrite(nid_ctesGCM, "iflag_phys", itau_dyn,
     114      CALL histwrite(nid_ctesGCM, "iflag_phys", itau_w,
    115115     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    116116c
    117117      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iphysiq)
    118       CALL histwrite(nid_ctesGCM, "iphysiq", itau_dyn,
     118      CALL histwrite(nid_ctesGCM, "iphysiq", itau_w,
    119119     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    120120c
    121121      zx_tmp_2d(1:iip1,1:jjp1)=ecritphy
    122       CALL histwrite(nid_ctesGCM, "ecritphy", itau_dyn,
     122      CALL histwrite(nid_ctesGCM, "ecritphy", itau_w,
    123123     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    124124c
     
    128128       zx_tmp_2d(1:iip1,1:jjp1)=0.
    129129      ENDIF
    130       CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_dyn,
     130      CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w,
    131131     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    132132c
     
    136136       zx_tmp_2d(1:iip1,1:jjp1)=0.
    137137      ENDIF
    138       CALL histwrite(nid_ctesGCM, "soil_model", itau_dyn,
     138      CALL histwrite(nid_ctesGCM, "soil_model", itau_w,
    139139     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    140140c
     
    144144       zx_tmp_2d(1:iip1,1:jjp1)=0.
    145145      ENDIF
    146       CALL histwrite(nid_ctesGCM, "new_oliq", itau_dyn,
     146      CALL histwrite(nid_ctesGCM, "new_oliq", itau_w,
    147147     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    148148c
     
    152152       zx_tmp_2d(1:iip1,1:jjp1)=0.
    153153      ENDIF
    154       CALL histwrite(nid_ctesGCM, "ok_orodr", itau_dyn,
     154      CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w,
    155155     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    156156c
     
    160160       zx_tmp_2d(1:iip1,1:jjp1)=0.
    161161      ENDIF
    162       CALL histwrite(nid_ctesGCM, "ok_orolf", itau_dyn,
     162      CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w,
    163163     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    164164c
     
    168168       zx_tmp_2d(1:iip1,1:jjp1)=0.
    169169      ENDIF
    170       CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_dyn,
     170      CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w,
    171171     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    172172c
    173173      zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad
    174       CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_dyn,
     174      CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w,
    175175     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    176176c
    177177      zx_tmp_2d(1:iip1,1:jjp1)=iflag_con
    178       CALL histwrite(nid_ctesGCM, "iflag_con", itau_dyn,
     178      CALL histwrite(nid_ctesGCM, "iflag_con", itau_w,
    179179     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    180180c
    181181      zx_tmp_2d(1:iip1,1:jjp1)=clon
    182       CALL histwrite(nid_ctesGCM, "clon", itau_dyn,
     182      CALL histwrite(nid_ctesGCM, "clon", itau_w,
    183183     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    184184c
    185185      zx_tmp_2d(1:iip1,1:jjp1)=clat
    186       CALL histwrite(nid_ctesGCM, "clat", itau_dyn,
     186      CALL histwrite(nid_ctesGCM, "clat", itau_w,
    187187     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    188188c
    189189      zx_tmp_2d(1:iip1,1:jjp1)=grossismx
    190       CALL histwrite(nid_ctesGCM, "grossismx", itau_dyn,
     190      CALL histwrite(nid_ctesGCM, "grossismx", itau_w,
    191191     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    192192c
    193193      zx_tmp_2d(1:iip1,1:jjp1)=grossismy
    194       CALL histwrite(nid_ctesGCM, "grossismy", itau_dyn,
     194      CALL histwrite(nid_ctesGCM, "grossismy", itau_w,
    195195     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    196196c
     
    200200       zx_tmp_2d(1:iip1,1:jjp1)=0.
    201201      ENDIF
    202       CALL histwrite(nid_ctesGCM, "fxyhypb", itau_dyn,
     202      CALL histwrite(nid_ctesGCM, "fxyhypb", itau_w,
    203203     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    204204c
    205205      zx_tmp_2d(1:iip1,1:jjp1)=dzoomx
    206       CALL histwrite(nid_ctesGCM, "dzoomx", itau_dyn,
     206      CALL histwrite(nid_ctesGCM, "dzoomx", itau_w,
    207207     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    208208c
    209209      zx_tmp_2d(1:iip1,1:jjp1)=dzoomy
    210       CALL histwrite(nid_ctesGCM, "dzoomy", itau_dyn,
     210      CALL histwrite(nid_ctesGCM, "dzoomy", itau_w,
    211211     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    212212c
    213213      zx_tmp_2d(1:iip1,1:jjp1)=taux
    214       CALL histwrite(nid_ctesGCM, "taux", itau_dyn,
     214      CALL histwrite(nid_ctesGCM, "taux", itau_w,
    215215     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    216216c
    217217      zx_tmp_2d(1:iip1,1:jjp1)=tauy
    218       CALL histwrite(nid_ctesGCM, "tauy", itau_dyn,
     218      CALL histwrite(nid_ctesGCM, "tauy", itau_w,
    219219     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    220220c
     
    224224       zx_tmp_2d(1:iip1,1:jjp1)=0.
    225225      ENDIF
    226       CALL histwrite(nid_ctesGCM, "ysinus", itau_dyn,
     226      CALL histwrite(nid_ctesGCM, "ysinus", itau_w,
    227227     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    228228c
    229229      zx_tmp_2d(1:iip1,1:jjp1)=ip_ebil_dyn
    230       CALL histwrite(nid_ctesGCM, "ip_ebil_dyn", itau_dyn,
     230      CALL histwrite(nid_ctesGCM, "ip_ebil_dyn", itau_w,
    231231     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    232232c
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/albedo.F

    r766 r845  
    2121cym#include "dimphy.h"
    2222#include "YOMCST.h"
     23#include "clesphys.h"
    2324c
    24       REAL fmagic ! un facteur magique pour regler l'albedo
     25c fmagic -> clesphys.h/.inc
     26c     REAL fmagic ! un facteur magique pour regler l'albedo
    2527ccc      PARAMETER (fmagic=0.7)
    2628cccIM => a remplacer 
    2729c       PARAMETER (fmagic=1.32)
    28         PARAMETER (fmagic=1.0)
     30c       PARAMETER (fmagic=1.0)
    2931c       PARAMETER (fmagic=0.7)
    3032      INTEGER npts ! il controle la precision de l'integration
     
    144146cym#include "dimensions.h"
    145147cym#include "dimphy.h"
     148#include "clesphys.h"
    146149      REAL rmu0(klon), albedo(klon)
    147150c
    148       REAL fmagic ! un facteur magique pour regler l'albedo
     151c     REAL fmagic ! un facteur magique pour regler l'albedo
    149152ccc      PARAMETER (fmagic=0.7)
    150153cccIM => a remplacer 
    151154c       PARAMETER (fmagic=1.32)
    152         PARAMETER (fmagic=1.0)
     155c       PARAMETER (fmagic=1.0)
    153156c       PARAMETER (fmagic=0.7)
    154157c
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/calcul_simulISCCP.h

    r766 r845  
    1010c
    1111      nbapp_isccp=30 !appel toutes les 15h
    12       isccppas=NINT((itap*dtime)/3600.) !Nb. d'heures de la physique
     12cIM 170107      isccppas=NINT((itap*dtime)/3600.) !Nb. d'heures de la physique
    1313      freqin_pdt(n)=ifreq_isccp(n)
    1414c
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/clesphys.h

    r793 r845  
    3131!IM ok_kzmin : clef calcul Kzmin dans la CL de surface cf FH
    3232       LOGICAL ok_kzmin
     33!IM fmagic : parametre pour regler l albedo sur ocean
     34       REAL fmagic
    3335!IM lev_histhf  : niveau sorties 6h
    3436!IM lev_histday : niveau sorties journalieres
     
    4042       REAL ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day
    4143       REAL ecrit_mth, ecrit_tra, ecrit_reg
    42        REAL freqin_isccp, freqout_isccp
     44       REAL freq_ISCCP, ecrit_ISCCP
    4345       INTEGER :: ip_ebil_phy
    4446       LOGICAL ok_slab_sicOBS
     
    4951     &     , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt                     &
    5052     &     , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter        &
    51      &     , ok_kzmin, lev_histhf, lev_histday, lev_histmth             &
     53     &     , ok_kzmin, fmagic, lev_histhf, lev_histday, lev_histmth     &
    5254     &     , type_run, ok_isccp, ok_regdyn                              &
    5355     &     , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins             &
    5456     &     , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day               &
    5557     &     , ecrit_mth, ecrit_tra, ecrit_reg                            &
    56      &     , freqin_isccp, freqout_isccp, ip_ebil_phy                   &
     58     &     , freq_ISCCP, ecrit_ISCCP, ip_ebil_phy                       &
    5759     &     , ok_slab_sicOBS, ok_lic_melt, cvl_corr
    5860     
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/conf_phys.F90

    r793 r845  
    55!
    66
    7   subroutine conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, &
     7  subroutine conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, ok_hf, &
    88 &                     fact_cldcon, facttemps,ok_newmicro,iflag_cldcon, &
    99!IM&                   ratqsbas,ratqshaut,ip_ebil_phy, &
     
    1919 include "fisrtilp.h"
    2020 include "nuage.h"
    21    include "YOMCST.h"
     21 include "YOMCST.h"
    2222!IM : on inclut/initialise les taux de CH4, N2O, CFC11 et CFC12
    2323include "clesphys.h"
     
    3535! ok_veget:   type de modele de vegetation
    3636! ok_journe:  sorties journalieres
     37! ok_hf:  sorties haute frequence
    3738! ok_mensuel: sorties mensuelles
    3839! ok_instan:  sorties instantanees
     
    4546  character (len = 6)  :: ocean
    4647  logical              :: ok_veget, ok_newmicro
    47   logical              :: ok_journe, ok_mensuel, ok_instan       
     48  logical              :: ok_journe, ok_mensuel, ok_instan, ok_hf
    4849  LOGICAL              :: ok_ade, ok_aie
    4950  REAL                 :: bl95_b0, bl95_b1
     
    5354  character (len = 6),SAVE  :: ocean_omp
    5455  logical,SAVE              :: ok_veget_omp, ok_newmicro_omp
    55   logical,SAVE        :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp       
     56  logical,SAVE        :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp       
    5657  LOGICAL,SAVE        :: ok_ade_omp, ok_aie_omp
    5758  REAL,SAVE           :: bl95_b0_omp, bl95_b1_omp
     59  REAL,SAVE           :: freq_ISCCP_omp, ecrit_ISCCP_omp
    5860  real,SAVE           :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp
    5961  real,SAVE           :: ratqshaut_omp
     
    8082  REAL,SAVE :: cdmmax_omp,cdhmax_omp,ksta_omp,ksta_ter_omp
    8183  LOGICAL,SAVE :: ok_kzmin_omp
     84  REAL, SAVE ::  fmagic_omp
    8285  INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp
    8386  CHARACTER*4, SAVE :: type_run_omp
     
    119122  call getin('OK_journe', ok_journe_omp)
    120123!
     124!Config Key  = ok_hf
     125!Config Desc = Pour des sorties haute frequence
     126!Config Def  = .false.
     127!Config Help = Pour creer le fichier histhf contenant les sorties
     128!              haute frequence ( 3h ou 6h)
     129!
     130  ok_hf_omp = .false.
     131  call getin('ok_hf', ok_hf_omp)
     132!
    121133!Config Key  = OK_mensuel
    122134!Config Desc = Pour des sorties mensuelles
     
    171183  call getin('bl95_b1', bl95_b1_omp)
    172184
    173 !
     185!Config Key  = freq_ISCCP
     186!Config Desc = Frequence d'appel du simulateur ISCCP en secondes;
     187!              par defaut 10800, i.e. 3 heures
     188!Config Def  = 10800.
     189!Config Help = Used in ini_histISCCP.h
     190!
     191  freq_ISCCP_omp = 10800.
     192  call getin('freq_ISCCP', freq_ISCCP_omp)
     193!
     194!Config Key  = ecrit_ISCCP
     195!Config Desc = Frequence d'ecriture des resultats du simulateur ISCCP en nombre de jours;
     196!              par defaut 1., i.e. 1 jour
     197!Config Def  = 1.
     198!Config Help = Used in ini_histISCCP.h
     199!
     200!
     201  ecrit_ISCCP_omp = 1.
     202  call getin('ecrit_ISCCP', ecrit_ISCCP_omp)
    174203!
    175204!Config Key  = ip_ebil_phy
     
    562591  call getin('ok_kzmin',ok_kzmin_omp)
    563592
     593!
     594!Config Key  = fmagic
     595!Config Desc =
     596!Config Def  = 1.
     597!Config Help = Used in albedo.F
     598!
     599  fmagic_omp = 1.
     600  call getin('fmagic',fmagic_omp)
     601
    564602!Config Key = ok_lic_melt
    565603!Config Desc = Prise en compte de la fonte de la calotte dans le bilan d'eau
     
    636674  call getin('type_run',type_run_omp)
    637675
    638   !
     676!
    639677!Config Key  = ok_isccp
    640678!Config Desc =
     
    693731!Config Desc =
    694732!Config Def  = 1.0 !tous les jours
    695 !Config Help =
     733!Config Help = nombre de jours pour ecriture fichier histday.nc
    696734!
    697735  ecrit_day_omp = 1.0
     
    773811    ksta_ter = ksta_ter_omp
    774812    ok_kzmin = ok_kzmin_omp
     813    fmagic = fmagic_omp
    775814    iflag_pbl = iflag_pbl_omp
    776815    lev_histhf = lev_histhf_omp
     
    782821    ok_newmicro = ok_newmicro_omp
    783822    ok_journe = ok_journe_omp
     823    ok_hf = ok_hf_omp
    784824    ok_mensuel = ok_mensuel_omp
    785825    ok_instan = ok_instan_omp
     826    freq_ISCCP = freq_ISCCP_omp
     827    ecrit_ISCCP = ecrit_ISCCP_omp
    786828    ok_ade = ok_ade_omp
    787829    ok_aie = ok_aie_omp
     
    818860  write(numout,*)' Config veget = ', ok_veget
    819861  write(numout,*)' Sortie journaliere = ', ok_journe
     862  write(numout,*)' Sortie haute frequence = ', ok_hf
    820863  write(numout,*)' Sortie mensuelle = ', ok_mensuel
    821864  write(numout,*)' Sortie instantanee = ', ok_instan
     865  write(numout,*)' Frequence appel simulateur ISCCP, freq_ISCCP =', freq_ISCCP
     866  write(numout,*)' Frequence appel simulateur ISCCP, ecrit_ISCCP =', ecrit_ISCCP
    822867  write(numout,*)' Sortie bilan d''energie, ip_ebil_phy =', ip_ebil_phy
    823868  write(numout,*)' Excentricite = ',R_ecc
     
    858903  write(numout,*)' ksta_ter = ',ksta_ter
    859904  write(numout,*)' ok_kzmin = ',ok_kzmin
     905  write(numout,*)' fmagic = ',fmagic
    860906  write(numout,*)' ok_ade = ',ok_ade
    861907  write(numout,*)' ok_aie = ',ok_aie
     
    871917  write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',&
    872918 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
    873   write(numout,*)' ecrit_ hf, day, mth, reg',&
    874  & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra
     919  write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP',&
     920 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP
    875921
    876922!$OMP END MASTER
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cpl_mod.F90

    r793 r845  
    1717! Use statements
    1818!*************************************************************************************
    19   USE dimphy, ONLY : klon, zmasq
     19  USE dimphy, ONLY : klon
    2020  USE mod_phys_lmdz_para
    2121  USE ioipsl
     
    7171  REAL, ALLOCATABLE, DIMENSION(:,:), SAVE   :: pctsrf_sav   
    7272  !$OMP THREADPRIVATE(pctsrf_sav)
    73   REAL, ALLOCATABLE, DIMENSION(:,:), SAVE   :: zmasq2D
    74   !$OMP THREADPRIVATE(zmasq2D)
    7573  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE  :: unity
    7674  !$OMP THREADPRIVATE(unity)
     
    181179    ALLOCATE(read_alb_sic(iim, jj_nb), stat = error)
    182180    sum_error = sum_error + error
    183     ALLOCATE(zmasq2D(iim, jj_nb), stat = error)
    184     sum_error = sum_error + error   
    185    
    186181
    187182    IF (sum_error /= 0) THEN
     
    202197    cpl_taux = 0.   ; cpl_tauy = 0.  ; cpl_rriv2D = 0. ; cpl_rcoa2D = 0.
    203198    cpl_rlic2D = 0. ; cpl_windsp = 0.
    204 
    205 !*************************************************************************************
    206 ! Transform the land-ocean mask into 2D grid.
    207 ! Colorize zmasq2D with 99 so that after gath2cpl points not valid can be recognized.
    208 !
    209 !*************************************************************************************
    210     zmasq2D(:,:) = 99.
    211     CALL gath2cpl(zmasq, zmasq2D, klon, unity)
    212199
    213200!*************************************************************************************
     
    936923    INTEGER, DIMENSION(iim*(jjm+1))                      :: ndexct
    937924    REAL                                                 :: Up, Down
    938     REAL, DIMENSION(iim, jj_nb)                       :: tmp_lon, tmp_lat
    939     REAL, DIMENSION(iim, jj_nb, 4)                    :: pctsrf2D
    940     REAL, DIMENSION(iim, jj_nb)                       :: deno
     925    REAL, DIMENSION(iim, jj_nb)                          :: tmp_lon, tmp_lat
     926    REAL, DIMENSION(iim, jj_nb, 4)                       :: pctsrf2D
     927    REAL, DIMENSION(iim, jj_nb)                          :: deno
    941928    CHARACTER(len = 20)                                  :: modname = 'cpl_send_all'
    942929    CHARACTER(len = 80)                                  :: abort_message
    943930   
    944931! Variables with fields to coupler
    945     REAL, DIMENSION(iim, jj_nb)                       :: tmp_taux
    946     REAL, DIMENSION(iim, jj_nb)                       :: tmp_tauy
    947     REAL, DIMENSION(iim, jj_nb)                       :: tmp_calv
     932    REAL, DIMENSION(iim, jj_nb)                          :: tmp_taux
     933    REAL, DIMENSION(iim, jj_nb)                          :: tmp_tauy
     934    REAL, DIMENSION(iim, jj_nb)                          :: tmp_calv
    948935! Table with all fields to send to coupler
    949     REAL, DIMENSION(iim, jj_nb, jpflda2o1+jpflda2o2)  :: tab_flds
     936    REAL, DIMENSION(iim, jj_nb, jpflda2o1+jpflda2o2)     :: tab_flds
    950937#ifdef CPP_PARA
    951938    INCLUDE 'mpif.h'
     
    10361023    tmp_tauy(:,:)    = 0.0
    10371024   
    1038     ! For all valid grid cells not entier land
    1039     WHERE (zmasq2D /= 1. .AND. zmasq2D /=99. )
    1040        deno =  pctsrf2D(:,:,is_oce) + pctsrf2D(:,:,is_sic) ! fraction oce+seaice
     1025
     1026    ! fraction oce+seaice
     1027    deno =  pctsrf2D(:,:,is_oce) + pctsrf2D(:,:,is_sic)
     1028    ! For all valid grid cells containing some fraction of ocean or sea-ice
     1029    WHERE ( deno(:,:) /= 0 )
     1030       tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1031            cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
     1032       tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1033            cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
    10411034       
    1042        tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno +    &
    1043             cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno
    1044        tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno +    &
    1045             cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno
    1046        
    1047        tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno +    &
    1048             cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno
    1049        tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno +    &
    1050             cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno
     1035       tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1036            cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
     1037       tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
     1038            cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
    10511039    ENDWHERE
    10521040
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cv3_routines.F

    r776 r845  
    10751075        endif
    10761076 506   continue
    1077        buoy(icb(i),k)=buoybase(i)
     1077cIM cf. CRio/JYG 270807   buoy(icb(i),k)=buoybase(i)
     1078       buoy(i,icb(i))=buoybase(i)
    10781079 505  continue
    10791080
     
    12041205        enddo
    12051206      enddo
    1206      
     1207
    12071208      do 600 k=minorig+1,nl
    12081209        do 590 i=1,ncum
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_histISCCP.h

    r776 r845  
    1515cIM 300505     zstophy = dtime
    1616c appel du simulateur toutes les 3heures
    17           zcals(1) = dtime *6.  !toutes les 3h (en s)
     17!IM on lit la frequence d'appel dans physiq.def
     18!         zcals(1) = dtime *6.  !toutes les 3h (en s)
     19          zcals(1) = freq_ISCCP !toutes les freq_ISCCP secondes
    1820        DO n=1, napisccp
    1921          zcalh(n) = zcals(n)/3600. !stoutes les Xh (en heures)
     
    2931c       IF(freqout_isccp.EQ.1.) THEN
    3032c ecriture jounaliere
    31           zout_isccp(1) = ecrit_day !(en s)
     33!IM on ecrit les resultats du simulateur ISCCP toutes les
     34! ecrit_ISCCP secondes      zout_isccp(1) = ecrit_day !(en s)
     35          zout_isccp(1) = ecrit_ISCCP !(en s)
    3236c ecriture mensuelle
    3337c         zout = dtime * ecrit_mth !(en s)
     
    3741c le nombre de sous-colonnes ncol : ncol=(100.*zcalh)/zoutd
    3842          ncol(n)=NINT((100.*zcalh(n))/zoutj(n))
    39           PRINT*,'n ncol',n,ncol(n)
     43          IF(ncol(n).GT.ncolmx) THEN
     44           PRINT*,'Warning: Augmenter le nombre colonnes du simulateur'
     45           PRINT*,'         ISCCP ncol=', ncol,' ncolmx=',ncolmx
     46c          PRINT*,'n ncol',n,ncol(n)
     47           CALL abort
     48          ENDIF
    4049c
    4150        DO l=1, ncol(n)
     
    8089cym          enddo
    8190c
    82           print*,'On stoke le fichier histISCCP instantanne sur ',
     91          print*,'On stoke le fichier histISCCP sur ',
    8392     s   imin_ins,imax_ins,jmin_ins,jmax_ins
    8493cym          print*,'On stoke le fichier histISCCP instantanne sur ',
     
    94103         CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime,
    95104     .                 nhori, nid_isccp)
    96 
    97105        ENDIF !(1.EQ.0) THEN
    98106c
     
    106114         CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime,
    107115     .                 nhori, nid_isccp)
    108 
    109116c
    110117        IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
     
    128135c
    129136         DO k=1, kmaxm1
    130           CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)//typinout(n),
     137          CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)//verticaxe(n),
    131138     .                "LMDZ ISCCP cld", "%",
    132139     .                iim, jj_nb,nhori,lmaxm1,1,lmaxm1,nvert,32,
     
    134141         ENDDO
    135142c
    136          CALL histdef(nid_isccp, "nsunlit"//typinout(n),
     143         CALL histdef(nid_isccp, "nsunlit"//verticaxe(n),
    137144     .                "Nb of calls with sunlit ", "%",
    138145     .                iim, jj_nb,nhori,1,1,1,-99,32,
     
    150157           DO l=1, lmaxm1
    151158c
    152            CALL histdef(nid_isccp, pclev(l)//taulev(k)//typinout(n),
     159           CALL histdef(nid_isccp, pclev(l)//taulev(k)//verticaxe(n),
    153160     .                "LMDZ ISCCP cld "//cnameisccp(l,k), "%",
    154161     .                iim, jj_nb,nhori,1,1,1,-99,32,
     
    159166c
    160167c         print*,'n=',n,' avant histdef(..Nb of calls sunlit'
    161           CALL histdef(nid_isccp, "nsunlit"//typinout(n),
     168          CALL histdef(nid_isccp, "nsunlit"//verticaxe(n),
    162169     .                "Nb of calls with sunlit ", "%",
    163170     .                iim, jj_nb,nhori,1,1,1,-99,32,
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_histmth.h

    r776 r845  
    833833C
    834834         if (nqmax.GE.3) THEN
    835          DO iq=1,nqmax-2
    836          IF (iq.LE.99) THEN
    837          WRITE(str2,'(i2.2)') iq
    838          CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-",
    839      .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    840      .                "ave(X)", zstophy,zout)
    841          ELSE
    842          PRINT*, "Trop de traceurs"
    843          CALL abort
    844          ENDIF
    845          ENDDO
     835           DO iq=3,nqmax
     836           iiq=niadv(iq)
     837             CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-",
     838     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
     839     .                "ave(X)", zstophy,zout)
     840           ENDDO
    846841         ENDIF
    847842c
     
    17451740C
    17461741         if (nqmax.GE.3) THEN
    1747          DO iq=3,nqmax
    1748          iiq=niadv(iq)
    1749          CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-",
    1750      .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    1751      .                "ave(X)", zstophy,zout)
    1752          ENDDO
    1753          ENDIF
     1742           DO iq=3,nqmax
     1743             iiq=niadv(iq)
     1744             CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-",
     1745     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
     1746     .                "ave(X)", zstophy,zout)
     1747             ENDDO
     1748           ENDIF
    17541749
    17551750      ENDIF !lev_histmth.GE.4
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_paramLMDZ_phy.h

    r776 r845  
    347347     .                "once", zstophy,zout)
    348348c
    349        CALL histdef(nid_ctesGCM, "freqin_isccp",
    350      .                "freqin_isccp", "-",
    351      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    352      .                "once", zstophy,zout)
    353 c
    354        CALL histdef(nid_ctesGCM, "freqout_isccp",
    355      .                "freqout_isccp", "-",
     349       CALL histdef(nid_ctesGCM, "freq_ISCCP",
     350     .                "freq_ISCCP", "-",
     351     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     352     .                "once", zstophy,zout)
     353c
     354       CALL histdef(nid_ctesGCM, "ecrit_ISCCP",
     355     .                "ecrit_ISCCP", "-",
    356356     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    357357     .                "once", zstophy,zout)
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/physiq.F

    r800 r845  
    385385      INTEGER jmin_debut, nbptj
    386386cIM parametres ISCCP BEG
    387       INTEGER nbapp_isccp,isccppas
     387      INTEGER nbapp_isccp
     388!     INTEGER nbapp_isccp,isccppas
     389!     PARAMETER(isccppas=6) !appel du simulateurs tous les 6pas de temps de la physique
     390!                           !i.e. toutes les 3 heures
    388391      INTEGER n, napisccp
    389392c     PARAMETER(napisccp=3)
     
    419422      INTEGER ncolmx, seed(klon,napisccp)
    420423      REAL nbsunlit(nregISCtot,klon,napisccp)  !nbsunlit : moyenne de sunlit
    421       PARAMETER(ncolmx=350)
     424c     PARAMETER(ncolmx=1500)
     425      PARAMETER(ncolmx=300)
    422426c
    423427cIM verif boxptop BEG
     
    495499c$OMP THREADPRIVATE(nid_isccp)
    496500
    497 c     data ok_isccp,ecrit_isccp/.true.,0.125/     
    498 c     data ok_isccp,ecrit_isccp/.true.,1./     
    499 cIM 190504     data ok_isccp/.true./     
    500 cIM 190504 #else
    501 cIM 190504     data ok_isccp/.false./
    502 cIM 190504 #endif
    503 
    504501      REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax)
    505502      DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./
    506503      SAVE zx_tau
    507 cIM bad 151205     DATA zx_pc/50., 180., 310., 440., 560., 680., 800./
    508504      DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./
    509505      SAVE zx_pc
     
    600596c  QUESTION : noms de variables ?
    601597
    602 #ifdef histhf
    603       data ok_hf/.true./
    604 #else
    605       data ok_hf/.false./
    606 #endif
     598c#ifdef histhf
     599c      data ok_hf/.true./
     600c#else
     601c      data ok_hf/.false./
     602c#endif
    607603      INTEGER        longcles
    608604      PARAMETER    ( longcles = 20 )
     
    11671163      REAL tabcntr0( length       )
    11681164c
    1169 
    11701165      INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev)
    11711166cIM
     
    15261521c
    15271522         call conf_phys(ocean, ok_veget, ok_journe, ok_mensuel,
    1528      .                  ok_instan, fact_cldcon, facttemps,ok_newmicro,
     1523     .                  ok_instan, ok_hf,
     1524     .                  fact_cldcon, facttemps,ok_newmicro,
    15291525cIM  .                  iflag_cldcon,ratqsbas,ratqshaut, if_ebil,
    15301526     .                  iflag_cldcon,ratqsbas,ratqshaut,
     
    16961692cIM on passe les frequences de jours en secondes : ecrit_ins, ecrit_hf, ecrit_day, ecrit_mth, ecrit_tra, ecrit_reg
    16971693         ecrit_hf = ecrit_hf * un_jour
    1698          ecrit_day = ecrit_day * un_jour
     1694!IM
     1695         IF(ecrit_day.LE.1.) THEN
     1696          ecrit_day = ecrit_day * un_jour !en secondes
     1697         ENDIF
     1698!IM
    16991699         ecrit_mth = ecrit_mth * un_jour
    17001700         ecrit_reg = ecrit_reg * un_jour
    17011701         ecrit_tra = ecrit_tra * un_jour
     1702         ecrit_ISCCP = ecrit_ISCCP * un_jour
     1703c
     1704         PRINT*,'physiq ecrit_ hf day mth reg tra ISCCP',ecrit_hf,
     1705     .   ecrit_day,ecrit_mth,ecrit_reg,ecrit_tra,ecrit_ISCCP
    17021706cIM 030306 END
    17031707
     
    17441748#endif
    17451749
    1746 c#include "ini_histday_seri.h"
    17471750#include "ini_histday_seri.h"
    17481751
     
    25322535cIM calcul nuages par le simulateur ISCCP
    25332536c
     2537#ifdef histISCCP
    25342538      IF (ok_isccp) THEN
     2539cIM appel simulateur toutes les  NINT(freq_ISCCP/dtime) heures
     2540       IF (MOD(itap,NINT(freq_ISCCP/dtime)).EQ.0) THEN
    25352541#include "calcul_simulISCCP.h"
     2542       ENDIF !(MOD(itap,NINT(freq_ISCCP/dtime))
    25362543      ENDIF !ok_isccp
     2544#endif
    25372545
    25382546c   On prend la somme des fractions nuageuses et des contenus en eau
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/surf_land_orchidee_mod.F90

    r812 r845  
    371371#endif
    372372#ifdef ORC_PREPAR
    373           ! Interface for version 1.8 or earlier of ORCHIDEE
     373          ! Interface for ORCHIDEE version 1.9 or earlier compiled in sequential mode(without preprocessing flag CPP_PARA)
    374374          CALL intersurf_main (itime+itau_phy-1, iim, jjm+1, knon, ktindex, dtime, &
    375375               lrestart_read, lrestart_write, lalo, &
     
    383383
    384384#else         
     385          ! Interface for ORCHIDEE version 1.9 compiled in parallel mode(with preprocessing flag CPP_PARA)
    385386          CALL intersurf_main (itime+itau_phy-1, iim, jjm+1, offset, knon, ktindex, &
    386387               orch_comm, dtime, lrestart_read, lrestart_write, lalo, &
     
    406407   
    407408#ifdef ORC_PREPAR
    408        ! Interface for version 1.8 or earlier of ORCHIDEE
    409        CALL intersurf_main (itime+itau_phy-1, iim, jjm+1, knon, ktindex, dtime, &
     409       ! Interface for ORCHIDEE version 1.9 or earlier compiled in sequential mode(without preprocessing flag CPP_PARA)
     410       CALL intersurf_main (itime+itau_phy, iim, jjm+1, knon, ktindex, dtime, &
    410411            lrestart_read, lrestart_write, lalo, &
    411412            contfrac, neighbours, resolution, date0, &
    412413            zlev,  u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, &
    413414            cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, &
    414             precip_rain, precip_snow, lwdown, swnet, swdown, ps, &
     415            precip_rain, precip_snow, lwdown, swnet, swdown_vrai, ps, &
    415416            evap, fluxsens, fluxlat, coastalflow, riverflow, &
    416417            tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, &
     
    418419       
    419420#else
    420 
     421       ! Interface for ORCHIDEE version 1.9 compiled in parallel mode(with preprocessing flag CPP_PARA)
    421422       CALL intersurf_main (itime+itau_phy, iim, jjm+1,offset, knon, ktindex, &
    422423            orch_comm,dtime, lrestart_read, lrestart_write, lalo, &
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/write_histISCCP.h

    r776 r845  
    2020cIM: champ 3d : (lon,lat,pres) pour un tau fixe
    2121c
    22        CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)//typinout(n),
     22       CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)//verticaxe(n),
    2323     .                  itau_w,zx_tmp_fi3d)
    2424        ENDDO !k
    2525c
    2626cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
    27         CALL histwrite_phy(nid_isccp,"nsunlit"//typinout(n),itau_w,
     27        CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n),itau_w,
    2828     .                 nbsunlit(1,:,n))
    2929c
     
    5555cIM: champ 2d : (lon,lat) pour un tau et une pc fixes
    5656c
    57          CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)//typinout(n),
    58      .                  itau_w,fq_is_true(:,:,l,n))
     57         CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)//verticaxe(n),
     58     .                  itau_w,fq_is_true(:,k,l,n))
    5959         ENDDO !l
    6060        ENDDO !k
     
    6262c       print*,'n=',n,' write_ISCCP avant nbsunlit'
    6363cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
    64         CALL histwrite_phy(nid_isccp,"nsunlit"//typinout(n),
     64        CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n),
    6565     .                 itau_w,nbsunlit(1,:,n))
    6666c
  • LMDZ4/branches/LMDZ4_V3_patches/machine/arch-IA64_PLATINE.fcm

    r810 r845  
    66%FPP_FLAGS           -P -traditional
    77%FPP_DEF             NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM
    8 %LD_FLAGS            -i4 -r8 -automatic
     8%LD_FLAGS            -i4 -r8 -automatic -L/applications/intel/ict/3.0/cmkl/9.0/lib/64 -lmkl_ipf -lguide
  • LMDZ4/branches/LMDZ4_V3_patches/machine/arch-IA64_PLATINE.path

    r810 r845  
    11set NETCDF_LIBDIR=/applications/netcdf/lib
    22set NETCDF_INCDIR=/applications/netcdf/include
    3 set IOIPSL_INCDIR=$WORKDIR/IOIPSL_MPP/src
    4 set IOIPSL_LIBDIR=$WORKDIR/IOIPSL_MPP/src
    5 set ORCH_INCDIR=$WORKDIR/ORCHIDEE/lib
    6 set ORCH_LIBDIR=$WORKDIR/ORCHIDEE/lib
     3set IOIPSL_INCDIR=$LMDGCM/../../lib
     4set IOIPSL_LIBDIR=$LMDGCM/../../lib
     5set ORCH_INCDIR=$LMDGCM/../../lib
     6set ORCH_LIBDIR=$LMDGCM/../../lib
     7set OASIS_INCDIR=$LMDGCM/../../prism/IA64/build/lib/psmile.$couple
     8set OASIS_LIBDIR=$LMDGCM/../../prism/IA64/lib
     9set INCA_LIBDIR=$LMDGCM/../INCA3/config/lib
     10set INCA_INCDIR=$LMDGCM/../INCA3/config/lib
     11
  • LMDZ4/branches/LMDZ4_V3_patches/machine/arch-SX8_MERCURE.path

    r783 r845  
    1 set ARCH=SX6
    21set NETCDF_LIBDIR=/usr/local/SX8/soft/netcdf/lib
    32set NETCDF_INCDIR=/usr/local/SX8/soft/netcdf/include
    4 set IOIPSL_INCDIR=$WORKDIR/IOIPSL_MPP/src
    5 set IOIPSL_LIBDIR=$WORKDIR/IOIPSL_MPP/src
    6 set ORCH_INCDIR=$WORKDIR/ORCHIDEE/lib
    7 set ORCH_LIBDIR=$WORKDIR/ORCHIDEE/lib
     3set IOIPSL_INCDIR=$LMDGCM/../../lib
     4set IOIPSL_LIBDIR=$LMDGCM/../../lib
     5set ORCH_INCDIR=$LMDGCM/../../lib
     6set ORCH_LIBDIR=$LMDGCM/../../lib
     7set OASIS_INCDIR=$LMDGCM/../../prism/SX/build/lib/psmile.$couple
     8set OASIS_LIBDIR=$LMDGCM/../../prism/SX/lib
     9set INCA_LIBDIR=$LMDGCM/../INCA3/config/lib
     10set INCA_INCDIR=$LMDGCM/../INCA3/config/lib
  • LMDZ4/branches/LMDZ4_V3_patches/makegcm

    r792 r845  
    291291   set optdbl='-dw -Wf\"-A dbl4\"' 
    292292#   set optim90='-P stack -Wf,-pvctl res=whole,-A dbl4,-init stack=nan,-init heap=nan,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 fullmsg noassume" -I/SX/usr/include'
    293    set optim90='-P stack -Wf,-pvctl res=whole,-A dbl4,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 fullmsg noassume" -I/SX/usr/include'
     293   set optim90='-P stack -Wf,-pvctl res=whole,-A dbl4,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 noassume" -I/SX/usr/include'
    294294#   set optim90='-C vsafe -P stack -Wf,-pvctl res=whole,-A dbl4,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 fullmsg noassume" -I/SX/usr/include'
    295295   set optimtru90="$optim90"
     
    541541if ( "$veget" == 'true' ) then
    542542   set cppflags="$cppflags -DCPP_VEGET"
    543    set link_veget=" -lsechiba -lparameters -lstomate -lparallel -lorglob"
     543   set link_veget=" -lsechiba -lparameters -lstomate -lorglob -lparallel"
    544544   if ( $XNEC || $X8BRODIE || $X6NEC) then
    545       set link_veget=" -lsxsechiba -lsxparameters -lsxstomate -lsxparallel -lsxorglob"
     545      set link_veget=" -lsxsechiba -lsxparameters -lsxstomate -lsxorglob -lsxparallel"
    546546   endif
    547547endif
     
    646646endif
    647647if ( $NEC || $XNEC || $X6NEC || $X8BRODIE ) then
    648     set nomlib=F90_${dim_}_t${ntrac}${FLAG_PARA}
     648    set nomlib=F90_${dim_}_t${ntrac}_'phy'${physique}${FLAG_PARA}
    649649endif
    650650echo calcul de la dimension
  • LMDZ4/branches/LMDZ4_V3_patches/makegcm_fcm

    r783 r845  
    2424set veget=false
    2525set chimie=false
    26 set psmile=false
    2726set parallel=false
    2827set io=ioipsl
    2928
    30 set LMDGCM=$PWD
     29set LMDGCM=`/bin/pwd`
    3130set LIBOGCM=$LMDGCM/libo
    3231set LIBFGCM=$LMDGCM/libf
     
    6059[-p PHYS]              : compilation avec la physique libf/phyPHYS, (def: lmd)
    6160[-debug]               : compile avec options debug.
    62 [-c false/true]        : couplé océan : mpi1/mpi2/false (def: false)
     61[-c false/MPI1/MPI2]   : couplé océan : MPI1/MPI2/false (def: false)
    6362[-v false/true]        : avec ou sans végétation (def: false)
    6463[-chimie SCHEMA/false] : nom du schéma chimique ou false (def)
     
    155154
    156155
    157 if ( "$chimie" == 'true' ) then
     156if ( "$chimie" == 'AER' ) then
     157    set CPP_KEY="$CPP_KEY INCA INCA_AER"
     158    set INCLUDE="$INCLUDE -I${INCA_INCDIR}"
     159    set LIB="$LIB -L${INCA_LIBDIR} -lchimie"
     160else if  ( "$chimie" == 'CH4' ) then
     161    set CPP_KEY="$CPP_KEY INCA INCA_CH4"
     162    set INCLUDE="$INCLUDE -I${INCA_INCDIR}"
     163    set LIB="$LIB -L${INCA_LIBDIR} -lchimie"
     164else if  ( "$chimie" == 'CH4_AER' ) then
     165    set CPP_KEY="$CPP_KEY INCA INCA_AER INCA_CH4"
     166    set INCLUDE="$INCLUDE -I${INCA_INCDIR}"
     167    set LIB="$LIB -L${INCA_LIBDIR} -lchimie"
     168else if  ( "$chimie" == 'NMHC' ) then
     169    set CPP_KEY="$CPP_KEY INCA INCA_NMHC"
     170    set INCLUDE="$INCLUDE -I${INCA_INCDIR}"
     171    set LIB="$LIB -L${INCA_LIBDIR} -lchimie"
     172else if  ( "$chimie" == 'NMHC_AER' ) then
     173    set CPP_KEY="$CPP_KEY INCA INCA_AER INCA_NMHC"
     174    set INCLUDE="$INCLUDE -I${INCA_INCDIR}"
     175    set LIB="$LIB -L${INCA_LIBDIR} -lchimie"
     176else if ( "$chimie" == 'GES' ) then
    158177    set CPP_KEY="$CPP_KEY INCA"
    159178    set INCLUDE="$INCLUDE -I${INCA_INCDIR}"
     
    163182if ( "$couple" != 'false' ) then
    164183   set CPP_KEY="$CPP_KEY CPP_COUPLE"
    165    set CPP_KEY="$CPP_KEY CPP_PSMILE"
    166    set INCLUDE="$INCLUDE -I${OASIS_INCDIR}.$couple"
    167    set LIB="$LIB -L${OASIS_LIBDIR} -loasis.$couple"
     184   set INCLUDE="$INCLUDE -I${OASIS_INCDIR}"
     185   set LIB="$LIB -L${OASIS_LIBDIR} -lpsmile.${couple} -lmpp_io"
    168186endif
    169187
     
    175193   set CPP_KEY="$CPP_KEY CPP_VEGET"
    176194   set INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
    177    set LIB="${LIB} -L${ORCH_LIBDIR} -lsechiba -lparameters -lstomate -lparallel"
     195   set LIB="${LIB} -L${ORCH_LIBDIR} -lsechiba -lparameters -lstomate -lparallel -lorglob"
    178196endif
    179197
     
    290308
    291309set SUFF_NAME=_${dim_full}
    292 set SUFF_NAME=${SUFF_NAME}_t${ntrac}
     310set SUFF_NAME=${SUFF_NAME}_t${ntrac}_phy${physique}
    293311
    294312if ( "$parallel" == 'true' ) then
     
    311329  set SUFF_NAME=${SUFF_NAME}_inca
    312330endif
    313  
    314 #########################################################
    315 # On adapte certains include à F90 (mener a disparaitre)
    316 #########################################################
    317 #sed -e 's/^c/\!/' $libf/grid/dimensions.h >! $libf/grid/dimensions90.tmp
    318 #if ( ! -f $libf/grid/dimensions90.h || `diff $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h | wc -w` ) then
    319 #      \mv $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h
    320 #endif
    321 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^     s/) {if (NR > 1) print p0," &"; sub ("     s","     \\&")} else { if (NR > 1) print p0  } p0=$0 } END { print p0}' $libf/dyn3d/paramet.h >! $libf/dyn3d/paramet90.tmp
    322 #if ( ! -f $libf/dyn3d/paramet90.h || `diff $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h | wc -w` ) then
    323 #      \mv $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h
    324 #endif
    325 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^     \./) {if (NR > 1) print p0," &"; sub ("     \.","     \\&")} else { if (NR > 1) print p0  } p0=$0 } END { print p0}' $libf/dyn3d/control.h >! $libf/dyn3d/control.tmp
    326 #if ( ! -f $libf/dyn3d/control.inc  || `diff $libf/dyn3d/control.tmp $libf/dyn3d/control.inc | wc -w` ) then
    327 #      \mv $libf/dyn3d/control.tmp $libf/dyn3d/control.inc
    328 #endif
    329 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^     S/) {if (NR > 1) print p0," &"; sub ("     S","     \\&")} else { if (NR > 1) print p0  } p0=$0 } END { print p0}' $libf/phylmd/YOMCST.h >! $libf/phylmd/YOMCST.tmp
    330 #if ( ! -f $libf/phylmd/YOMCST.inc  || `diff $libf/phylmd/YOMCST.tmp $libf/phylmd/YOMCST.inc | wc -w` ) then
    331 #      \mv $libf/phylmd/YOMCST.tmp $libf/phylmd/YOMCST.inc
    332 #endif
    333 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^     S/) {if (NR > 1) print p0," &"; sub ("     S","     \\&")} else { if (NR > 1) print p0  } p0=$0 } END { print p0}' $libf/phylmd/clesphys.h >! $libf/phylmd/clesphys.tmp
    334 #if ( ! -f $libf/phylmd/clesphys.inc  || `diff $libf/phylmd/clesphys.tmp $libf/phylmd/clesphys.inc | wc -w` ) then
    335 #      \mv $libf/phylmd/clesphys.tmp $libf/phylmd/clesphys.inc
    336 #endif
    337 
    338 #########################################################
    339331
    340332cd $LMDGCM
Note: See TracChangeset for help on using the changeset viewer.