replay1d.f90 Source File


This file depends on

sourcefile~~replay1d.f90~~EfferentGraph sourcefile~replay1d.f90 replay1d.f90 sourcefile~inigeomphy_mod.f90 inigeomphy_mod.f90 sourcefile~replay1d.f90->sourcefile~inigeomphy_mod.f90 sourcefile~mod_const_mpi.f90 mod_const_mpi.f90 sourcefile~replay1d.f90->sourcefile~mod_const_mpi.f90 sourcefile~comvert_mod.f90 comvert_mod.f90 sourcefile~replay1d.f90->sourcefile~comvert_mod.f90 sourcefile~inigeomphy_mod.f90->sourcefile~comvert_mod.f90 sourcefile~mod_phys_lmdz_para.f90 mod_phys_lmdz_para.f90 sourcefile~inigeomphy_mod.f90->sourcefile~mod_phys_lmdz_para.f90 sourcefile~geometry_mod.f90 geometry_mod.f90 sourcefile~inigeomphy_mod.f90->sourcefile~geometry_mod.f90 sourcefile~regular_lonlat_mod.f90 regular_lonlat_mod.f90 sourcefile~inigeomphy_mod.f90->sourcefile~regular_lonlat_mod.f90 sourcefile~iniprint_mod_h.f90 iniprint_mod_h.f90 sourcefile~inigeomphy_mod.f90->sourcefile~iniprint_mod_h.f90 sourcefile~mod_interface_dyn_phys.f90 mod_interface_dyn_phys.F90 sourcefile~inigeomphy_mod.f90->sourcefile~mod_interface_dyn_phys.f90 sourcefile~vertical_layers_mod.f90 vertical_layers_mod.f90 sourcefile~inigeomphy_mod.f90->sourcefile~vertical_layers_mod.f90 sourcefile~mod_grid_phy_lmdz.f90 mod_grid_phy_lmdz.f90 sourcefile~inigeomphy_mod.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~nrtype.f90 nrtype.f90 sourcefile~inigeomphy_mod.f90->sourcefile~nrtype.f90 sourcefile~physics_distribution_mod.f90 physics_distribution_mod.f90 sourcefile~inigeomphy_mod.f90->sourcefile~physics_distribution_mod.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~mod_phys_lmdz_mpi_data.f90 mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_transfert_para.f90 mod_phys_lmdz_transfert_para.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_transfert_para.f90 sourcefile~print_control_mod.f90 print_control_mod.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~print_control_mod.f90 sourcefile~mod_phys_lmdz_omp_data.f90 mod_phys_lmdz_omp_data.F90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_omp_data.f90 sourcefile~geometry_mod.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~geometry_mod.f90->sourcefile~nrtype.f90 sourcefile~physics_distribution_mod.f90->sourcefile~mod_phys_lmdz_para.f90 sourcefile~physics_distribution_mod.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~dimphy.f90 dimphy.f90 sourcefile~physics_distribution_mod.f90->sourcefile~dimphy.f90 sourcefile~infotrac_phy.f90 infotrac_phy.F90 sourcefile~physics_distribution_mod.f90->sourcefile~infotrac_phy.f90 sourcefile~lmdz_cppkeys_wrapper.f90 lmdz_cppkeys_wrapper.F90 sourcefile~physics_distribution_mod.f90->sourcefile~lmdz_cppkeys_wrapper.f90 sourcefile~lmdz_reprobus_wrappers.f90 lmdz_reprobus_wrappers.F90 sourcefile~physics_distribution_mod.f90->sourcefile~lmdz_reprobus_wrappers.f90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~lmdz_cppkeys_wrapper.f90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~print_control_mod.f90 sourcefile~lmdz_mpi.f90 lmdz_mpi.F90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~lmdz_mpi.f90 sourcefile~infotrac_phy.f90->sourcefile~mod_phys_lmdz_para.f90 sourcefile~infotrac_phy.f90->sourcefile~iniprint_mod_h.f90 sourcefile~infotrac_phy.f90->sourcefile~lmdz_cppkeys_wrapper.f90 sourcefile~infotrac_phy.f90->sourcefile~lmdz_reprobus_wrappers.f90 sourcefile~strings_mod.f90 strings_mod.f90 sourcefile~infotrac_phy.f90->sourcefile~strings_mod.f90 sourcefile~readtracfiles_mod.f90 readTracFiles_mod.f90 sourcefile~infotrac_phy.f90->sourcefile~readtracfiles_mod.f90 sourcefile~ioipsl_getin_p_mod.f90 ioipsl_getin_p_mod.f90 sourcefile~infotrac_phy.f90->sourcefile~ioipsl_getin_p_mod.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90 mod_phys_lmdz_omp_transfert.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_omp_transfert.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90 mod_phys_lmdz_mpi_transfert.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_mpi_transfert.f90 sourcefile~lmdz_reprobus_wrappers.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~dimphy.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~print_control_mod.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90->sourcefile~mod_phys_lmdz_omp_data.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~lmdz_mpi.f90 sourcefile~readtracfiles_mod.f90->sourcefile~strings_mod.f90 sourcefile~readtracfiles_mod.f90->sourcefile~ioipsl_getin_p_mod.f90 sourcefile~ioipsl_getin_p_mod.f90->sourcefile~mod_phys_lmdz_para.f90 sourcefile~ioipsl_getin_p_mod.f90->sourcefile~mod_phys_lmdz_transfert_para.f90 sourcefile~ioipsl_getin_p_mod.f90->sourcefile~strings_mod.f90

Contents

Source Code


Source Code

PROGRAM rejouer

USE mod_const_mpi, ONLY: comm_lmdz
USE inigeomphy_mod, ONLY: inigeomphy
USE comvert_mod, ONLY: presnivs
USE comvert_mod, only :  preff, pa
USE ioipsl, only: getin




      USE dimensions_mod, ONLY: iim, jjm, llm, ndm
implicit none


real :: airefi
real :: zcufi    = 1.
real :: zcvfi    = 1.
real :: rlat_rad(1),rlon_rad(1)

integer ntime
integer jour0,mois0,an0,day_step,anneeref,dayref
integer klev,klon
CHARACTER (len=10) :: calend
CHARACTER(len=20) :: calendrier
CHARACTER(len=20) :: lmax_replay

!---------------------------------------------------------------------
! L'appel a inigeomphy n'est utile que pour avoir getin_p dans 
! les initialisations
!---------------------------------------------------------------------
  zcufi=1.
  zcvfi=1.
  rlat_rad(1)=0.
  rlon_rad(1)=0.

preff=101325.
!preff=100000.
pa=50000.
  CALL disvert()
  CALL inigeomphy(1,1,llm, &
               1, comm_lmdz, &
           (/rlat_rad(1),0./),(/0./), &
           (/0.,0./),(/rlon_rad(1),0./),  &
           (/ (/airefi,0./),(/0.,0./) /), &
           (/zcufi,0.,0.,0./), &
           (/zcvfi,0./))

CALL suphel
!ntime=4320
ntime=10000000
dayref=1
anneeref=2000
call getin('dayref',dayref)
call getin('anneeref',anneeref)
call getin('calend',calend)
call getin('day_step',day_step)

print*,'AVANT getin'
klev=llm
CALL getin('lmax_replay',lmax_replay)
print*,'APRES getin',lmax_replay
CALL getin(lmax_replay,klev)
print*,'replay1d lmax_replay klev',lmax_replay,klev

calendrier=calend
if ( calendrier == "earth_360d" ) calendrier="360_day"


jour0=dayref
mois0=(jour0-1)/30+1
jour0=jour0-30*((jour0-1)/30)
an0=anneeref

!print*,"REPLAY1D jour0,mois0,an0",jour0,mois0,an0


klon=1
call iotd_ini('phys.nc',1,1,klev,0.,0.,presnivs,jour0,mois0,an0,0.,86400./day_step,calendrier)
! Consistent with ... CALL iophys_ini(600.)

!---------------------------------------------------------------------
! Initialisation de la parametrisation
!---------------------------------------------------------------------
call call_ini_replay

!---------------------------------------------------------------------
! Boucle en temps sur l'appel à la parametrisation
!---------------------------------------------------------------------
call call_param_replay(klon,klev)

end

!---------------------------------------------------------------------
!/////////////////////////////////////////////////////////////////////
!/////////////////////////////////////////////////////////////////////
!     routine additionnelles utiles, prises dans 1DUTILS.h
!/////////////////////////////////////////////////////////////////////
!/////////////////////////////////////////////////////////////////////
!---------------------------------------------------------------------

!=======================================================================
      SUBROUTINE gr_dyn_fi(nfield,im,jm,ngrid,pdyn,pfi)
      IMPLICIT NONE
!   passage d'un champ de la grille scalaire a la grille physique
!=======================================================================
 
!-----------------------------------------------------------------------
!   declarations:
!   -------------
 
      INTEGER im,jm,ngrid,nfield
      REAL pdyn(im,jm,nfield)
      REAL pfi(ngrid,nfield)
 
      INTEGER j,ifield,ig
 
!-----------------------------------------------------------------------
!   calcul:
!   -------
 
      IF(ngrid.NE.2+(jm-2)*(im-1).AND.ngrid.NE.1)                          &
     &    STOP 'probleme de dim'
!   traitement des poles
      CALL SCOPY(nfield,pdyn,im*jm,pfi,ngrid)
      CALL SCOPY(nfield,pdyn(1,jm,1),im*jm,pfi(ngrid,1),ngrid)
 
!   traitement des point normaux
      DO ifield=1,nfield
         DO j=2,jm-1
            ig=2+(j-2)*(im-1)
            CALL SCOPY(im-1,pdyn(1,j,ifield),1,pfi(ig,ifield),1)
         ENDDO
      ENDDO
 
      RETURN
      END SUBROUTINE gr_dyn_fi