Changeset 5458 for LMDZ6


Ignore:
Timestamp:
Dec 29, 2024, 12:41:42 AM (4 days ago)
Author:
fhourdin
Message:

Concering replay

Location:
LMDZ6/trunk/libf
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d/replay3d.f90

    r5285 r5458  
    1818        grossismx, grossismy, dzoomx, dzoomy,taux,tauy
    1919  USE mod_const_mpi, ONLY: comm_lmdz
     20  USE ioipsl, only: getin
     21
    2022!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    2123  ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     
    2628  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
    2729  USE paramet_mod_h
     30
    2831  IMPLICIT NONE
    2932
     
    7174
    7275  integer :: ntime=10000,it,klon,klev
     76
     77  character*20 :: lmax_replay
    7378
    7479
     
    162167
    163168
    164      CALL iophys_ini(900.)
    165169print*,'Rlatu=',rlatu
    166170klon=2+iim*(jjm-1)
     171
     172print*,'AVANT getin'
    167173klev=llm
     174CALL getin('lmax_replay',lmax_replay)
     175print*,'APRES getin',lmax_replay
     176CALL getin(lmax_replay,klev)
     177print*,'replay3d lmax_replay klev',lmax_replay,klev
     178
     179     CALL iophys_ini(900.,klev)
    168180
    169181!---------------------------------------------------------------------
  • LMDZ6/trunk/libf/phylmd/call_ini_replay.f90

    r5390 r5458  
    22   stop 'In call_ini_replay : You should run replay_equip.sh before runing replay[13]d'
    33   return
    4    end subroutine call_ini_replay
     4   end
  • LMDZ6/trunk/libf/phylmd/call_param_replay.f90

    r5390 r5458  
    33   stop 'In call_param_replay : You should run replay_equip.sh before runing replay[13]d'
    44   return
    5    end subroutine call_param_replay
     5   end
  • LMDZ6/trunk/libf/phylmd/dyn1d/replay1d.f90

    r5390 r5458  
    2424CHARACTER (len=10) :: calend
    2525CHARACTER(len=20) :: calendrier
    26 
     26CHARACTER(len=20) :: lmax_replay
    2727
    2828!---------------------------------------------------------------------
     
    5656call getin('calend',calend)
    5757call getin('day_step',day_step)
     58
     59print*,'AVANT getin'
     60klev=llm
     61CALL getin('lmax_replay',lmax_replay)
     62print*,'APRES getin',lmax_replay
     63CALL getin(lmax_replay,klev)
     64print*,'replay1d lmax_replay klev',lmax_replay,klev
     65
    5866calendrier=calend
    5967if ( calendrier == "earth_360d" ) calendrier="360_day"
     
    6977
    7078klon=1
    71 klev=llm
    7279call iotd_ini('phys.nc',1,1,klev,0.,0.,presnivs,jour0,mois0,an0,0.,86400./day_step,calendrier)
    7380! Consistent with ... CALL iophys_ini(600.)
  • LMDZ6/trunk/libf/phylmd/lmdz_surf_wind.f90

    r5445 r5458  
    22        CONTAINS
    33
    4 SUBROUTINE surf_wind(klon,nsrfwnd,zu10m,zv10m,sigmaw,cstar,ustar,wstar,wind10ms,probu)
     4SUBROUTINE surf_wind(klon,nsurfwind,zu10m,zv10m,sigmaw,cstar,ustar,wstar,wind10ms,probu)
    55
    66USE lmdz_surf_wind_ini, ONLY : iflag_surf_wind
    77
    88IMPLICIT NONE
    9 INTEGER, INTENT(IN)                :: nsrfwnd, klon
     9INTEGER, INTENT(IN)                :: nsurfwind, klon
    1010REAL, DIMENSION(klon), INTENT(IN)  :: zu10m, zv10m
    1111REAL, DIMENSION(klon), INTENT(IN)  :: cstar
    1212REAL, DIMENSION(klon), INTENT(IN)  :: sigmaw
    1313REAL, DIMENSION(klon), INTENT(IN)  :: ustar, wstar
    14 REAL, DIMENSION(klon,nsrfwnd), INTENT(OUT)         :: wind10ms, probu
     14REAL, DIMENSION(klon,nsurfwind), INTENT(OUT)         :: wind10ms, probu
    1515
    1616
    17 REAL, DIMENSION(klon,nsrfwnd)         :: sigma_th, sigma_wk
    18 REAL, DIMENSION(klon,nsrfwnd)         :: xp, yp, zz
    19 REAL, DIMENSION(klon,nsrfwnd)         :: vwx, vwy, vw
    20 REAL, DIMENSION(klon,nsrfwnd)         :: vtx, vty
    21 REAL, DIMENSION(klon,nsrfwnd)         :: windx, windy, wind
     17REAL, DIMENSION(klon,nsurfwind)         :: sigma_th, sigma_wk
     18REAL, DIMENSION(klon,nsurfwind)         :: xp, yp, zz
     19REAL, DIMENSION(klon,nsurfwind)         :: vwx, vwy, vw
     20REAL, DIMENSION(klon,nsurfwind)         :: vtx, vty
     21REAL, DIMENSION(klon,nsurfwind)         :: windx, windy, wind
    2222REAL, DIMENSION(klon)                 :: ubwk, vbwk      ! ubwk et vbwk sont les vitesses moyennes dans les poches
    2323REAL, DIMENSION(klon)                 :: weilambda, U10mMOD
     
    3030REAL    :: ktwk, ktth, kzth
    3131
    32 print*,'LLLLLLLLLLLLLLLLLLLLL nsrfwnd=',nsrfwnd
     32print*,'LLLLLLLLLLLLLLLLLLLLL nsurfwind=',nsurfwind
    3333pi=2.*acos(0.)
    3434ray=7000.
     
    3737kzth=1.
    3838kref=3
    39 nwb=nsrfwnd
     39nwb=nsurfwind
    4040
    4141ubwk(klon) = zu10m(klon)
     
    5353IF (iflag_surf_wind == 0) THEN
    5454    !U10mMOD=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    55     IF (nsrfwnd /= 1 ) THEN
    56             STOP 'Si iflag_surf_wind=0, nsrfwnd=1'
     55    IF (nsurfwind /= 1 ) THEN
     56            STOP 'Si iflag_surf_wind=0, nsurfwind=1'
    5757    ENDIF
    5858    DO i=1,klon
     
    6666
    6767    DO i=1, klon
    68         DO nmc=1, nsrfwnd
     68        DO nmc=1, nsurfwind
    6969             ! Utilisation de la distribution de weibull
    7070             !U10mMOD=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
     
    9090
    9191    DO i=1, klon
    92         DO nmc=1, nsrfwnd
     92        DO nmc=1, nsurfwind
    9393            ! Utilisation de la distribution du vent a l interieur et a l exterieur des poches
    9494            call Random_number(zz)     ! tirage uniforme entre 0 et 1.
     
    122122                  wind(i,nmc) = sqrt(windx(i,nmc)**2 + windy(i,nmc)**2)
    123123                  wind10ms(i,nmc) = wind(i,nmc)
    124                   probu(i,nmc) = wind(i,nmc)/nsrfwnd
     124                  probu(i,nmc) = wind(i,nmc)/nsurfwind
    125125
    126126            ELSE
     
    143143                  wind(i,nmc) = sqrt(windx(i,nmc)**2 + windy(i,nmc)**2)
    144144                  wind10ms(i,nmc) = wind(i,nmc)
    145                   probu(i,nmc) = wind(i,nmc)/nsrfwnd
     145                  probu(i,nmc) = wind(i,nmc)/nsurfwind
    146146                  ! print*, 'wind10ms', wind10ms(i,nmc)         
    147147            ENDIF
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r5445 r5458  
    12681268    ! Subgrid scale wind :
    12691269    ! Need to be allocatable/save because the number of bin is not known (provided by surf_wind_ini)
    1270     integer, save :: nsrfwnd=1
     1270    integer, save :: nsurfwind=1
    12711271    real, dimension(:,:), allocatable, save :: surf_wind_value, surf_wind_proba ! module and probability of sugrdi wind wind sample
    1272     !$OMP THREADPRIVATE(nsrfwnd,surf_wind_value, surf_wind_proba)
     1272    !$OMP THREADPRIVATE(nsurfwind,surf_wind_value, surf_wind_proba)
    12731273   
    12741274
     
    18311831!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    18321832       CALL surf_wind_ini(klon,lunout)
    1833        CALL getin_p('nsrfwnd',nsrfwnd)
    1834        allocate(surf_wind_value(klon,nsrfwnd),surf_wind_proba(klon,nsrfwnd))
     1833       CALL getin_p('nsurfwind',nsurfwind)
     1834       allocate(surf_wind_value(klon,nsurfwind),surf_wind_proba(klon,nsurfwind))
    18351835   
    18361836!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    38193819    !===================================================================
    38203820    ! Computation of subrgid scale near-surface wind distribution
    3821     call surf_wind(klon,nsrfwnd,u10m,v10m,wake_s,wake_Cstar,ustar,wstar,surf_wind_value,surf_wind_proba)
     3821    call surf_wind(klon,nsurfwind,u10m,v10m,wake_s,wake_Cstar,ustar,wstar,surf_wind_value,surf_wind_proba)
    38223822
    38233823    !===================================================================
Note: See TracChangeset for help on using the changeset viewer.