Changeset 711


Ignore:
Timestamp:
Jun 29, 2012, 8:46:10 AM (12 years ago)
Author:
emillour
Message:

Generic Model:

  • Some cleanup in start2archive.F and ini_archive.F to get them to work for the generic model (removed some "Martian" specificities).

EM

Location:
trunk/LMDZ.GENERIC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r699 r711  
    684684  and also added option "q=profile" to initialize a tracer with a profile
    685685  read from file "profile_tracername"
     686
     687== 29/06/2012 == EM
     688- Some cleanup in start2archive.F and ini_archive.F to get them to work for
     689  the generic model (removed some "Martian" specificities).
  • trunk/LMDZ.GENERIC/libf/dyn3d/ini_archive.F

    r536 r711  
    11c=======================================================================
    2       subroutine ini_archive(nid,idayref,phis,ith,tab_cntrl_fi)
     2      subroutine ini_archive(nid,idayref,phis,ith,tab_cntrl_fi,
     3     &                       tab_cntrl_dyn)
    34c=======================================================================
    45c
     
    7273      real ith(ip1jmp1,nsoilmx)
    7374      REAL              tab_cntrl_fi(length)
     75      REAL tab_cntrl_dyn(length)
    7476
    7577!Mars --------Ajouts-----------
     
    9597         tab_cntrl(l)=0.
    9698      ENDDO
    97 
    98       print*,'WARNING: ini_archive.F not generalised to generic model'
    99       print*,'(assumption of mugaz=43.49 hard-coded)'
    100       stop
     99     
     100      tab_cntrl(1:50)=tab_cntrl_dyn(1:50)
    101101
    102102ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    103       tab_cntrl(1)  = FLOAT(iim) ! nombre de points en longitude
    104       tab_cntrl(2)  = FLOAT(jjm) ! nombre de points en latitude
    105       tab_cntrl(3)  = FLOAT(llm) ! nombre de couches
    106       tab_cntrl(4)  = FLOAT(idayref) ! jour 0
    107       tab_cntrl(5)  = rad ! rayon de mars(m) ~3397200
    108       tab_cntrl(6)  = omeg ! vitesse de rotation (rad.s-1)
    109       tab_cntrl(7)  = g   ! gravite (m.s-2) ~3.72
    110       tab_cntrl(8)  = cpp
    111       tab_cntrl(8)  = 43.49 !mars temporaire Masse molaire de l''atm (g.mol-1) ~43.49
    112       tab_cntrl(9)  = kappa ! = r/cp  ~0.256793 (=rcp dans physique)
    113       tab_cntrl(10) = daysec ! duree du sol (s)  ~88775
    114       tab_cntrl(11) = dtvr ! pas de temps de la dynamique (s)
    115       tab_cntrl(12) = etot0 ! energie totale    !
    116       tab_cntrl(13) = ptot0 ! pression totalei   !    variables
    117       tab_cntrl(14) = ztot0 ! enstrophie totale   !  de controle
    118       tab_cntrl(15) = stot0 ! enthalpie totale   !    globales
    119       tab_cntrl(16) = ang0 ! moment cinetique  !
    120       tab_cntrl(17) = pa
    121       tab_cntrl(18) = preff
     103!      tab_cntrl(1)  = FLOAT(iim) ! nombre de points en longitude
     104!      tab_cntrl(2)  = FLOAT(jjm) ! nombre de points en latitude
     105!      tab_cntrl(3)  = FLOAT(llm) ! nombre de couches
     106!      tab_cntrl(4)  = FLOAT(idayref) ! jour 0
     107!      tab_cntrl(5)  = rad ! rayon de mars(m) ~3397200
     108!      tab_cntrl(6)  = omeg ! vitesse de rotation (rad.s-1)
     109!      tab_cntrl(7)  = g   ! gravite (m.s-2) ~3.72
     110!      tab_cntrl(8)  = cpp
     111!      tab_cntrl(8)  = 43.49 !mars temporaire Masse molaire de l''atm (g.mol-1) ~43.49
     112!      tab_cntrl(9)  = kappa ! = r/cp  ~0.256793 (=rcp dans physique)
     113!      tab_cntrl(10) = daysec ! duree du sol (s)  ~88775
     114!      tab_cntrl(11) = dtvr ! pas de temps de la dynamique (s)
     115!      tab_cntrl(12) = etot0 ! energie totale    !
     116!      tab_cntrl(13) = ptot0 ! pression totalei   !    variables
     117!      tab_cntrl(14) = ztot0 ! enstrophie totale   !  de controle
     118!      tab_cntrl(15) = stot0 ! enthalpie totale   !    globales
     119!      tab_cntrl(16) = ang0 ! moment cinetique  !
     120!      tab_cntrl(17) = pa
     121!      tab_cntrl(18) = preff
    122122
    123123c    .....    parametres  pour le zoom      ......   
    124124
    125       tab_cntrl(19)  = clon ! longitude en degres du centre du zoom
    126       tab_cntrl(20)  = clat ! latitude en degres du centre du zoom
    127       tab_cntrl(21)  = grossismx ! facteur de grossissement du zoom,selon longitude
    128       tab_cntrl(22)  = grossismy ! facteur de grossissement du zoom ,selon latitude
    129 
    130       IF ( fxyhypb )   THEN
    131        tab_cntrl(23) = 1.
    132        tab_cntrl(24) = dzoomx ! extension en longitude  de la zone du zoom
    133        tab_cntrl(25) = dzoomy ! extension en latitude  de la zone du zoom
    134       ELSE
    135        tab_cntrl(23) = 0.
    136        tab_cntrl(24) = dzoomx ! extension en longitude  de la zone du zoom
    137        tab_cntrl(25) = dzoomy ! extension en latitude  de la zone du zoom
    138        tab_cntrl(26) = 0.
    139        IF ( ysinus)  tab_cntrl(26) = 1.
    140       ENDIF
     125!      tab_cntrl(19)  = clon ! longitude en degres du centre du zoom
     126!      tab_cntrl(20)  = clat ! latitude en degres du centre du zoom
     127!      tab_cntrl(21)  = grossismx ! facteur de grossissement du zoom,selon longitude
     128!      tab_cntrl(22)  = grossismy ! facteur de grossissement du zoom ,selon latitude
     129
     130!      IF ( fxyhypb )   THEN
     131!       tab_cntrl(23) = 1.
     132!       tab_cntrl(24) = dzoomx ! extension en longitude  de la zone du zoom
     133!       tab_cntrl(25) = dzoomy ! extension en latitude  de la zone du zoom
     134!      ELSE
     135!       tab_cntrl(23) = 0.
     136!       tab_cntrl(24) = dzoomx ! extension en longitude  de la zone du zoom
     137!       tab_cntrl(25) = dzoomy ! extension en latitude  de la zone du zoom
     138!       tab_cntrl(26) = 0.
     139!       IF ( ysinus)  tab_cntrl(26) = 1.
     140!      ENDIF
    141141
    142142c-----------------------------------------------------------------------
    143143c   Copie du tableau des parametres de controle du RUN  (physique)
    144 c               dans le tableau dynamique
     144c               dans le tableau tab_cntrl
    145145c-----------------------------------------------------------------------
    146146
     
    522522#endif
    523523
    524       PRINT*,'iim,jjm,llm,idayref',iim,jjm,llm,idayref
    525       PRINT*,'rad,omeg,g,mugaz,kappa',
    526      s rad,omeg,g,43.49,kappa !mars temporaire (ecrire mugaz ensuite)
    527       PRINT*,'daysec,dtvr',daysec,dtvr
     524      PRINT*,'ini_archive: iim,jjm,llm,idayref',iim,jjm,llm,idayref
     525      PRINT*,'ini_archive: rad,omeg,g,mugaz,kappa',
     526     s rad,omeg,g,tab_cntrl_fi(8),kappa
     527      PRINT*,'ini_archive: daysec,dtvr',daysec,dtvr
    528528
    529529      RETURN
  • trunk/LMDZ.GENERIC/libf/dyn3d/start2archive.F

    r253 r711  
    3535#include "dimphys.h"
    3636#include "comsoil.h"
     37#include "planete.h"
    3738#include"advtrac.h"
    3839#include "netcdf.inc"
     
    6667      PARAMETER (length = 100)
    6768      REAL tab_cntrl_fi(length) ! tableau des parametres de startfi
     69      REAL tab_cntrl_dyn(length) ! tableau des parametres de start
    6870      INTEGER*4 day_ini_fi
    6971
     
    131133     .       ps,phis,timedyn)
    132134
     135! load 'controle' array from dynamics start file
     136
     137       ierr = NF_OPEN (fichnom, NF_NOWRITE,nid1)
     138       IF (ierr.NE.NF_NOERR) THEN
     139         write(6,*)' Pb d''ouverture du fichier'//trim(fichnom)
     140        CALL ABORT
     141       ENDIF
     142                                               
     143      ierr = NF_INQ_VARID (nid1, "controle", varid)
     144      IF (ierr .NE. NF_NOERR) THEN
     145       PRINT*, "start2archive: Le champ <controle> est absent"
     146       CALL abort
     147      ENDIF
     148#ifdef NC_DOUBLE
     149       ierr = NF_GET_VAR_DOUBLE(nid1, varid, tab_cntrl_dyn)
     150#else
     151      ierr = NF_GET_VAR_REAL(nid1, varid, tab_cntrl_dyn)
     152#endif
     153       IF (ierr .NE. NF_NOERR) THEN
     154          PRINT*, "start2archive: Lecture echoue pour <controle>"
     155          CALL abort
     156       ENDIF
     157
     158      ierr = NF_CLOSE(nid1)
     159     
    133160
    134161      fichnom = 'startfi.nc'
     
    141168
    142169
     170! load 'controle' array from physics start file
    143171
    144172       ierr = NF_OPEN (fichnom, NF_NOWRITE,nid1)
    145173       IF (ierr.NE.NF_NOERR) THEN
    146          write(6,*)' Pb d''ouverture du fichier'//fichnom
     174         write(6,*)' Pb d''ouverture du fichier'//trim(fichnom)
    147175        CALL ABORT
    148176       ENDIF
     
    165193      ierr = NF_CLOSE(nid1)
    166194
     195
    167196c-----------------------------------------------------------------------
    168197c Controle de la synchro
     
    175204c *****************************************************************
    176205c    Option : Reinitialisation des dates dans la premieres annees :
    177        do while (day_ini.ge.669)
    178           day_ini=day_ini-669
     206       do while (day_ini.ge.year_day)
     207          day_ini=day_ini-year_day
    179208       enddo
    180209c *****************************************************************
     
    298327         write(*,*)'So let s create a new "start_archive"'
    299328         ierr = NF_CREATE('start_archive.nc', NF_CLOBBER, nid)
    300          call ini_archive(nid,day_ini,phis,ithS,tab_cntrl_fi)
     329         call ini_archive(nid,day_ini,phis,ithS,tab_cntrl_fi,
     330     &                                          tab_cntrl_dyn)
    301331      endif
    302332
Note: See TracChangeset for help on using the changeset viewer.