Ignore:
Timestamp:
May 4, 2012, 5:14:30 PM (13 years ago)
Author:
jleconte
Message:
  • Correction a huge bug in newstart: rcp and cpp can now be changed in start.nc files and are the same as in startfi.nc;

Even when starting from start and startfi files.

  • rcp, cpp and mugaz can now be computed using gases.def in newstart
  • Correction of a bug arising in gcm.F when the solar days are long (thanks Melanie V.)
Location:
trunk/LMDZ.GENERIC/libf
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/dyn3d/gcm.F

    r253 r649  
    409409             rday_ecri = rdaym_ini
    410410           ELSE
    411              rday_ecri = INT( rdayvrai )
     411             rday_ecri = INT(rdaym_ini)+INT(day_ini)
    412412           ENDIF
    413413c
  • trunk/LMDZ.GENERIC/libf/dyn3d/newstart.F

    r588 r649  
    176176!      CHARACTER*80 :: visu_file
    177177
    178 !      cpp    = 744.499 ! for Mars, instead of 1004.70885 (Earth)
    179 !      preff  = 610.    ! for Mars, instead of 101325. (Earth)
    180 !      pa     = 20      ! for Mars, instead of 500 (Earth)
    181178      cpp    = 0.
    182179      preff  = 0.
     
    246243      endif
    247244
     245
     246c=======================================================================
     247c  INITIALISATIONS DIVERSES
     248c=======================================================================
     249! Load tracer names:
     250      call iniadvtrac(nq,numvanle)
     251      ! tnom(:) now contains tracer names
     252! JL12 we will need the tracer names to read start in dyneta0
     253
    248254c-----------------------------------------------------------------------
    249255c Lecture du tableau des parametres du run (pour la dynamique)
     
    284290          tab_cntrl(i+50)=tab_cntrl_bis(i)
    285291        enddo
    286       write(*,*) 'printing tab_cntrl', tab_cntrl
    287       do i=1,100
    288         write(*,*) i,tab_cntrl(i)
    289       enddo
     292        write(*,*) 'printing tab_cntrl', tab_cntrl
     293        do i=1,100
     294          write(*,*) i,tab_cntrl(i)
     295        enddo
     296       
     297        ! Lmodif set to 0 to disable modifications possibility in phyeta0                           
     298        write(*,*) 'Reading file START'
     299        fichnom = 'start.nc'
     300        CALL dynetat0(fichnom,nqmx,vcov,ucov,teta,q,masse,
     301     .       ps,phis,time)
     302
     303        write(*,*) 'Reading file STARTFI'
     304        fichnom = 'startfi.nc'
     305        CALL phyetat0 (fichnom,tab0,Lmodif,nsoilmx,nqmx,
     306     .        day_ini,time,
     307     .        tsurf,tsoil,emis,q2,qsurf,   !) ! temporary modif by RDW
     308     .        cloudfrac,totalfrac,hice)
     309
     310        ! copy albedo and soil thermal inertia
     311        do i=1,ngridmx
     312          albfi(i) = albedodat(i)
     313          do j=1,nsoilmx
     314           ithfi(i,j) = inertiedat(i,j)
     315          enddo
     316        ! build a surfithfi(:) using 1st layer of ithfi(:), which might
     317        ! be neede later on if reinitializing soil thermal inertia
     318          surfithfi(i)=ithfi(i,1)
     319        enddo
     320
    290321     
    291322      endif
     
    332363     .            p_omeg,p_g,p_cpp,p_mugaz,p_daysec,time)
    333364      else if (choix_1.eq.1) then
     365         Lmodif=1 ! Lmodif set to 1 to allow modifications in phyeta0                           
    334366         call tabfi (nid_fi,Lmodif,tab0,day_ini,lllm,p_rad,
    335367     .            p_omeg,p_g,p_cpp,p_mugaz,p_daysec,time)
     
    349381c  INITIALISATIONS DIVERSES
    350382c=======================================================================
    351 ! Load tracer names:
    352       call iniadvtrac(nq,numvanle)
    353       ! tnom(:) now contains tracer names
    354383! Initialize global tracer indexes (stored in tracer.h)
    355384      call initracer()
     
    423452        ierr= NF_CLOSE(nid)
    424453
    425       else if (choix_1.eq.1) then !  c'est l'appel a tabfi de phyeta0 qui
    426                                   !  permet de changer les valeurs du
    427                                   !  tab_cntrl Lmodif=1
    428         tab0=0
    429         Lmodif=1 ! Lmodif set to 1 to allow modifications in phyeta0                           
    430         write(*,*) 'Reading file START'
    431         fichnom = 'start.nc'
    432         CALL dynetat0(fichnom,nqmx,vcov,ucov,teta,q,masse,
    433      .       ps,phis,time)
    434 
    435         write(*,*) 'Reading file STARTFI'
    436         fichnom = 'startfi.nc'
    437         CALL phyetat0 (fichnom,tab0,Lmodif,nsoilmx,nqmx,
    438      .        day_ini,time,
    439      .        tsurf,tsoil,emis,q2,qsurf,   !) ! temporary modif by RDW
    440      .        cloudfrac,totalfrac,hice)
    441 
    442         ! copy albedo and soil thermal inertia
    443         do i=1,ngridmx
    444           albfi(i) = albedodat(i)
    445           do j=1,nsoilmx
    446            ithfi(i,j) = inertiedat(i,j)
    447           enddo
    448         ! build a surfithfi(:) using 1st layer of ithfi(:), which might
    449         ! be neede later on if reinitializing soil thermal inertia
    450           surfithfi(i)=ithfi(i,1)
    451         enddo
    452 
     454      else if (choix_1.eq.1) then
     455         !do nothing, start and startfi have already been read
    453456      else
    454457        CALL exit(1)
  • trunk/LMDZ.GENERIC/libf/phystd/tabfi.F

    r590 r649  
    7979      INTEGER size
    8080      CHARACTER modif*20
    81 
    8281
    8382c-----------------------------------------------------------------------
     
    229228      write(*,*) '(31 et 32) iceradius : mean scat radius of CO2 snow'
    230229      write(*,*) '(33 et 34) dtemisice : time scale for snow',
    231      &           ' metamorphism'
     230     &           '                       metamorphism'
    232231      write(*,*) '(27)        tauvis : mean dust vis. reference ',
    233      &           'opacity'
    234       write(*,*) '(35)      volcapa : soil volumetric heat capacity'
     232     &           '                     opacity'
     233      write(*,*) '(35)     volcapa : soil volumetric heat capacity'
    235234      write(*,*) '(18)     obliquit : planet obliquity (deg)'
    236235      write(*,*) '(17)     peri_day : periastron date (sols since Ls=0)'
     
    238237      write(*,*) '(16)     apoastr  : max. star-planet (UA)'
    239238      write(*,*) '(14)     year_day : length of year (in sols)'
    240       write(*,*) '(5) rad : radius of the planet (m)'
    241       write(*,*) '(6) omeg : planet rotation rate (rad/s)'
    242       write(*,*) '(7) g : gravity (m/s2)'
    243       write(*,*) '(8) mugaz : molecular mass of the atmosphere (g/mol)'
    244       write(*,*) '(9) rcp : r/Cp'
    245       write(*,*) '(10) daysec : length of a sol (s)'
     239      write(*,*) '(5)      rad      : radius of the planet (m)'
     240      write(*,*) '(6)      omeg     : planet rotation rate (rad/s)'
     241      write(*,*) '(7)      g        : gravity (m/s2)'
     242      write(*,*) '(8)      mugaz    : molecular mass '
     243      write(*,*) '                       of the atmosphere (g/mol)'
     244      write(*,*) '(9)      rcp      : r/Cp'
     245      write(*,*) '(8)+(9)  calc_cpp_mugaz : r/Cp and mugaz '
     246      write(*,*) '                 computed from gases.def'
     247      write(*,*) '(10)     daysec   : length of a sol (s)'
    246248      write(*,*)
    247249 
     
    460462          write(*,*) ' cpp (new value):',cpp
    461463
     464        else if (modif(1:len_trim(modif)).eq.'calc_cpp_mugaz') then
     465          write(*,*) 'current value rcp, mugaz:',rcp,mugaz
     466          check_cpp_match=.false.
     467          force_cpp=.false.
     468          call su_gases
     469          call calc_cpp_mugaz
     470          write(*,*)
     471          write(*,*) ' cpp (new value):',cpp
     472          write(*,*) ' mugaz (new value):',mugaz
     473          r=8.314511/(mugaz/1000.0)
     474          rcp=r/cpp
     475          write(*,*) ' rcp (new value):',rcp
     476         
    462477        else if (modif(1:len_trim(modif)).eq.'daysec') then
    463478          write(*,*) 'current value:',daysec
Note: See TracChangeset for help on using the changeset viewer.