Changeset 4110


Ignore:
Timestamp:
Mar 25, 2022, 10:30:13 PM (3 years ago)
Author:
fhourdin
Message:

Pour la capacité "replay" des paramétrisations

Location:
LMDZ6/trunk/libf/phylmd
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90

    r4105 r4110  
    10331033!
    10341034!=====================================================================
     1035#ifdef OUTPUT_PHYS_SCM
    10351036       CALL iophys_ini(timestep)
     1037#endif
    10361038! START OF THE TEMPORAL LOOP :
    10371039!=====================================================================
     
    12861288     &             +dt_cooling(1:mxcalc))  ! Taux de chauffage ou refroid.
    12871289
    1288 print*,'OLDLMDZ1D IOPH'
     1290#ifdef OUTPUT_PHYS_SCM
    12891291      CALL iophys_ecrit('d_t_adv',klev,'d_t_adv','m/s',d_t_adv)
    12901292      CALL iophys_ecrit('d_t_nudge',klev,'d_t_nudge','m/s',d_t_nudge)
     1293#endif
    12911294
    12921295      endif  ! forcing_sandu or forcing_astex
  • LMDZ6/trunk/libf/phylmd/dyn1d/replay1d.F90

    r4094 r4110  
    33  USE mod_const_mpi, ONLY: comm_lmdz
    44  USE inigeomphy_mod, ONLY: inigeomphy
     5 USE comvert_mod, ONLY: presnivs
     6USE comvert_mod, only :  preff, pa
     7
    58
    69
     
    811#include "dimensions.h"
    912
    10 real presnivs(llm)
    1113real :: airefi
    1214real :: zcufi    = 1.
     
    2729  rlat_rad(1)=0.
    2830  rlon_rad(1)=0.
     31
     32preff=101325.
     33pa=50000.
     34  CALL disvert()
    2935  CALL inigeomphy(1,1,llm, &
    3036               1, comm_lmdz, &
     
    3642
    3743CALL suphel
    38 
    39 !---------------------------------------------------------------------
    40 ! Initialisation d'un fichier de sorties
    41 !---------------------------------------------------------------------
    42 call system("ncdump -h phys.nc  |grep -i time | head -1 | cut -d\( -f2  | awk ' { print $1 } ' > presnivs")
    43 call system("ncks -v lev phys.nc | grep 'lev.*.,' | sed -e 's/lev//' -e 's/[=;,]//g' >> presnivs")
    44 open(10,file="presnivs",form="formatted")
    45 read(10,*) ntime
    46 read(10,*) presnivs
    47 close(10)
     44ntime=100
    4845jour0=1
    4946mois0=1
     
    5148klon=1
    5249klev=llm
    53 call iotd_ini('physb.nc',1,1,klev,0.,0.,presnivs,jour0,mois0,an0,0.,900.,'360d')
     50call iotd_ini('phys.nc',1,1,klev,0.,0.,presnivs,jour0,mois0,an0,0.,900.,'360d')
    5451
    5552!---------------------------------------------------------------------
  • LMDZ6/trunk/libf/phylmd/iophys.F90

    r3977 r4110  
    207207
    208208#endif
     209!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     210! Interface pour ecrire en netcdf avec les routines d'enseignement
     211! iotd de Frederic Hourdin
     212!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     213
     214      SUBROUTINE iotd_ecrit_seq(nom,lllm,titre,unite,px)
     215
     216      IMPLICIT NONE
     217
     218! px arrive
     219
     220#include "iotd.h"
     221
     222
     223! Arguments on input:
     224      integer lllm
     225      character (len=*) :: nom,titre,unite
     226      integer imjmax
     227      parameter (imjmax=100000)
     228      real px(imjmax*lllm)
     229      real, allocatable :: zx(:,:,:)
     230      integer i,j,l,ijl
     231
     232      allocate(zx(imax,jmax,lllm))
     233
     234      ijl=0
     235      do l=1,lllm
     236         ! Pole nord
     237         ijl=ijl+1
     238         do i=1,imax
     239            zx(i,1,l)=px(ijl)
     240         enddo
     241         ! Grille normale
     242         do j=2,jmax-1
     243            do i=1,imax
     244               ijl=ijl+1
     245               zx(i,j,l)=px(ijl)
     246            enddo
     247         enddo
     248         ! Pole sud
     249         if ( jmax > 1 ) then
     250            ijl=ijl+1
     251            do i=1,imax
     252               zx(i,jmax,l)=px(ijl)
     253            enddo
     254         endif
     255      enddo
     256
     257      call iotd_ecrit(nom,lllm,titre,unite,zx)
     258      deallocate(zx)
     259
     260      return
     261      end
     262
Note: See TracChangeset for help on using the changeset viewer.