Changeset 956 for LMDZ4/trunk


Ignore:
Timestamp:
May 9, 2008, 6:17:59 PM (17 years ago)
Author:
lmdzadmin
Message:

Nettoyage du controle des parametres physiques. FH

Les parametres cycle_diurne, soil_model, new_oliq, ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad et iflag_con
sont maintenant geres par la physique uniquement.
ecritphy est elimine.
dimphy.F90 et clesphys.h ne sont plus utilises par le code dynamique.
Le test academique obtenu en compilant avec
makegcm -p nophys gcm
fonctionne. FH
IM

Location:
LMDZ4/trunk/libf
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/dyn3d/calfis.F

    r644 r956  
    6565c     Input :
    6666c     -------
    67 c       ecritphy        frequence d'ecriture (en jours)de histphy
    6867c       pucov           covariant zonal velocity
    6968c       pvcov           covariant meridional velocity
  • LMDZ4/trunk/libf/dyn3d/conf_gcm.F

    r691 r956  
    3333#include "serre.h"
    3434#include "comdissnew.h"
    35 #include "clesphys.h"
     35
     36! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     37! #include "clesphys.h"
    3638#include "iniprint.h"
    3739c
     
    288290       CALL getin('iphysiq', iphysiq)
    289291
    290 ccc   .... P.Le Van, ajout le 03/01/96 pour l'ecriture phys ...
    291 c
    292 
    293 !Config  Key  = ecritphy
    294 !Config  Desc = Frequence d'ecriture de la physique
    295 !Config  Def  = 1
    296 !Config  Help = frequence  de l'ecriture du fichier histphy
    297 !Config         en jours.
    298        ecritphy = 1
    299        CALL getin('ecritphy',ecritphy)
    300 
    301 !Config  Key  = cycle_diurne
    302 !Config  Desc = Cycle ddiurne
    303 !Config  Def  = y
    304 !Config  Help = Cette option permet d'eteidre le cycle diurne.
    305 !Config         Peut etre util pour accelerer le code !
    306        cycle_diurne = .TRUE.
    307        CALL getin('cycle_diurne',cycle_diurne)
    308 
    309 !Config  Key  = soil_model
    310 !Config  Desc = Modele de sol
    311 !Config  Def  = y
    312 !Config  Help = Choix du modele de sol (Thermique ?)
    313 !Config         Option qui pourait un string afin de pouvoir
    314 !Config         plus de choix ! Ou meme une liste d'options !
    315        soil_model = .TRUE.
    316        CALL getin('soil_model',soil_model)
    317 
    318 !Config  Key  = new_oliq
    319 !Config  Desc = Nouvelle eau liquide
    320 !Config  Def  = y
    321 !Config  Help = Permet de mettre en route la
    322 !Config         nouvelle parametrisation de l'eau liquide !
    323        new_oliq = .TRUE.
    324        CALL getin('new_oliq',new_oliq)
    325 
    326 !Config  Key  = ok_orodr
    327 !Config  Desc = Orodr ???
    328 !Config  Def  = y
    329 !Config  Help = Y en a pas comprendre !
    330 !Config         
    331        ok_orodr = .TRUE.
    332        CALL getin('ok_orodr',ok_orodr)
    333 
    334 !Config  Key  =  ok_orolf
    335 !Config  Desc = Orolf ??
    336 !Config  Def  = y
    337 !Config  Help = Connais pas !
    338        ok_orolf = .TRUE.
    339        CALL getin('ok_orolf', ok_orolf)
    340 
    341 !Config  Key  = ok_limitvrai
    342 !Config  Desc = Force la lecture de la bonne annee
    343 !Config  Def  = n
    344 !Config  Help = On peut forcer le modele a lire le
    345 !Config         fichier SST de la bonne annee. C'est une tres bonne
    346 !Config         idee, pourquoi ne pas mettre toujours a y ???
    347        ok_limitvrai = .FALSE.
    348        CALL getin('ok_limitvrai',ok_limitvrai)
    349 
    350 !Config  Key  = nbapp_rad
    351 !Config  Desc = Frequence d'appel au rayonnement
    352 !Config  Def  = 12
    353 !Config  Help = Nombre  d'appels des routines de rayonnements
    354 !Config         par jour.
    355        nbapp_rad = 12
    356        CALL getin('nbapp_rad',nbapp_rad)
    357 
    358 !Config  Key  = iflag_con
    359 !Config  Desc = Flag de convection
    360 !Config  Def  = 2
    361 !Config  Help = Flag  pour la convection les options suivantes existent :
    362 !Config         1 pour LMD,
    363 !Config         2 pour Tiedtke,
    364 !Config         3 pour CCM(NCAR) 
    365        iflag_con = 2
    366        CALL getin('iflag_con',iflag_con)
    367 !
    368292!Config  Key  = ip_ebil_dyn
    369293!Config  Desc = PRINT level for energy conserv. diag.
     
    381305       clesphy0(i) = 0.
    382306      ENDDO
    383                           clesphy0(1) = FLOAT( iflag_con )
    384                           clesphy0(2) = FLOAT( nbapp_rad )
    385 
    386        IF( cycle_diurne  ) clesphy0(3) =  1.
    387        IF(   soil_model  ) clesphy0(4) =  1.
    388        IF(     new_oliq  ) clesphy0(5) =  1.
    389        IF(     ok_orodr  ) clesphy0(6) =  1.
    390        IF(     ok_orolf  ) clesphy0(7) =  1.
    391        IF(  ok_limitvrai ) clesphy0(8) =  1.
    392 
    393307
    394308ccc  ....   P. Le Van , ajout  le 7/03/95 .pour le zoom ...
     
    617531      write(lunout,*)' iflag_phys = ', iflag_phys
    618532      write(lunout,*)' iphysiq = ', iphysiq
    619       write(lunout,*)' ecritphy = ', ecritphy
    620       write(lunout,*)' cycle_diurne = ', cycle_diurne
    621       write(lunout,*)' soil_model = ', soil_model
    622       write(lunout,*)' new_oliq = ', new_oliq
    623       write(lunout,*)' ok_orodr = ', ok_orodr
    624       write(lunout,*)' ok_orolf = ', ok_orolf
    625       write(lunout,*)' ok_limitvrai = ', ok_limitvrai
    626       write(lunout,*)' nbapp_rad = ', nbapp_rad
    627       write(lunout,*)' iflag_con = ', iflag_con
    628533      write(lunout,*)' clonn = ', clonn
    629534      write(lunout,*)' clatt = ', clatt
     
    773678      write(lunout,*)' iflag_phys = ', iflag_phys
    774679      write(lunout,*)' iphysiq = ', iphysiq
    775       write(lunout,*)' ecritphy = ', ecritphy
    776       write(lunout,*)' cycle_diurne = ', cycle_diurne
    777       write(lunout,*)' soil_model = ', soil_model
    778       write(lunout,*)' new_oliq = ', new_oliq
    779       write(lunout,*)' ok_orodr = ', ok_orodr
    780       write(lunout,*)' ok_orolf = ', ok_orolf
    781       write(lunout,*)' ok_limitvrai = ', ok_limitvrai
    782       write(lunout,*)' nbapp_rad = ', nbapp_rad
    783       write(lunout,*)' iflag_con = ', iflag_con
    784680      write(lunout,*)' clonn = ', clonn
    785681      write(lunout,*)' clatt = ', clatt
  • LMDZ4/trunk/libf/dyn3d/control.h

    r792 r956  
    1313      COMMON/control/nday,day_step,                                     &
    1414     &              iperiod,iapp_tracvl,iconser,iecri,idissip,iphysiq , &
    15      &              periodav,ecritphy,iecrimoy,dayref,anneeref,         &
     15     &              periodav,iecrimoy,dayref,anneeref,                  &
    1616     &              raz_date,offline,ip_ebil_dyn
    1717
     
    1919     &          idissip,iphysiq,iecrimoy,dayref,anneeref, raz_date      &
    2020     &          ,ip_ebil_dyn
    21       REAL periodav, ecritphy
     21      REAL periodav
    2222      logical offline
    2323
  • LMDZ4/trunk/libf/dyn3d/defrun.F

    r524 r956  
    195195      WRITE(tapeout,*)    iphysiq
    196196
    197 
    198 ccc   .... P.Le Van, ajout le 03/01/96 pour l'ecriture phys ...
    199 c
    200       READ (tapedef,9001) ch1,ch4
    201       READ (tapedef,*)    ecritphy
    202       WRITE(tapeout,9001) ch1,'ecritphy'
    203       WRITE(tapeout,*)    ecritphy
    204197
    205198      READ (tapedef,9001) ch1,ch4
  • LMDZ4/trunk/libf/dyn3d/gcm.F

    r863 r956  
    99      USE IOIPSL
    1010#endif
     11
     12!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     13! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     14! A nettoyer. On ne veut qu'une ou deux routines d'interface
     15! dynamique -> physique pour l'initialisation
     16#ifdef CPP_PHYS
    1117      USE dimphy
    1218      USE comgeomphy
    1319      USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb
     20#endif
     21!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     22
    1423      IMPLICIT NONE
    1524
     
    170179c     T : on lit start.nc
    171180c     F : le modele s'autoinitialise avec un cas academique (iniacademic)
    172 #ifdef CPP_IOIPSL
    173181      read_start=.true.
     182#ifdef CPP_IOIPSL
     183#else
     184      read_start=.false.
     185#endif
     186#ifdef CPP_PHYS
    174187#else
    175188      read_start=.false.
     
    197210#endif
    198211
     212!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     213! FH 2008/05/02
     214! A nettoyer. On ne veut qu'une ou deux routines d'interface
     215! dynamique -> physique pour l'initialisation
     216#ifdef CPP_PHYS
    199217      CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2)
    200218      call InitComgeomphy
     219#endif
     220!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    201221
    202222#ifdef INCA
  • LMDZ4/trunk/libf/dyn3d/ini_paramLMDZ_dyn.h

    r692 r956  
    153153     .                "once", dt_cum,dt_cum)
    154154c
    155          CALL histdef(nid_ctesGCM, "ecritphy",
    156      ."frequence  de l ecriture du fichier histphy en jours",
    157      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    158      .                "once", dt_cum,dt_cum)
    159 c
    160          CALL histdef(nid_ctesGCM, "cycle_diurne",
    161      ."Avoir un cycle diurne: 1=true, 0=false",
    162      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    163      .                "once", dt_cum,dt_cum)
    164 c
    165          CALL histdef(nid_ctesGCM, "soil_model",
    166      ."Choix du modele de sol (Thermique ?): 1=true, 0=false",
    167      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    168      .                "once", dt_cum,dt_cum)
    169 c
    170          CALL histdef(nid_ctesGCM, "new_oliq",
    171      ."Nouvelle eau liquide: 1=true, 0=false",
    172      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    173      .                "once", dt_cum,dt_cum)
    174 c
    175          CALL histdef(nid_ctesGCM, "ok_orodr",
    176      ."Orography drag : 1=true, 0=false",
    177      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    178      .                "once", dt_cum,dt_cum)
    179 c
    180          CALL histdef(nid_ctesGCM, "ok_orolf",
    181      ."Orography lift : 1=true, 0=false",
    182      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    183      .                "once", dt_cum,dt_cum)
    184 c
    185          CALL histdef(nid_ctesGCM, "ok_limitvrai",
    186      ."Force la lecture de la bonne annee: 1=true, 0=false",
    187      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    188      .                "once", dt_cum,dt_cum)
    189 c
    190          CALL histdef(nid_ctesGCM, "nbapp_rad",
    191      ."Nombre  d appels des routines de rayonnements par jour",
    192      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    193      .                "once", dt_cum,dt_cum)
    194 c
    195          CALL histdef(nid_ctesGCM, "iflag_con",
    196      ."Flag  pour la convection: 1=LMD, 2=Tiedtke, 3=KE, 4=KE vect.",
    197      .                "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
    198      .                "once", dt_cum,dt_cum)
    199 c
    200155         CALL histdef(nid_ctesGCM, "clon",
    201156     ."longitude en degres du centre du zoom",
  • LMDZ4/trunk/libf/dyn3d/leapfrog.F

    r825 r956  
    6363#include "academic.h"
    6464
    65 #include "clesphys.h"
     65! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     66! #include "clesphys.h"
    6667
    6768      integer nq
  • LMDZ4/trunk/libf/dyn3d/tetaleveli1j.F

    r947 r956  
    55c================================================================
    66
    7       USE dimphy
     7! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     8!      USE dimphy
    89      IMPLICIT none
    910
  • LMDZ4/trunk/libf/dyn3d/tetaleveli1j1.F

    r947 r956  
    55c================================================================
    66
    7       USE dimphy
     7! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     8!      USE dimphy
    89      IMPLICIT none
    910
  • LMDZ4/trunk/libf/dyn3d/write_paramLMDZ_dyn.h

    r825 r956  
     1! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     2! Attention : il n'y a aucune raison pour ecrire ces constantes
     3! comme des champs 2D. A corriger un jour ...
     4
    15c
    26      ndex2d = 0
     
    119123     .               zx_tmp_2d,iip1*jjp1,ndex2d)
    120124c
    121       zx_tmp_2d(1:iip1,1:jjp1)=ecritphy
    122       CALL histwrite(nid_ctesGCM, "ecritphy", itau_w,
    123      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    124 c
    125       IF(cycle_diurne) THEN
    126        zx_tmp_2d(1:iip1,1:jjp1)=1.
    127       ELSE
    128        zx_tmp_2d(1:iip1,1:jjp1)=0.
    129       ENDIF
    130       CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w,
    131      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    132 c
    133       IF(soil_model) THEN
    134        zx_tmp_2d(1:iip1,1:jjp1)=1.
    135       ELSE
    136        zx_tmp_2d(1:iip1,1:jjp1)=0.
    137       ENDIF
    138       CALL histwrite(nid_ctesGCM, "soil_model", itau_w,
    139      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    140 c
    141       IF(new_oliq) THEN
    142        zx_tmp_2d(1:iip1,1:jjp1)=1.
    143       ELSE
    144        zx_tmp_2d(1:iip1,1:jjp1)=0.
    145       ENDIF
    146       CALL histwrite(nid_ctesGCM, "new_oliq", itau_w,
    147      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    148 c
    149       IF(ok_orodr) THEN
    150        zx_tmp_2d(1:iip1,1:jjp1)=1.
    151       ELSE
    152        zx_tmp_2d(1:iip1,1:jjp1)=0.
    153       ENDIF
    154       CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w,
    155      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    156 c
    157       IF(ok_orolf) THEN
    158        zx_tmp_2d(1:iip1,1:jjp1)=1.
    159       ELSE
    160        zx_tmp_2d(1:iip1,1:jjp1)=0.
    161       ENDIF
    162       CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w,
    163      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    164 c
    165       IF(ok_limitvrai) THEN
    166        zx_tmp_2d(1:iip1,1:jjp1)=1.
    167       ELSE
    168        zx_tmp_2d(1:iip1,1:jjp1)=0.
    169       ENDIF
    170       CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w,
    171      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    172 c
    173       zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad
    174       CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w,
    175      .               zx_tmp_2d,iip1*jjp1,ndex2d)
    176 c
    177       zx_tmp_2d(1:iip1,1:jjp1)=iflag_con
    178       CALL histwrite(nid_ctesGCM, "iflag_con", itau_w,
    179      .               zx_tmp_2d,iip1*jjp1,ndex2d)
     125!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     126! FH 2008/05/02
     127! La variable cycle_diurne n'est pas vue par la dynamique
     128!     IF(cycle_diurne) THEN
     129!      zx_tmp_2d(1:iip1,1:jjp1)=1.
     130!     ELSE
     131!      zx_tmp_2d(1:iip1,1:jjp1)=0.
     132!     ENDIF
     133!     CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w,
     134!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     135!
     136!     IF(soil_model) THEN
     137!      zx_tmp_2d(1:iip1,1:jjp1)=1.
     138!     ELSE
     139!      zx_tmp_2d(1:iip1,1:jjp1)=0.
     140!     ENDIF
     141!     CALL histwrite(nid_ctesGCM, "soil_model", itau_w,
     142!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     143!
     144!     IF(new_oliq) THEN
     145!      zx_tmp_2d(1:iip1,1:jjp1)=1.
     146!     ELSE
     147!      zx_tmp_2d(1:iip1,1:jjp1)=0.
     148!     ENDIF
     149!     CALL histwrite(nid_ctesGCM, "new_oliq", itau_w,
     150!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     151!
     152!     IF(ok_orodr) THEN
     153!      zx_tmp_2d(1:iip1,1:jjp1)=1.
     154!     ELSE
     155!      zx_tmp_2d(1:iip1,1:jjp1)=0.
     156!     ENDIF
     157!     CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w,
     158!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     159!
     160!     IF(ok_orolf) THEN
     161!      zx_tmp_2d(1:iip1,1:jjp1)=1.
     162!     ELSE
     163!      zx_tmp_2d(1:iip1,1:jjp1)=0.
     164!     ENDIF
     165!     CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w,
     166!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     167!
     168!     IF(ok_limitvrai) THEN
     169!      zx_tmp_2d(1:iip1,1:jjp1)=1.
     170!     ELSE
     171!      zx_tmp_2d(1:iip1,1:jjp1)=0.
     172!     ENDIF
     173!     CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w,
     174!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     175!
     176!     zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad
     177!     CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w,
     178!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     179!
     180!     zx_tmp_2d(1:iip1,1:jjp1)=iflag_con
     181!     CALL histwrite(nid_ctesGCM, "iflag_con", itau_w,
     182!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
     183!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    180184c
    181185      zx_tmp_2d(1:iip1,1:jjp1)=clon
  • LMDZ4/trunk/libf/phy_IPCC_AR4/conf_phys.F90

    r868 r956  
    9292  REAL,SAVE :: cvl_corr_omp
    9393  LOGICAL,SAVE :: ok_lic_melt_omp
     94
     95  LOGICAL,SAVE :: cycle_diurne_omp,soil_model_omp,new_oliq_omp
     96  LOGICAL,SAVE :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp
     97  INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp
     98
    9499!
    95100!
     
    351356
    352357
     358!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     359! FH 2008/05/02
     360! Constantes precedemment dans dyn3d/conf_gcm
     361
     362!Config  Key  = cycle_diurne
     363!Config  Desc = Cycle ddiurne
     364!Config  Def  = y
     365!Config  Help = Cette option permet d'eteidre le cycle diurne.
     366!Config         Peut etre util pour accelerer le code !
     367       cycle_diurne_omp = .TRUE.
     368       CALL getin('cycle_diurne',cycle_diurne_omp)
     369
     370!Config  Key  = soil_model
     371!Config  Desc = Modele de sol
     372!Config  Def  = y
     373!Config  Help = Choix du modele de sol (Thermique ?)
     374!Config         Option qui pourait un string afin de pouvoir
     375!Config         plus de choix ! Ou meme une liste d'options !
     376       soil_model_omp = .TRUE.
     377       CALL getin('soil_model',soil_model_omp)
     378
     379!Config  Key  = new_oliq
     380!Config  Desc = Nouvelle eau liquide
     381!Config  Def  = y
     382!Config  Help = Permet de mettre en route la
     383!Config         nouvelle parametrisation de l'eau liquide !
     384       new_oliq_omp = .TRUE.
     385       CALL getin('new_oliq',new_oliq_omp)
     386
     387!Config  Key  = ok_orodr
     388!Config  Desc = Orodr ???
     389!Config  Def  = y
     390!Config  Help = Y en a pas comprendre !
     391!Config         
     392       ok_orodr_omp = .TRUE.
     393       CALL getin('ok_orodr',ok_orodr_omp)
     394
     395!Config  Key  =  ok_orolf
     396!Config  Desc = Orolf ??
     397!Config  Def  = y
     398!Config  Help = Connais pas !
     399       ok_orolf_omp = .TRUE.
     400       CALL getin('ok_orolf_omp', ok_orolf_omp)
     401
     402!Config  Key  = ok_limitvrai
     403!Config  Desc = Force la lecture de la bonne annee
     404!Config  Def  = n
     405!Config  Help = On peut forcer le modele a lire le
     406!Config         fichier SST de la bonne annee. C'est une tres bonne
     407!Config         idee, pourquoi ne pas mettre toujours a y ???
     408       ok_limitvrai_omp = .FALSE.
     409       CALL getin('ok_limitvrai',ok_limitvrai_omp)
     410
     411!Config  Key  = nbapp_rad
     412!Config  Desc = Frequence d'appel au rayonnement
     413!Config  Def  = 12
     414!Config  Help = Nombre  d'appels des routines de rayonnements
     415!Config         par jour.
     416       nbapp_rad_omp = 12
     417       CALL getin('nbapp_rad',nbapp_rad_omp)
     418
     419!Config  Key  = iflag_con
     420!Config  Desc = Flag de convection
     421!Config  Def  = 2
     422!Config  Help = Flag  pour la convection les options suivantes existent :
     423!Config         1 pour LMD,
     424!Config         2 pour Tiedtke,
     425!Config         3 pour CCM(NCAR) 
     426       iflag_con_omp = 2
     427       CALL getin('iflag_con',iflag_con_omp)
     428
     429!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    353430!Config Key  = epmax
    354431!Config Desc = Efficacite precip
     
    789866    CFC12_ppt = CFC12_ppt_omp
    790867    RCFC12 = RCFC12_omp
     868
     869
     870    cycle_diurne = cycle_diurne_omp
     871    soil_model = soil_model_omp
     872    new_oliq = new_oliq_omp
     873    ok_orodr = ok_orodr_omp
     874    ok_orolf = ok_orolf_omp
     875    ok_limitvrai = ok_limitvrai_omp
     876    nbapp_rad = nbapp_rad_omp
     877    iflag_con = iflag_con_omp
     878
     879
    791880    epmax = epmax_omp
    792881    ok_adj_ema = ok_adj_ema_omp
     
    878967  write(numout,*)' cvl_corr=', cvl_corr
    879968  write(numout,*)'ok_lic_melt=', ok_lic_melt
     969  write(numout,*)'cycle_diurne=',cycle_diurne
     970  write(numout,*)'soil_model=',soil_model
     971  write(numout,*)'new_oliq=',new_oliq
     972  write(numout,*)'ok_orodr=',ok_orodr
     973  write(numout,*)'ok_orolf=',ok_orolf
     974  write(numout,*)'ok_limitvrai=',ok_limitvrai
     975  write(numout,*)'nbapp_rad=',nbapp_rad
     976  write(numout,*)'iflag_con=',iflag_con
    880977  write(numout,*)' epmax = ', epmax
    881978  write(numout,*)' ok_adj_ema = ', ok_adj_ema
  • LMDZ4/trunk/libf/phy_IPCC_AR4/ini_histrac.h

    r868 r956  
    2323
    2424         zsto = pdtphys
    25          zout = pdtphys * ecrit_tra
     25!         zout = pdtphys * ecrit_tra
     26         zout = ecrit_tra
    2627c
    2728         CALL histdef(nid_tra, "phis", "Surface geop. height", "-",
  • LMDZ4/trunk/libf/phy_IPCC_AR4/phyetat0.F

    r868 r956  
    77     .           rlat_p, rlon_p, pctsrf_p, tsol_p,
    88     .           ocean_in, ok_veget_in,
    9      .           albe_p, alblw_p,
     9     .           alb1_p, alb2_p,
    1010     .           rain_fall_p, snow_fall_p,solsw_p, sollw_p,
    1111     .           radsol_p,clesphy0,
     
    3737#include "clesphys.h"
    3838#include "temps.h"
     39#include "thermcell.h"
     40#include "compbl.h"
    3941c======================================================================
    4042      CHARACTER*(*) fichnom
     
    5052      REAL qsol_p(klon)
    5153      REAL snow_p(klon,nbsrf)
    52       REAL albe_p(klon,nbsrf)
    53 cIM BEG alblw
    54       REAL alblw_p(klon,nbsrf)
    55 cIM END alblw
     54      REAL alb1_p(klon,nbsrf)   ! albedo in visible SW interval
     55      REAL alb2_p(klon,nbsrf)   ! albedo in near IR interval
    5656      REAL evap_p(klon,nbsrf)
    5757      REAL radsol_p(klon)
     
    8989      REAL qsol(klon_glo)
    9090      REAL snow(klon_glo,nbsrf)
    91       REAL albe(klon_glo,nbsrf)
    92       REAL alblw(klon_glo,nbsrf)
     91      REAL alb1(klon_glo,nbsrf)
     92      REAL alb2(klon_glo,nbsrf)
    9393      REAL evap(klon_glo,nbsrf)
    9494      REAL radsol(klon_glo)
     
    127127c
    128128      INTEGER nid, nvarid
    129       INTEGER ierr, i, nsrf, isoil
     129      INTEGER ierr, i, nsrf, isoil ,k
    130130      INTEGER length
    131131      PARAMETER (length=100)
     
    134134      CHARACTER*7 str7
    135135      CHARACTER*2 str2
    136       real iolat(jjm+1)
     136
     137c FH1D
     138c     real iolat(jjm+1)
     139      real iolat(jjm+1-1/iim)
    137140c
    138141c Ouvrir le fichier contenant l'etat initial:
     
    181184       
    182185c
    183        
     186!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     187! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     188! Les constantes de la physiques sont lues dans la physique seulement.
     189! Les egalites du type
     190!             tab_cntrl( 5 )=clesphy0(1)
     191! sont remplacees par
     192!             clesphy0(1)=tab_cntrl( 5 )
     193! On inverse aussi la logique.
     194! On remplit les tab_cntrl avec les parametres lus dans les .def
     195!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     196
    184197         DO i = 1, length
    185198           tabcntr0( i ) = tab_cntrl( i )
    186199         ENDDO
    187200c
    188          cycle_diurne   = .FALSE.
    189          soil_model     = .FALSE.
    190          new_oliq       = .FALSE.
    191          ok_orodr       = .FALSE.
    192          ok_orolf       = .FALSE.
    193          ok_limitvrai   = .FALSE.
    194 
    195 
    196          IF( clesphy0(1).NE.tab_cntrl( 5 ) )  THEN
    197              tab_cntrl( 5 ) = clesphy0(1)
    198          ENDIF
    199 
    200          IF( clesphy0(2).NE.tab_cntrl( 6 ) )  THEN
    201              tab_cntrl( 6 ) = clesphy0(2)
    202          ENDIF
    203 
    204          IF( clesphy0(3).NE.tab_cntrl( 7 ) )  THEN
    205              tab_cntrl( 7 ) = clesphy0(3)
    206          ENDIF
    207 
    208          IF( clesphy0(4).NE.tab_cntrl( 8 ) )  THEN
    209              tab_cntrl( 8 ) = clesphy0(4)
    210          ENDIF
    211 
    212          IF( clesphy0(5).NE.tab_cntrl( 9 ) )  THEN
    213              tab_cntrl( 9 ) = clesphy0( 5 )
    214          ENDIF
    215 
    216          IF( clesphy0(6).NE.tab_cntrl( 10 ) )  THEN
    217              tab_cntrl( 10 ) = clesphy0( 6 )
    218          ENDIF
    219 
    220          IF( clesphy0(7).NE.tab_cntrl( 11 ) )  THEN
    221              tab_cntrl( 11 ) = clesphy0( 7 )
    222          ENDIF
    223 
    224          IF( clesphy0(8).NE.tab_cntrl( 12 ) )  THEN
    225              tab_cntrl( 12 ) = clesphy0( 8 )
    226          ENDIF
    227 
    228 
    229          dtime        = tab_cntrl(1)
    230          radpas       = tab_cntrl(2)
     201         tab_cntrl(1)=dtime
     202         tab_cntrl(2)=radpas
    231203         co2_ppm_etat0      = tab_cntrl(3)
    232204         solaire_etat0      = tab_cntrl(4)
    233          iflag_con    = tab_cntrl(5)
    234          nbapp_rad    = tab_cntrl(6)
    235 
    236 
    237          cycle_diurne    = .FALSE.
    238          soil_model      = .FALSE.
    239          new_oliq        = .FALSE.
    240          ok_orodr        = .FALSE.
    241          ok_orolf        = .FALSE.
    242          ok_limitvrai    = .FALSE.
    243 
    244          IF( tab_cntrl( 7) .EQ. 1. )    cycle_diurne  = .TRUE.
    245          IF( tab_cntrl( 8) .EQ. 1. )       soil_model = .TRUE.
    246          IF( tab_cntrl( 9) .EQ. 1. )         new_oliq = .TRUE.
    247          IF( tab_cntrl(10) .EQ. 1. )         ok_orodr = .TRUE.
    248          IF( tab_cntrl(11) .EQ. 1. )         ok_orolf = .TRUE.
    249          IF( tab_cntrl(12) .EQ. 1. )     ok_limitvrai = .TRUE.
     205         tab_cntrl(5)=iflag_con
     206         tab_cntrl(6)=nbapp_rad
     207
     208         if (cycle_diurne) tab_cntrl( 7) =1.
     209         if (soil_model) tab_cntrl( 8) =1.
     210         if (new_oliq) tab_cntrl( 9) =1.
     211         if (ok_orodr) tab_cntrl(10) =1.
     212         if (ok_orolf) tab_cntrl(11) =1.
     213         if (ok_limitvrai) tab_cntrl(12) =1.
    250214
    251215
    252216      itau_phy = tab_cntrl(15)
     217
     218       
     219
     220         IF( clesphy0(1).NE.tab_cntrl( 5 ) )  THEN
     221             clesphy0(1)=tab_cntrl( 5 )
     222         ENDIF
     223
     224         IF( clesphy0(2).NE.tab_cntrl( 6 ) )  THEN
     225             clesphy0(2)=tab_cntrl( 6 )
     226         ENDIF
     227
     228         IF( clesphy0(3).NE.tab_cntrl( 7 ) )  THEN
     229             clesphy0(3)=tab_cntrl( 7 )
     230         ENDIF
     231
     232         IF( clesphy0(4).NE.tab_cntrl( 8 ) )  THEN
     233             clesphy0(4)=tab_cntrl( 8 )
     234         ENDIF
     235
     236         IF( clesphy0(5).NE.tab_cntrl( 9 ) )  THEN
     237             clesphy0(5)=tab_cntrl( 9 )
     238         ENDIF
     239
     240         IF( clesphy0(6).NE.tab_cntrl( 10 ) )  THEN
     241             clesphy0(6)=tab_cntrl( 10 )
     242         ENDIF
     243
     244         IF( clesphy0(7).NE.tab_cntrl( 11 ) )  THEN
     245             clesphy0(7)=tab_cntrl( 11 )
     246         ENDIF
     247
     248         IF( clesphy0(8).NE.tab_cntrl( 12 ) )  THEN
     249             clesphy0(8)=tab_cntrl( 12 )
     250         ENDIF
     251
    253252
    254253c
     
    721720      ENDIF
    722721c
    723 c Lecture de albedo au sol:
     722c Lecture de albedo de l'interval visible au sol:
    724723c
    725724      ierr = NF_INQ_VARID (nid, "ALBE", nvarid)
     
    739738           ENDIF
    740739#ifdef NC_DOUBLE
    741            ierr = NF_GET_VAR_DOUBLE(nid, nvarid, albe(1,nsrf))
    742 #else
    743            ierr = NF_GET_VAR_REAL(nid, nvarid, albe(1,nsrf))
     740           ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb1(1,nsrf))
     741#else
     742           ierr = NF_GET_VAR_REAL(nid, nvarid, alb1(1,nsrf))
    744743#endif
    745744           IF (ierr.NE.NF_NOERR) THEN
     
    750749           xmax = -1.0E+20
    751750           DO i = 1, klon_glo
    752               xmin = MIN(albe(i,nsrf),xmin)
    753               xmax = MAX(albe(i,nsrf),xmax)
     751              xmin = MIN(alb1(i,nsrf),xmin)
     752              xmax = MAX(alb1(i,nsrf),xmax)
    754753           ENDDO
    755754           PRINT*,'Albedo du sol ALBE**:', nsrf, xmin, xmax
     
    759758         PRINT*, '          J ignore donc les autres ALBE**'
    760759#ifdef NC_DOUBLE
    761          ierr = NF_GET_VAR_DOUBLE(nid, nvarid, albe(1,1))
    762 #else
    763          ierr = NF_GET_VAR_REAL(nid, nvarid, albe(1,1))
     760         ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb1(1,1))
     761#else
     762         ierr = NF_GET_VAR_REAL(nid, nvarid, alb1(1,1))
    764763#endif
    765764         IF (ierr.NE.NF_NOERR) THEN
     
    770769         xmax = -1.0E+20
    771770         DO i = 1, klon_glo
    772             xmin = MIN(albe(i,1),xmin)
    773             xmax = MAX(albe(i,1),xmax)
     771            xmin = MIN(alb1(i,1),xmin)
     772            xmax = MAX(alb1(i,1),xmax)
    774773         ENDDO
    775774         PRINT*,'Neige du sol <ALBE>', xmin, xmax
    776775         DO nsrf = 2, nbsrf
    777776         DO i = 1, klon_glo
    778             albe(i,nsrf) = albe(i,1)
    779          ENDDO
    780          ENDDO
    781       ENDIF
    782 
    783 c
    784 c Lecture de albedo au sol LW:
     777            alb1(i,nsrf) = alb1(i,1)
     778         ENDDO
     779         ENDDO
     780      ENDIF
     781
     782c
     783c Lecture de albedo au sol dans l'interval proche infra-rouge:
    785784c
    786785      ierr = NF_INQ_VARID (nid, "ALBLW", nvarid)
     
    791790         DO nsrf = 1, nbsrf
    792791           DO i = 1, klon_glo
    793              alblw(i,nsrf) = albe(i,nsrf)
     792             alb2(i,nsrf) = alb1(i,nsrf)
    794793           ENDDO
    795794         ENDDO
     
    798797         PRINT*, '          J ignore donc les autres ALBLW**'
    799798#ifdef NC_DOUBLE
    800          ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alblw(1,1))
    801 #else
    802          ierr = NF_GET_VAR_REAL(nid, nvarid, alblw(1,1))
     799         ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb2(1,1))
     800#else
     801         ierr = NF_GET_VAR_REAL(nid, nvarid, alb2(1,1))
    803802#endif
    804803         IF (ierr.NE.NF_NOERR) THEN
     
    809808         xmax = -1.0E+20
    810809         DO i = 1, klon_glo
    811             xmin = MIN(alblw(i,1),xmin)
    812             xmax = MAX(alblw(i,1),xmax)
     810            xmin = MIN(alb2(i,1),xmin)
     811            xmax = MAX(alb2(i,1),xmax)
    813812         ENDDO
    814813         PRINT*,'Neige du sol <ALBLW>', xmin, xmax
    815814         DO nsrf = 2, nbsrf
    816815         DO i = 1, klon_glo
    817             alblw(i,nsrf) = alblw(i,1)
     816            alb2(i,nsrf) = alb2(i,1)
    818817         ENDDO
    819818         ENDDO
     
    14271426
    14281427c
    1429       ierr = NF_INQ_VARID (nid, "QANCIEN", nvarid)
    1430       IF (ierr.NE.NF_NOERR) THEN
    1431          PRINT*, "phyetat0: Le champ <QANCIEN> est absent"
    1432          PRINT*, "Depart legerement fausse. Mais je continue"
    1433          ancien_ok = .FALSE.
    1434       ELSE
    1435 #ifdef NC_DOUBLE
    1436          ierr = NF_GET_VAR_DOUBLE(nid, nvarid, q_ancien)
    1437 #else
    1438          ierr = NF_GET_VAR_REAL(nid, nvarid, q_ancien)
    1439 #endif
    1440          IF (ierr.NE.NF_NOERR) THEN
    1441             PRINT*, "phyetat0: Lecture echouee pour <QANCIEN>"
    1442             CALL abort
    1443          ENDIF
    1444       ENDIF
    1445 c
    14461428c Lecture ratqs
    14471429c
     
    14921474      xmax = MAXval(run_off_lic_0)
    14931475      PRINT*,'(ecart-type) run_off_lic_0:', xmin, xmax
    1494 c
     1476
     1477
    14951478c Fermer le fichier:
    14961479c
     
    15031486cym  en attendant mieux
    15041487        iolat(1)=rlat(1)
    1505         iolat(jjm+1)=rlat(klon_glo)
     1488
     1489!FH1D   
     1490!iolat(jjm+1)=rlat(klon_glo)
     1491        iolat(jjm+1-1/iim)=rlat(klon_glo)
     1492        if (iim.gt.1) then
    15061493        do i=2,jjm
    15071494          iolat(i)=rlat(2+(i-2)*iim)
    15081495        enddo
     1496        endif
     1497
    15091498        CALL bcast_mpi(iolat)
    15101499        CALL bcast_mpi(rlon)
    1511         call init_iophy(iolat,rlon(2:iim+1))
     1500
     1501!FH1D
     1502!       call init_iophy(iolat,rlon(2:iim+1))
     1503        call init_iophy(iolat,rlon(2-1/iim:iim+1-1/iim))
    15121504       
    15131505c$OMP END MASTER
     
    15221514      call Scatter( qsol,qsol_p)
    15231515      call Scatter( snow,snow_p)
    1524       call Scatter( albe,albe_p)
    1525       call Scatter( alblw,alblw_p)
     1516      call Scatter( alb1,alb1_p)
     1517      call Scatter( alb2,alb2_p)
    15261518      call Scatter( evap,evap_p)
    15271519      call Scatter( radsol,radsol_p)
  • LMDZ4/trunk/libf/phy_IPCC_AR4/physiq.F

    r868 r956  
    15821582         itaprad = 0
    15831583
     1584!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1585! FH 2008/05/02 changement lie a la lecture de nbapp_rad dans phylmd
     1586! plutot que
     1587! dyn3d
     1588! Attention : la version precedente n'etait pas tres propre.
     1589! Il se peut qu'il faille prendre une valeur differente de nbapp_rad
     1590! pour obtenir le meme resultat.
     1591         dtime=pdtphys
     1592         radpas = NINT( 86400./dtime/nbapp_rad)
     1593!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1594
    15841595         CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0,
    15851596     .       rlat,rlon,pctsrf, ftsol,
     
    16011612      ENDDO
    16021613
    1603          radpas = NINT( 86400./dtime/nbapp_rad)
    16041614c
    16051615C on remet le calendrier a zero
  • LMDZ4/trunk/libf/phy_IPCC_AR4/phytrac.F

    r868 r956  
    428428
    429429c jg: c'est ca qu'on veut?????           
    430           ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy))
    431           print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra
     430!          ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy))
     431          print*,'dans phytrac ',pdtphys,ecrit_tra
    432432
    433433         if(nbtr.lt.nqmax) then
  • LMDZ4/trunk/libf/phylmd/conf_phys.F90

    r955 r956  
    113113!
    114114!
     115    LOGICAL,SAVE :: cycle_diurne_omp,soil_model_omp,new_oliq_omp
     116    LOGICAL,SAVE :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp
     117    INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp
    115118!
    116119
     
    373376! RCFC12 = 2.020102726958923E-09
    374377!OK call getin('RCFC12', RCFC12)
     378
     379
     380
     381!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     382! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     383! Constantes precedemment dans dyn3d/conf_gcm
     384
     385!Config  Key  = cycle_diurne
     386!Config  Desc = Cycle ddiurne
     387!Config  Def  = y
     388!Config  Help = Cette option permet d'eteidre le cycle diurne.
     389!Config         Peut etre util pour accelerer le code !
     390       cycle_diurne_omp = .TRUE.
     391       CALL getin('cycle_diurne',cycle_diurne_omp)
     392
     393!Config  Key  = soil_model
     394!Config  Desc = Modele de sol
     395!Config  Def  = y
     396!Config  Help = Choix du modele de sol (Thermique ?)
     397!Config         Option qui pourait un string afin de pouvoir
     398!Config         plus de choix ! Ou meme une liste d'options !
     399       soil_model_omp = .TRUE.
     400       CALL getin('soil_model',soil_model_omp)
     401
     402!Config  Key  = new_oliq
     403!Config  Desc = Nouvelle eau liquide
     404!Config  Def  = y
     405!Config  Help = Permet de mettre en route la
     406!Config         nouvelle parametrisation de l'eau liquide !
     407       new_oliq_omp = .TRUE.
     408       CALL getin('new_oliq',new_oliq_omp)
     409
     410!Config  Key  = ok_orodr
     411!Config  Desc = Orodr ???
     412!Config  Def  = y
     413!Config  Help = Y en a pas comprendre !
     414!Config         
     415       ok_orodr_omp = .TRUE.
     416       CALL getin('ok_orodr',ok_orodr_omp)
     417
     418!Config  Key  =  ok_orolf
     419!Config  Desc = Orolf ??
     420!Config  Def  = y
     421!Config  Help = Connais pas !
     422       ok_orolf_omp = .TRUE.
     423       CALL getin('ok_orolf_omp', ok_orolf_omp)
     424
     425!Config  Key  = ok_limitvrai
     426!Config  Desc = Force la lecture de la bonne annee
     427!Config  Def  = n
     428!Config  Help = On peut forcer le modele a lire le
     429!Config         fichier SST de la bonne annee. C'est une tres bonne
     430!Config         idee, pourquoi ne pas mettre toujours a y ???
     431       ok_limitvrai_omp = .FALSE.
     432       CALL getin('ok_limitvrai',ok_limitvrai_omp)
     433
     434!Config  Key  = nbapp_rad
     435!Config  Desc = Frequence d'appel au rayonnement
     436!Config  Def  = 12
     437!Config  Help = Nombre  d'appels des routines de rayonnements
     438!Config         par jour.
     439       nbapp_rad_omp = 12
     440       CALL getin('nbapp_rad',nbapp_rad_omp)
     441
     442!Config  Key  = iflag_con
     443!Config  Desc = Flag de convection
     444!Config  Def  = 2
     445!Config  Help = Flag  pour la convection les options suivantes existent :
     446!Config         1 pour LMD,
     447!Config         2 pour Tiedtke,
     448!Config         3 pour CCM(NCAR) 
     449       iflag_con_omp = 2
     450       CALL getin('iflag_con',iflag_con_omp)
     451
     452!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    375453!!
    376454!! Constante solaire & Parametres orbitaux & taux gaz effet de serre END
     
    9321010    CFC12_ppt = CFC12_ppt_omp
    9331011    RCFC12 = RCFC12_omp
     1012
     1013    cycle_diurne = cycle_diurne_omp
     1014    soil_model = soil_model_omp
     1015    new_oliq = new_oliq_omp
     1016    ok_orodr = ok_orodr_omp
     1017    ok_orolf = ok_orolf_omp
     1018    ok_limitvrai = ok_limitvrai_omp
     1019    nbapp_rad = nbapp_rad_omp
     1020    iflag_con = iflag_con_omp
     1021
    9341022    epmax = epmax_omp
    9351023    ok_adj_ema = ok_adj_ema_omp
     
    10351123  write(numout,*)' cvl_corr=', cvl_corr
    10361124  write(numout,*)'ok_lic_melt=', ok_lic_melt
     1125  write(numout,*)'cycle_diurne=',cycle_diurne
     1126  write(numout,*)'soil_model=',soil_model
     1127  write(numout,*)'new_oliq=',new_oliq
     1128  write(numout,*)'ok_orodr=',ok_orodr
     1129  write(numout,*)'ok_orolf=',ok_orolf
     1130  write(numout,*)'ok_limitvrai=',ok_limitvrai
     1131  write(numout,*)'nbapp_rad=',nbapp_rad
     1132  write(numout,*)'iflag_con=',iflag_con
    10371133  write(numout,*)' epmax = ', epmax
    10381134  write(numout,*)' ok_adj_ema = ', ok_adj_ema
  • LMDZ4/trunk/libf/phylmd/ini_histrac.h

    r782 r956  
    2323
    2424         zsto = pdtphys
    25          zout = pdtphys * ecrit_tra
     25         zout = ecrit_tra
    2626c
    2727         CALL histdef(nid_tra, "phis", "Surface geop. height", "-",
  • LMDZ4/trunk/libf/phylmd/phyetat0.F

    r937 r956  
    191191       
    192192c
    193        
     193!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     194! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     195! Les constantes de la physiques sont lues dans la physique seulement.
     196! Les egalites du type
     197!             tab_cntrl( 5 )=clesphy0(1)
     198! sont remplacees par
     199!             clesphy0(1)=tab_cntrl( 5 )
     200! On inverse aussi la logique.
     201! On remplit les tab_cntrl avec les parametres lus dans les .def
     202!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     203
    194204         DO i = 1, length
    195205           tabcntr0( i ) = tab_cntrl( i )
    196206         ENDDO
    197207c
    198          cycle_diurne   = .FALSE.
    199          soil_model     = .FALSE.
    200          new_oliq       = .FALSE.
    201          ok_orodr       = .FALSE.
    202          ok_orolf       = .FALSE.
    203          ok_limitvrai   = .FALSE.
    204 
    205 
    206          IF( clesphy0(1).NE.tab_cntrl( 5 ) )  THEN
    207              tab_cntrl( 5 ) = clesphy0(1)
    208          ENDIF
    209 
    210          IF( clesphy0(2).NE.tab_cntrl( 6 ) )  THEN
    211              tab_cntrl( 6 ) = clesphy0(2)
    212          ENDIF
    213 
    214          IF( clesphy0(3).NE.tab_cntrl( 7 ) )  THEN
    215              tab_cntrl( 7 ) = clesphy0(3)
    216          ENDIF
    217 
    218          IF( clesphy0(4).NE.tab_cntrl( 8 ) )  THEN
    219              tab_cntrl( 8 ) = clesphy0(4)
    220          ENDIF
    221 
    222          IF( clesphy0(5).NE.tab_cntrl( 9 ) )  THEN
    223              tab_cntrl( 9 ) = clesphy0( 5 )
    224          ENDIF
    225 
    226          IF( clesphy0(6).NE.tab_cntrl( 10 ) )  THEN
    227              tab_cntrl( 10 ) = clesphy0( 6 )
    228          ENDIF
    229 
    230          IF( clesphy0(7).NE.tab_cntrl( 11 ) )  THEN
    231              tab_cntrl( 11 ) = clesphy0( 7 )
    232          ENDIF
    233 
    234          IF( clesphy0(8).NE.tab_cntrl( 12 ) )  THEN
    235              tab_cntrl( 12 ) = clesphy0( 8 )
    236          ENDIF
    237 
    238 
    239          dtime        = tab_cntrl(1)
    240          radpas       = tab_cntrl(2)
     208         tab_cntrl(1)=dtime
     209         tab_cntrl(2)=radpas
    241210         co2_ppm_etat0      = tab_cntrl(3)
    242211         solaire_etat0      = tab_cntrl(4)
    243          iflag_con    = tab_cntrl(5)
    244          nbapp_rad    = tab_cntrl(6)
    245 
    246 
    247          cycle_diurne    = .FALSE.
    248          soil_model      = .FALSE.
    249          new_oliq        = .FALSE.
    250          ok_orodr        = .FALSE.
    251          ok_orolf        = .FALSE.
    252          ok_limitvrai    = .FALSE.
    253 
    254          IF( tab_cntrl( 7) .EQ. 1. )    cycle_diurne  = .TRUE.
    255          IF( tab_cntrl( 8) .EQ. 1. )       soil_model = .TRUE.
    256          IF( tab_cntrl( 9) .EQ. 1. )         new_oliq = .TRUE.
    257          IF( tab_cntrl(10) .EQ. 1. )         ok_orodr = .TRUE.
    258          IF( tab_cntrl(11) .EQ. 1. )         ok_orolf = .TRUE.
    259          IF( tab_cntrl(12) .EQ. 1. )     ok_limitvrai = .TRUE.
     212         tab_cntrl(5)=iflag_con
     213         tab_cntrl(6)=nbapp_rad
     214
     215         if (cycle_diurne) tab_cntrl( 7) =1.
     216         if (soil_model) tab_cntrl( 8) =1.
     217         if (new_oliq) tab_cntrl( 9) =1.
     218         if (ok_orodr) tab_cntrl(10) =1.
     219         if (ok_orolf) tab_cntrl(11) =1.
     220         if (ok_limitvrai) tab_cntrl(12) =1.
    260221
    261222
    262223      itau_phy = tab_cntrl(15)
     224
     225       
     226
     227         IF( clesphy0(1).NE.tab_cntrl( 5 ) )  THEN
     228             clesphy0(1)=tab_cntrl( 5 )
     229         ENDIF
     230
     231         IF( clesphy0(2).NE.tab_cntrl( 6 ) )  THEN
     232             clesphy0(2)=tab_cntrl( 6 )
     233         ENDIF
     234
     235         IF( clesphy0(3).NE.tab_cntrl( 7 ) )  THEN
     236             clesphy0(3)=tab_cntrl( 7 )
     237         ENDIF
     238
     239         IF( clesphy0(4).NE.tab_cntrl( 8 ) )  THEN
     240             clesphy0(4)=tab_cntrl( 8 )
     241         ENDIF
     242
     243         IF( clesphy0(5).NE.tab_cntrl( 9 ) )  THEN
     244             clesphy0(5)=tab_cntrl( 9 )
     245         ENDIF
     246
     247         IF( clesphy0(6).NE.tab_cntrl( 10 ) )  THEN
     248             clesphy0(6)=tab_cntrl( 10 )
     249         ENDIF
     250
     251         IF( clesphy0(7).NE.tab_cntrl( 11 ) )  THEN
     252             clesphy0(7)=tab_cntrl( 11 )
     253         ENDIF
     254
     255         IF( clesphy0(8).NE.tab_cntrl( 12 ) )  THEN
     256             clesphy0(8)=tab_cntrl( 12 )
     257         ENDIF
     258
    263259
    264260c
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r955 r956  
    12511251      print*,'iflag_coupl,iflag_clos,iflag_wake',
    12521252     .   iflag_coupl,iflag_clos,iflag_wake
     1253      print*,'CYCLE_DIURNE', cycle_diurne
    12531254
    12541255c
     
    12661267             PRINT*, "Using method MELLOR&YAMADA"
    12671268         endif
     1269
     1270!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1271! FH 2008/05/02 changement lie a la lecture de nbapp_rad dans phylmd plutot que
     1272! dyn3d
     1273! Attention : la version precedente n'etait pas tres propre.
     1274! Il se peut qu'il faille prendre une valeur differente de nbapp_rad
     1275! pour obtenir le meme resultat.
     1276         dtime=pdtphys
     1277         radpas = NINT( 86400./dtime/nbapp_rad)
     1278!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1279
    12681280
    12691281         CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0,
     
    12931305      ENDDO
    12941306
    1295          radpas = NINT( 86400./dtime/nbapp_rad)
    12961307c
    12971308C on remet le calendrier a zero
  • LMDZ4/trunk/libf/phylmd/phytrac.F

    r955 r956  
    273273
    274274C
    275 C Variables liees a l'ecriture de la bande histoire : phytrac.nc
    276 c
    277 c      INTEGER ecrit_tra
    278 c      SAVE ecrit_tra
    279 
    280275      logical ok_sync
    281276      parameter (ok_sync = .true.)
     
    425420
    426421c jg: c'est ca qu'on veut?????           
    427           ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy))
    428           print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra
     422! FH 2008/05/09 correction de la frequence d'ecriture des traceurs
     423!         ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy))
     424          print*,'dans phytrac ',pdtphys,ecrit_tra
    429425
    430426         if(nbtr.lt.nqmax) then
  • LMDZ4/trunk/libf/phylmd/write_paramLMDZ_phy.h

    r828 r956  
    139139     .               zx_tmp_2d,iim*jjmp1,ndex2d)
    140140c
     141!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     142! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     143! Mais est-il bien raisonable de stoker ces fichiers comme des
     144! champs 2D...
     145! WARNING :
     146! Il faudrait ici ajoute l'ecriture des champs
     147!      cycle_diurne = cycle_diurne_omp
     148!   soil_model = soil_model_omp
     149!   new_oliq = new_oliq_omp
     150!   ok_orodr = ok_orodr_omp
     151!   ok_orolf = ok_orolf_omp
     152!   ok_limitvrai = ok_limitvrai_omp
     153!   nbapp_rad = nbapp_rad_omp
     154!   iflag_con = iflag_con_omp
     155! qui se trouvaient auparavant dans gcm.def et maintenant dans
     156! physiq.def.
     157! Mais regarder d'abord a quoi ca sert ...
     158!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     159
     160
     161c
    141162      IF(ok_adj_ema) THEN
    142163       zx_tmp_2d(1:iim,1:jjmp1)=1.
Note: See TracChangeset for help on using the changeset viewer.