Changeset 956 for LMDZ4/trunk/libf/dyn3d


Ignore:
Timestamp:
May 9, 2008, 6:17:59 PM (16 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/dyn3d
Files:
10 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
Note: See TracChangeset for help on using the changeset viewer.