Changeset 3065


Ignore:
Timestamp:
Nov 10, 2017, 2:25:09 PM (7 years ago)
Author:
Laurent Fairhead
Message:

Continuing LMDZ/DYNAMICO physiqs match-up. First step in replacing dtime in the physics

Location:
LMDZ6/branches/DYNAMICO-conv/libf
Files:
4 added
14 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/DYNAMICO-conv/libf/misc/handle_err_m.F90

    • Property svn:keywords set to Id
    r2094 r3065  
    3939          end if
    4040       end if
    41        call abort_gcm("NetCDF95 handle_err", "", 1)
     41       call abort_physic("NetCDF95 handle_err", "", 1)
    4242    end if
    4343
  • LMDZ6/branches/DYNAMICO-conv/libf/misc/wxios.F90

    • Property svn:keywords set to Id
    r3003 r3065  
    203203            CASE DEFAULT
    204204                abort_message = 'wxios_set_cal: Mauvais choix de calendrier'
    205                 CALL abort_gcm('Gcm:Xios',abort_message,1)
     205                CALL abort_physic('Gcm:Xios',abort_message,1)
    206206        END SELECT
    207207       
  • LMDZ6/branches/DYNAMICO-conv/libf/phy_common/mod_phys_lmdz_omp_data.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r3049 r3065  
    6161   ELSE
    6262     abort_message = 'ANORMAL : OMP_MASTER /= 0'
    63      CALL abort_gcm (modname,abort_message,1)
     63     CALL abort_physic (modname,abort_message,1)
    6464   ENDIF
    6565!$OMP END MASTER
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/add_phys_tend_mod.F90

    • Property svn:keywords set to Id
    r2848 r3065  
     1!
     2! $Id$
     3!
    14!
    25MODULE add_phys_tend_mod
     
    8285END SUBROUTINE add_pbl_tend
    8386!
    84 ! $Id: add_phys_tend.F90 2611 2016-08-03 15:41:26Z jyg $
     87! $Id$
    8588!
    8689SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql,zdqi,paprs,text, &
     
    98101
    99102USE dimphy, ONLY: klon, klev
    100 USE phys_state_var_mod, ONLY : dtime
     103USE phys_state_var_mod, ONLY : phys_tstep
    101104USE phys_local_var_mod, ONLY: u_seri, v_seri, ql_seri, qs_seri, q_seri, t_seri
    102105USE phys_state_var_mod, ONLY: ftsol
     
    451454    ! ------------------------------------------------
    452455
    453     d_qw_col(:) = (zqw_col(:,2)-zqw_col(:,1))/dtime
    454     d_ql_col(:) = (zql_col(:,2)-zql_col(:,1))/dtime
    455     d_qs_col(:) = (zqs_col(:,2)-zqs_col(:,1))/dtime
     456    d_qw_col(:) = (zqw_col(:,2)-zqw_col(:,1))/phys_tstep
     457    d_ql_col(:) = (zql_col(:,2)-zql_col(:,1))/phys_tstep
     458    d_qs_col(:) = (zqs_col(:,2)-zqs_col(:,1))/phys_tstep
    456459    d_qt_col(:) = d_qw_col(:) + d_ql_col(:) + d_qs_col(:)
    457460
    458     d_ek_col(:) = (zek_col(:,2)-zek_col(:,1))/dtime
    459 
    460     d_h_dair_col(:) = (zh_dair_col(:,2)-zh_dair_col(:,1))/dtime
    461     d_h_qw_col(:) = (zh_qw_col(:,2)-zh_qw_col(:,1))/dtime
    462     d_h_ql_col(:) = (zh_ql_col(:,2)-zh_ql_col(:,1))/dtime
    463     d_h_qs_col(:) = (zh_qs_col(:,2)-zh_qs_col(:,1))/dtime
    464 
    465     d_h_col = (zh_col(:,2)-zh_col(:,1))/dtime
     461    d_ek_col(:) = (zek_col(:,2)-zek_col(:,1))/phys_tstep
     462
     463    d_h_dair_col(:) = (zh_dair_col(:,2)-zh_dair_col(:,1))/phys_tstep
     464    d_h_qw_col(:) = (zh_qw_col(:,2)-zh_qw_col(:,1))/phys_tstep
     465    d_h_ql_col(:) = (zh_ql_col(:,2)-zh_ql_col(:,1))/phys_tstep
     466    d_h_qs_col(:) = (zh_qs_col(:,2)-zh_qs_col(:,1))/phys_tstep
     467
     468    d_h_col = (zh_col(:,2)-zh_col(:,1))/phys_tstep
    466469
    467470  end if ! end if (fl_ebil .GT. 0)
     
    494497!======================================================================
    495498
    496 USE phys_state_var_mod, ONLY : dtime, ftsol
     499USE phys_state_var_mod, ONLY : phys_tstep, ftsol
    497500USE geometry_mod, ONLY: longitude_deg, latitude_deg
    498501USE print_control_mod, ONLY: prt_level
     
    621624    ! ------------------------------------------------
    622625
    623     d_qw_col(:) = (zqw_col(:,2)-zqw_col(:,1))/dtime
    624     d_ql_col(:) = (zql_col(:,2)-zql_col(:,1))/dtime
    625     d_qs_col(:) = (zqs_col(:,2)-zqs_col(:,1))/dtime
     626    d_qw_col(:) = (zqw_col(:,2)-zqw_col(:,1))/phys_tstep
     627    d_ql_col(:) = (zql_col(:,2)-zql_col(:,1))/phys_tstep
     628    d_qs_col(:) = (zqs_col(:,2)-zqs_col(:,1))/phys_tstep
    626629    d_qt_col(:) = d_qw_col(:) + d_ql_col(:) + d_qs_col(:)
    627630
    628     d_ek_col(:) = (zek_col(:,2)-zek_col(:,1))/dtime
     631    d_ek_col(:) = (zek_col(:,2)-zek_col(:,1))/phys_tstep
    629632
    630633   print *,'zdu ', zdu
     
    632635   print *,'d_ek_col, zek_col(2), zek_col(1) ',d_ek_col(1), zek_col(1,2), zek_col(1,1)
    633636
    634     d_h_dair_col(:) = (zh_dair_col(:,2)-zh_dair_col(:,1))/dtime
    635     d_h_qw_col(:) = (zh_qw_col(:,2)-zh_qw_col(:,1))/dtime
    636     d_h_ql_col(:) = (zh_ql_col(:,2)-zh_ql_col(:,1))/dtime
    637     d_h_qs_col(:) = (zh_qs_col(:,2)-zh_qs_col(:,1))/dtime
    638 
    639     d_h_col = (zh_col(:,2)-zh_col(:,1))/dtime
     637    d_h_dair_col(:) = (zh_dair_col(:,2)-zh_dair_col(:,1))/phys_tstep
     638    d_h_qw_col(:) = (zh_qw_col(:,2)-zh_qw_col(:,1))/phys_tstep
     639    d_h_ql_col(:) = (zh_ql_col(:,2)-zh_ql_col(:,1))/phys_tstep
     640    d_h_qs_col(:) = (zh_qs_col(:,2)-zh_qs_col(:,1))/phys_tstep
     641
     642    d_h_col = (zh_col(:,2)-zh_col(:,1))/phys_tstep
    640643
    641644  end if ! end if (fl_ebil .GT. 0)
     
    716719
    717720USE dimphy, ONLY: klon, klev
    718 USE phys_state_var_mod, ONLY : dtime
     721USE phys_state_var_mod, ONLY : phys_tstep
    719722USE phys_state_var_mod, ONLY : topsw, toplw, solsw, sollw, rain_con, snow_con
    720723USE geometry_mod, ONLY: longitude_deg, latitude_deg
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/calcul_divers.h

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2825 r3065  
     1!
     2! $Id$
     3!
    14!
    25! $Header$
     
    1417
    1518! Calcul fin de journee : total_rain, nday_rain
    16       IF(MOD(itap,NINT(un_jour/dtime)).EQ.0) THEN
     19      IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.0) THEN
    1720!        print*,'calcul nday_rain itap ',itap
    1821         DO i = 1, klon
     
    2326
    2427! Initialisation fin de mois
    25       IF(MOD(itap-itapm1,NINT(mth_len*un_jour/dtime)).EQ.0) THEN
    26         itapm1=itapm1+NINT(mth_len*un_jour/dtime)
     28      IF(MOD(itap-itapm1,NINT(mth_len*un_jour/phys_tstep)).EQ.0) THEN
     29        itapm1=itapm1+NINT(mth_len*un_jour/phys_tstep)
    2730!       print*,'initialisation itapm1 ',itapm1
    2831      ENDIF
     
    3538     t2m_max_mon=0.
    3639  ENDIF
    37   IF(MOD(itap,NINT(un_jour/dtime)).EQ.1) THEN
     40  IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.1) THEN
    3841     zt2m_min_mon=zt2m
    3942     zt2m_max_mon=zt2m
     
    4548     ENDDO
    4649!fin de journee
    47   IF(MOD(itap,NINT(un_jour/dtime)).EQ.0) THEN
     50  IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.0) THEN
    4851   t2m_min_mon=t2m_min_mon+zt2m_min_mon
    4952   t2m_max_mon=t2m_max_mon+zt2m_max_mon
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/clesphys.h

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2989 r3065  
    6565!IM freq_outNMC : frequences de sortie fichiers niveaux de pression (histmthNMC, histdayNMC, histhfNMC)
    6666!IM freq_calNMC : frequences de calcul fis. hist*NMC.nc
    67 !IM pasphys : pas de temps de physique (secondes)
    68        REAL pasphys
    6967       LOGICAL ok_histNMC(3)
    7068       INTEGER levout_histNMC(3)
     
    106104     &     , min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce,f_z0qh_oce   &
    107105     &     , z0m_seaice,z0h_seaice                                      &
    108      &     , pasphys            , freq_outNMC, freq_calNMC              &
     106     &     , freq_outNMC, freq_calNMC                                   &
    109107     &     , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins             &
    110108     &     , freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS              &
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/conf_phys_m.F90

    • Property svn:keywords set to Id
    r3022 r3065  
    11!
    2 ! $Id: conf_phys.F90 1668 2012-10-12 10:47:37Z idelkadi $
     2! $Id$
    33!
    44!
     
    2929    USE mod_grid_phy_lmdz, ONLY: klon_glo
    3030    USE print_control_mod, ONLY: lunout
     31    USE phys_state_var_mod, ONLY: phys_tstep
    3132
    3233    include "conema3.h"
     
    16921693    !Config Desc = freq_calNMC(2) = frequence de calcul fichiers histdayNMC
    16931694    !Config Desc = freq_calNMC(3) = frequence de calcul fichiers histhfNMC
    1694     !Config Def  = pasphys
    1695     !Config Help =
    1696     !
    1697     freq_calNMC_omp(1) = pasphys
    1698     freq_calNMC_omp(2) = pasphys
    1699     freq_calNMC_omp(3) = pasphys
     1695    !Config Def  = phys_tstep
     1696    !Config Help =
     1697    !
     1698    freq_calNMC_omp(1) = phys_tstep
     1699    freq_calNMC_omp(2) = phys_tstep
     1700    freq_calNMC_omp(3) = phys_tstep
    17001701    CALL getin('freq_calNMC',freq_calNMC_omp)
    17011702    !
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/grid_noro_m.F90

    • Property svn:keywords set to Id
    r2665 r3065  
     1!
     2! $Id$
     3!
    14MODULE grid_noro_m
    25!
     
    334337  imar=assert_eq(SIZE(x),SIZE(zphi,1),SIZE(mask,1),TRIM(modname)//" imar")-1
    335338  jmar=assert_eq(SIZE(y),SIZE(zphi,2),SIZE(mask,2),TRIM(modname)//" jmar")
    336 ! IF(imar/=iim)   CALL abort_gcm(TRIM(modname),'imar/=iim'  ,1)
    337 ! IF(jmar/=jjm+1) CALL abort_gcm(TRIM(modname),'jmar/=jjm+1',1)
    338339  iext=imdp/10
    339340  xpi = ACOS(-1.)
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/ini_undefSTD.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2346 r3065  
    5555
    5656    IF (n==1 .AND. itap-itapm1==1 .OR. n>1 .AND. mod(itap,nint( &
    57         freq_outnmc(n)/dtime))==1) THEN
     57        freq_outnmc(n)/phys_tstep))==1) THEN
    5858      ! print*,'ini_undefSTD n itap',n,itap
    5959      DO k = 1, nlevstd
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/moy_undefSTD.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2380 r3065  
    7575
    7676    IF (n==1 .AND. itap==itapm1 .OR. n>1 .AND. mod(itap,nint(freq_outnmc(n)/ &
    77         dtime))==0) THEN
     77        phys_tstep))==0) THEN
    7878
    7979      ! print*,'moy_undefSTD n itap itapm1',n,itap,itapm1
     
    140140        END DO !i
    141141      END DO !k
    142     END IF !MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.0
     142    END IF !MOD(itap,NINT(freq_outNMC(n)/phys_tstep)).EQ.0
    143143
    144144  END DO !n
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/phyetat0.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r3000 r3065  
    99  USE pbl_surface_mod,  ONLY : pbl_surface_init
    1010  USE surface_data,     ONLY : type_ocean, version_ocean
    11   USE phys_state_var_mod, ONLY : ancien_ok, clwcon, detr_therm, dtime, &
     11  USE phys_state_var_mod, ONLY : ancien_ok, clwcon, detr_therm, phys_tstep, &
    1212       qsol, fevap, z0m, z0h, agesno, &
    1313       du_gwd_rando, du_gwd_front, entr_therm, f0, fm_therm, &
     
    466466
    467467  IF ( type_ocean == 'slab' ) THEN
    468       CALL ocean_slab_init(dtime, pctsrf)
     468      CALL ocean_slab_init(phys_tstep, pctsrf)
    469469      IF (nslay.EQ.1) THEN
    470470        found=phyetat0_get(1,tslab,"tslab01","tslab",0.)
     
    515515  ! Initialize module ocean_cpl_mod for the case of coupled ocean
    516516  IF ( type_ocean == 'couple' ) THEN
    517      CALL ocean_cpl_init(dtime, longitude_deg, latitude_deg)
     517     CALL ocean_cpl_init(phys_tstep, longitude_deg, latitude_deg)
    518518  ENDIF
    519519
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/phys_state_var_mod.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2952 r3065  
    2323!$OMP THREADPRIVATE(cvpas)
    2424!$OMP THREADPRIVATE(wkpas)
    25       REAL, SAVE :: dtime, solaire_etat0
    26 !$OMP THREADPRIVATE(dtime, solaire_etat0)
     25      REAL, SAVE :: phys_tstep, solaire_etat0
     26!$OMP THREADPRIVATE(phys_tstep, solaire_etat0)
    2727
    2828      REAL, ALLOCATABLE, SAVE :: pctsrf(:,:)
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/physiq_mod.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r3011 r3065  
    11131113    !albedo SB >>>
    11141114    real,dimension(6),save :: SFRWL
     1115!$OMP THREADPRIVATE(SFRWL)
    11151116    !albedo SB <<<
    11161117
     
    11651166       CALL phys_local_var_init
    11661167       !
    1167        pasphys=pdtphys
    11681168       !     appel a la lecture du run.def physique
    11691169       CALL conf_phys(ok_journe, ok_mensuel, &
     
    13541354       ! pour obtenir le meme resultat.
    13551355!jyg for fh<
    1356 !!       dtime=pdtphys
    1357        dtime=NINT(pdtphys)
    1358        WRITE(lunout,*) 'Pas de temps dtime pdtphys ',dtime,pdtphys
    1359        IF (abs(dtime-pdtphys)>1.e-10) THEN
     1356       phys_tstep=NINT(pdtphys)
     1357       WRITE(lunout,*) 'Pas de temps phys_tstep pdtphys ',phys_tstep,pdtphys
     1358       IF (abs(phys_tstep-pdtphys)>1.e-10) THEN
    13601359          abort_message='pas de temps doit etre entier en seconde pour orchidee et XIOS'
    13611360          CALL abort_physic(modname,abort_message,1)
    13621361       ENDIF
    13631362!>jyg
    1364        IF (MOD(NINT(86400./dtime),nbapp_rad).EQ.0) THEN
    1365           radpas = NINT( 86400./dtime)/nbapp_rad
     1363       IF (MOD(NINT(86400./phys_tstep),nbapp_rad).EQ.0) THEN
     1364          radpas = NINT( 86400./phys_tstep)/nbapp_rad
    13661365       ELSE
    13671366          WRITE(lunout,*) 'le nombre de pas de temps physique doit etre un ', &
     
    13731372          CALL abort_physic(modname,abort_message,1)
    13741373       ENDIF
    1375        IF (nbapp_cv .EQ. 0) nbapp_cv=86400./dtime
    1376        IF (nbapp_wk .EQ. 0) nbapp_wk=86400./dtime
     1374       IF (nbapp_cv .EQ. 0) nbapp_cv=86400./phys_tstep
     1375       IF (nbapp_wk .EQ. 0) nbapp_wk=86400./phys_tstep
    13771376       print *,'physiq, nbapp_cv, nbapp_wk ',nbapp_cv,nbapp_wk
    1378        IF (MOD(NINT(86400./dtime),nbapp_cv).EQ.0) THEN
    1379           cvpas = NINT( 86400./dtime)/nbapp_cv
     1377       IF (MOD(NINT(86400./phys_tstep),nbapp_cv).EQ.0) THEN
     1378          cvpas = NINT( 86400./phys_tstep)/nbapp_cv
    13801379       print *,'physiq, cvpas ',cvpas
    13811380       ELSE
     
    13881387          call abort_physic(modname,abort_message,1)
    13891388       ENDIF
    1390        IF (MOD(NINT(86400./dtime),nbapp_wk).EQ.0) THEN
    1391           wkpas = NINT( 86400./dtime)/nbapp_wk
     1389       IF (MOD(NINT(86400./phys_tstep),nbapp_wk).EQ.0) THEN
     1390          wkpas = NINT( 86400./phys_tstep)/nbapp_wk
    13921391       print *,'physiq, wkpas ',wkpas
    13931392       ELSE
     
    14311430            ok_instan, ok_region )
    14321431       !
    1433        IF (ABS(dtime-pdtphys).GT.0.001) THEN
    1434           WRITE(lunout,*) 'Pas physique n est pas correct',dtime, &
    1435                pdtphys
    1436           abort_message='Pas physique n est pas correct '
    1437           !           call abort_physic(modname,abort_message,1)
    1438           dtime=pdtphys
    1439        ENDIF
     1432!       IF (ABS(phys_tstep-pdtphys).GT.0.001) THEN
     1433!          WRITE(lunout,*) 'Pas physique n est pas correct',phys_tstep, &
     1434!               pdtphys
     1435!          abort_message='Pas physique n est pas correct '
     1436!          !           call abort_physic(modname,abort_message,1)
     1437!          phys_tstep=pdtphys
     1438!       ENDIF
    14401439       IF (nlon .NE. klon) THEN
    14411440          WRITE(lunout,*)'nlon et klon ne sont pas coherents', nlon,  &
     
    14511450       ENDIF
    14521451       !
    1453        IF (dtime*REAL(radpas).GT.21600..AND.iflag_cycle_diurne.GE.1) THEN
     1452       IF (phys_tstep*REAL(radpas).GT.21600..AND.iflag_cycle_diurne.GE.1) THEN
    14541453          WRITE(lunout,*)'Nbre d appels au rayonnement insuffisant'
    14551454          WRITE(lunout,*)"Au minimum 4 appels par jour si cycle diurne"
     
    15971596       !
    15981597       !
    1599        lmt_pas = NINT(86400./dtime * 1.0)   ! tous les jours
     1598       lmt_pas = NINT(86400./phys_tstep * 1.0)   ! tous les jours
    16001599       WRITE(lunout,*)'La frequence de lecture surface est de ',  &
    16011600            lmt_pas
     
    16491648       CALL phys_output_open(longitude_deg,latitude_deg,nCFMIP,tabijGCM, &
    16501649            iGCM,jGCM,lonGCM,latGCM, &
    1651             jjmp1,nlevSTD,clevSTD,rlevSTD, dtime,ok_veget, &
     1650            jjmp1,nlevSTD,clevSTD,rlevSTD, phys_tstep,ok_veget, &
    16521651            type_ocean,iflag_pbl,iflag_pbl_split,ok_mensuel,ok_journe, &
    16531652            ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, &
     
    16691668
    16701669#ifndef CPP_XIOS
    1671        CALL ini_paramLMDZ_phy(dtime,nid_ctesGCM)
     1670       CALL ini_paramLMDZ_phy(phys_tstep,nid_ctesGCM)
    16721671#endif
    16731672
     
    18101809    ! on the surface fraction.
    18111810    !
    1812     CALL change_srf_frac(itap, dtime, days_elapsed+1,  &
     1811    CALL change_srf_frac(itap, phys_tstep, days_elapsed+1,  &
    18131812         pctsrf, fevap, z0m, z0h, agesno,              &
    18141813         falb_dir, falb_dif, ftsol, ustar, u10m, v10m, pbl_tke)
     
    19351934    IF (ancien_ok) THEN
    19361935    !
    1937        d_u_dyn(:,:)  = (u_seri(:,:)-u_ancien(:,:))/dtime
    1938        d_v_dyn(:,:)  = (v_seri(:,:)-v_ancien(:,:))/dtime
    1939        d_t_dyn(:,:)  = (t_seri(:,:)-t_ancien(:,:))/dtime
    1940        d_q_dyn(:,:)  = (q_seri(:,:)-q_ancien(:,:))/dtime
    1941        d_ql_dyn(:,:) = (ql_seri(:,:)-ql_ancien(:,:))/dtime
    1942        d_qs_dyn(:,:) = (qs_seri(:,:)-qs_ancien(:,:))/dtime
     1936       d_u_dyn(:,:)  = (u_seri(:,:)-u_ancien(:,:))/phys_tstep
     1937       d_v_dyn(:,:)  = (v_seri(:,:)-v_ancien(:,:))/phys_tstep
     1938       d_t_dyn(:,:)  = (t_seri(:,:)-t_ancien(:,:))/phys_tstep
     1939       d_q_dyn(:,:)  = (q_seri(:,:)-q_ancien(:,:))/phys_tstep
     1940       d_ql_dyn(:,:) = (ql_seri(:,:)-ql_ancien(:,:))/phys_tstep
     1941       d_qs_dyn(:,:) = (qs_seri(:,:)-qs_ancien(:,:))/phys_tstep
    19431942       CALL water_int(klon,klev,q_seri,zmasse,zx_tmp_fi2d)
    1944        d_q_dyn2d(:)=(zx_tmp_fi2d(:)-prw_ancien(:))/dtime
     1943       d_q_dyn2d(:)=(zx_tmp_fi2d(:)-prw_ancien(:))/phys_tstep
    19451944       CALL water_int(klon,klev,ql_seri,zmasse,zx_tmp_fi2d)
    1946        d_ql_dyn2d(:)=(zx_tmp_fi2d(:)-prlw_ancien(:))/dtime
     1945       d_ql_dyn2d(:)=(zx_tmp_fi2d(:)-prlw_ancien(:))/phys_tstep
    19471946       CALL water_int(klon,klev,qs_seri,zmasse,zx_tmp_fi2d)
    1948        d_qs_dyn2d(:)=(zx_tmp_fi2d(:)-prsw_ancien(:))/dtime
     1947       d_qs_dyn2d(:)=(zx_tmp_fi2d(:)-prsw_ancien(:))/phys_tstep
    19491948       ! !! RomP >>>   td dyn traceur
    19501949       IF (nqtot.GT.nqo) THEN     ! jyg
    19511950          DO iq = nqo+1, nqtot      ! jyg
    1952               d_tr_dyn(:,:,iq-nqo)=(tr_seri(:,:,iq-nqo)-tr_ancien(:,:,iq-nqo))/dtime ! jyg
     1951              d_tr_dyn(:,:,iq-nqo)=(tr_seri(:,:,iq-nqo)-tr_ancien(:,:,iq-nqo))/phys_tstep ! jyg
    19531952          ENDDO
    19541953       ENDIF
     
    21262125          !  bit comparable a l ancienne formulation cycle_diurne=true
    21272126          !  on integre entre gmtime et gmtime+radpas
    2128           zdtime=dtime*REAL(radpas) ! pas de temps du rayonnement (s)
     2127          zdtime=phys_tstep*REAL(radpas) ! pas de temps du rayonnement (s)
    21292128          CALL zenang(zlongi,jH_cur,0.0,zdtime, &
    21302129               latitude_deg,longitude_deg,rmu0,fract)
     
    21432142          !  premier pas de temps de la physique pendant lequel
    21442143          !  itaprad=0
    2145           zdtime1=dtime*REAL(-MOD(itaprad,radpas)-1)     
    2146           zdtime2=dtime*REAL(radpas-MOD(itaprad,radpas)-1)
     2144          zdtime1=phys_tstep*REAL(-MOD(itaprad,radpas)-1)     
     2145          zdtime2=phys_tstep*REAL(radpas-MOD(itaprad,radpas)-1)
    21472146          CALL zenang(zlongi,jH_cur,zdtime1,zdtime2, &
    21482147               latitude_deg,longitude_deg,rmu0,fract)
     
    21502149          ! Calcul des poids
    21512150          !
    2152           zdtime1=-dtime !--on corrige le rayonnement pour representer le
     2151          zdtime1=-phys_tstep !--on corrige le rayonnement pour representer le
    21532152          zdtime2=0.0    !--pas de temps de la physique qui se termine
    21542153          CALL zenang(zlongi,jH_cur,zdtime1,zdtime2, &
     
    22252224
    22262225       CALL pbl_surface(  &
    2227             dtime,     date0,     itap,    days_elapsed+1, &
     2226            phys_tstep,     date0,     itap,    days_elapsed+1, &
    22282227            debut,     lafin, &
    22292228            longitude_deg, latitude_deg, rugoro,  zrmu0,      &
     
    23922391       DO i = 1, klon
    23932392          conv_q(i,k) = d_q_dyn(i,k)  &
    2394                + d_q_vdf(i,k)/dtime
     2393               + d_q_vdf(i,k)/phys_tstep
    23952394          conv_t(i,k) = d_t_dyn(i,k)  &
    2396                + d_t_vdf(i,k)/dtime
     2395               + d_t_vdf(i,k)/phys_tstep
    23972396       ENDDO
    23982397    ENDDO
     
    24322431       abort_message ='reactiver le call conlmd dans physiq.F'
    24332432       CALL abort_physic (modname,abort_message,1)
    2434        !     CALL conlmd (dtime, paprs, pplay, t_seri, q_seri, conv_q,
     2433       !     CALL conlmd (phys_tstep, paprs, pplay, t_seri, q_seri, conv_q,
    24352434       !    .             d_t_con, d_q_con,
    24362435       !    .             rain_con, snow_con, ibas_con, itop_con)
    24372436    ELSE IF (iflag_con.EQ.2) THEN
    2438        CALL conflx(dtime, paprs, pplay, t_seri, q_seri, &
     2437       CALL conflx(phys_tstep, paprs, pplay, t_seri, q_seri, &
    24392438            conv_t, conv_q, -evap, omega, &
    24402439            d_t_con, d_q_con, rain_con, snow_con, &
     
    25122511
    25132512!jyg<
    2514        CALL alpale( debut, itap, dtime, paprs, omega, t_seri,   &
     2513       CALL alpale( debut, itap, phys_tstep, paprs, omega, t_seri,   &
    25152514                    alp_offset, it_wape_prescr,  wape_prescr, fip_prescr, &
    25162515                    ale_bl_prescr, alp_bl_prescr, &
     
    25492548          !c          CALL concvl (iflag_con,iflag_clos,
    25502549          CALL concvl (iflag_clos, &
    2551                dtime, paprs, pplay, k_upper_cv, t_x,q_x, &
     2550               phys_tstep, paprs, pplay, k_upper_cv, t_x,q_x, &
    25522551               t_w,q_w,wake_s, &
    25532552               u_seri,v_seri,tr_seri,nbtr_tmp, &
     
    25882587              DO k=1,klev
    25892588                 DO i=1,klon
    2590                     ftd(i,k) = ftd(i,k) + wake_s(i)*d_t_adjwk(i,k)/dtime
    2591                     fqd(i,k) = fqd(i,k) + wake_s(i)*d_q_adjwk(i,k)/dtime
     2589                    ftd(i,k) = ftd(i,k) + wake_s(i)*d_t_adjwk(i,k)/phys_tstep
     2590                    fqd(i,k) = fqd(i,k) + wake_s(i)*d_q_adjwk(i,k)/phys_tstep
    25922591                    d_t_con(i,k) = d_t_con(i,k) + wake_s(i)*d_t_adjwk(i,k)
    25932592                    d_q_con(i,k) = d_q_con(i,k) + wake_s(i)*d_q_adjwk(i,k)
     
    26012600
    26022601          ! MAF conema3 ne contient pas les traceurs
    2603           CALL conema3 (dtime, &
     2602          CALL conema3 (phys_tstep, &
    26042603               paprs,pplay,t_seri,q_seri, &
    26052604               u_seri,v_seri,tr_seri,ntra, &
     
    27252724               snow_con(i))*cell_area(i)/REAL(klon)
    27262725       ENDDO
    2727        zx_t = zx_t/za*dtime
     2726       zx_t = zx_t/za*phys_tstep
    27282727       WRITE(lunout,*)"Precip=", zx_t
    27292728    ENDIF
     
    27392738       ENDDO
    27402739       DO i = 1, klon
    2741           z_factor(i) = (z_avant(i)-(rain_con(i)+snow_con(i))*dtime) &
     2740          z_factor(i) = (z_avant(i)-(rain_con(i)+snow_con(i))*phys_tstep) &
    27422741               /z_apres(i)
    27432742       ENDDO
     
    27762775                M_dwn(i,k)   = dnwd0(i,k)
    27772776                M_up(i,k)    = upwd(i,k)
    2778                 dt_a(i,k)    = d_t_con(i,k)/dtime - ftd(i,k)
    2779                 dq_a(i,k)    = d_q_con(i,k)/dtime - fqd(i,k)
     2777                dt_a(i,k)    = d_t_con(i,k)/phys_tstep - ftd(i,k)
     2778                dq_a(i,k)    = d_q_con(i,k)/phys_tstep - fqd(i,k)
    27802779             ENDDO
    27812780          ENDDO
     
    27852784             DO k = 1,klev
    27862785                dt_dwn(:,k)= dt_dwn(:,k)+ &
    2787                      ok_wk_lsp(:)*(d_t_eva(:,k)+d_t_lsc(:,k))/dtime
     2786                     ok_wk_lsp(:)*(d_t_eva(:,k)+d_t_lsc(:,k))/phys_tstep
    27882787                dq_dwn(:,k)= dq_dwn(:,k)+ &
    2789                      ok_wk_lsp(:)*(d_q_eva(:,k)+d_q_lsc(:,k))/dtime
     2788                     ok_wk_lsp(:)*(d_q_eva(:,k)+d_q_lsc(:,k))/phys_tstep
    27902789             ENDDO
    27912790          ELSEIF (iflag_wake==3) THEN
     
    27982797                      ! l'eau se reevapore).
    27992798                      dt_dwn(i,k)= dt_dwn(i,k)+ &
    2800                            ok_wk_lsp(i)*d_t_lsc(i,k)/dtime
     2799                           ok_wk_lsp(i)*d_t_lsc(i,k)/phys_tstep
    28012800                      dq_dwn(i,k)= dq_dwn(i,k)+ &
    2802                            ok_wk_lsp(i)*d_q_lsc(i,k)/dtime
     2801                           ok_wk_lsp(i)*d_q_lsc(i,k)/phys_tstep
    28032802                   ENDIF
    28042803                ENDDO
     
    28082807          !
    28092808          !calcul caracteristiques de la poche froide
    2810           CALL calWAKE (iflag_wake_tend, paprs, pplay, dtime, &
     2809          CALL calWAKE (iflag_wake_tend, paprs, pplay, phys_tstep, &
    28112810               t_seri, q_seri, omega,  &
    28122811               dt_dwn, dq_dwn, M_dwn, M_up,  &
     
    28492848       IF (iflag_alp_wk_cond .GT. 0.) THEN
    28502849
    2851          CALL alpale_wk(dtime, cell_area, wake_k, wake_s, wake_dens, wake_fip_0, &
     2850         CALL alpale_wk(phys_tstep, cell_area, wake_k, wake_s, wake_dens, wake_fip_0, &
    28522851                        wake_fip)
    28532852       ELSE
     
    29842983          !
    29852984!
    2986           CALL alpale_th( dtime, lmax_th, t_seri, cell_area,  &
     2985          CALL alpale_th( phys_tstep, lmax_th, t_seri, cell_area,  &
    29872986                          cin, s2, n2,  &
    29882987                          ale_bl_trig, ale_bl_stat, ale_bl,  &
     
    30743073    ENDIF
    30753074    !
    3076     CALL fisrtilp(dtime,paprs,pplay, &
     3075    CALL fisrtilp(phys_tstep,paprs,pplay, &
    30773076         t_seri, q_seri,ptconv,ratqs, &
    30783077         d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, cldliq, &
     
    31343133               + snow_lsc(i))*cell_area(i)/REAL(klon)
    31353134       ENDDO
    3136        zx_t = zx_t/za*dtime
     3135       zx_t = zx_t/za*phys_tstep
    31373136       WRITE(lunout,*)"Precip=", zx_t
    31383137    ENDIF
     
    33543353       calday = REAL(days_elapsed + 1) + jH_cur
    33553354
    3356        CALL chemtime(itap+itau_phy-1, date0, dtime, itap)
     3355       CALL chemtime(itap+itau_phy-1, date0, phys_tstep, itap)
    33573356       IF (config_inca == 'aero' .OR. config_inca == 'aeNP') THEN
    33583357          CALL AEROSOL_METEO_CALC( &
     
    38773876
    38783877    DO k=1, klev
    3879        d_t_swr(:,k)=swradcorr(:)*heat(:,k)*dtime/RDAY
    3880        d_t_sw0(:,k)=swradcorr(:)*heat0(:,k)*dtime/RDAY
    3881        d_t_lwr(:,k)=-cool(:,k)*dtime/RDAY
    3882        d_t_lw0(:,k)=-cool0(:,k)*dtime/RDAY
     3878       d_t_swr(:,k)=swradcorr(:)*heat(:,k)*phys_tstep/RDAY
     3879       d_t_sw0(:,k)=swradcorr(:)*heat0(:,k)*phys_tstep/RDAY
     3880       d_t_lwr(:,k)=-cool(:,k)*phys_tstep/RDAY
     3881       d_t_lw0(:,k)=-cool0(:,k)*phys_tstep/RDAY
    38833882    ENDDO
    38843883
     
    39363935       IF (ok_strato) THEN
    39373936
    3938           CALL drag_noro_strato(0,klon,klev,dtime,paprs,pplay, &
     3937          CALL drag_noro_strato(0,klon,klev,phys_tstep,paprs,pplay, &
    39393938               zmea,zstd, zsig, zgam, zthe,zpic,zval, &
    39403939               igwd,idx,itest, &
     
    39443943
    39453944       ELSE
    3946           CALL drag_noro(klon,klev,dtime,paprs,pplay, &
     3945          CALL drag_noro(klon,klev,phys_tstep,paprs,pplay, &
    39473946               zmea,zstd, zsig, zgam, zthe,zpic,zval, &
    39483947               igwd,idx,itest, &
     
    39853984       IF (ok_strato) THEN
    39863985
    3987           CALL lift_noro_strato(klon,klev,dtime,paprs,pplay, &
     3986          CALL lift_noro_strato(klon,klev,phys_tstep,paprs,pplay, &
    39883987               latitude_deg,zmea,zstd,zpic,zgam,zthe,zpic,zval, &
    39893988               igwd,idx,itest, &
     
    39933992
    39943993       ELSE
    3995           CALL lift_noro(klon,klev,dtime,paprs,pplay, &
     3994          CALL lift_noro(klon,klev,phys_tstep,paprs,pplay, &
    39963995               latitude_deg,zmea,zstd,zpic, &
    39973996               itest, &
     
    40134012       du_gwd_hines=0.
    40144013       dv_gwd_hines=0.
    4015        CALL hines_gwd(klon, klev, dtime, paprs, pplay, latitude_deg, t_seri, &
     4014       CALL hines_gwd(klon, klev, phys_tstep, paprs, pplay, latitude_deg, t_seri, &
    40164015            u_seri, v_seri, zustr_gwd_hines, zvstr_gwd_hines, d_t_hin, &
    40174016            du_gwd_hines, dv_gwd_hines)
     
    40194018       zvstr_gwd_hines=0.
    40204019       DO k = 1, klev
    4021           zustr_gwd_hines(:)=zustr_gwd_hines(:)+ du_gwd_hines(:, k)/dtime &
     4020          zustr_gwd_hines(:)=zustr_gwd_hines(:)+ du_gwd_hines(:, k)/phys_tstep &
    40224021               * (paprs(:, k)-paprs(:, k+1))/rg
    4023           zvstr_gwd_hines(:)=zvstr_gwd_hines(:)+ dv_gwd_hines(:, k)/dtime &
     4022          zvstr_gwd_hines(:)=zvstr_gwd_hines(:)+ dv_gwd_hines(:, k)/phys_tstep &
    40244023               * (paprs(:, k)-paprs(:, k+1))/rg
    40254024       ENDDO
     
    40324031
    40334032    IF (.not. ok_hines .and. ok_gwd_rando) then
    4034        CALL acama_GWD_rando(DTIME, pplay, latitude_deg, t_seri, u_seri, &
     4033       CALL acama_GWD_rando(PHYS_TSTEP, pplay, latitude_deg, t_seri, u_seri, &
    40354034            v_seri, rot, zustr_gwd_front, zvstr_gwd_front, du_gwd_front, &
    40364035            dv_gwd_front, east_gwstress, west_gwstress)
     
    40384037       zvstr_gwd_front=0.
    40394038       DO k = 1, klev
    4040           zustr_gwd_front(:)=zustr_gwd_front(:)+ du_gwd_front(:, k)/dtime &
     4039          zustr_gwd_front(:)=zustr_gwd_front(:)+ du_gwd_front(:, k)/phys_tstep &
    40414040               * (paprs(:, k)-paprs(:, k+1))/rg
    4042           zvstr_gwd_front(:)=zvstr_gwd_front(:)+ dv_gwd_front(:, k)/dtime &
     4041          zvstr_gwd_front(:)=zvstr_gwd_front(:)+ dv_gwd_front(:, k)/phys_tstep &
    40434042               * (paprs(:, k)-paprs(:, k+1))/rg
    40444043       ENDDO
     
    40504049
    40514050    IF (ok_gwd_rando) THEN
    4052        CALL FLOTT_GWD_rando(DTIME, pplay, t_seri, u_seri, v_seri, &
     4051       CALL FLOTT_GWD_rando(PHYS_TSTEP, pplay, t_seri, u_seri, v_seri, &
    40534052            rain_fall + snow_fall, zustr_gwd_rando, zvstr_gwd_rando, &
    40544053            du_gwd_rando, dv_gwd_rando, east_gwstress, west_gwstress)
     
    40594058       zvstr_gwd_rando=0.
    40604059       DO k = 1, klev
    4061           zustr_gwd_rando(:)=zustr_gwd_rando(:)+ du_gwd_rando(:, k)/dtime &
     4060          zustr_gwd_rando(:)=zustr_gwd_rando(:)+ du_gwd_rando(:, k)/phys_tstep &
    40624061               * (paprs(:, k)-paprs(:, k+1))/rg
    4063           zvstr_gwd_rando(:)=zvstr_gwd_rando(:)+ dv_gwd_rando(:, k)/dtime &
     4062          zvstr_gwd_rando(:)=zvstr_gwd_rando(:)+ dv_gwd_rando(:, k)/phys_tstep &
    40644063               * (paprs(:, k)-paprs(:, k+1))/rg
    40654064       ENDDO
     
    40814080    DO k = 1, klev
    40824081       DO i = 1, klon
    4083           zustrph(i)=zustrph(i)+(u_seri(i,k)-u(i,k))/dtime* &
     4082          zustrph(i)=zustrph(i)+(u_seri(i,k)-u(i,k))/phys_tstep* &
    40844083               (paprs(i,k)-paprs(i,k+1))/rg
    4085           zvstrph(i)=zvstrph(i)+(v_seri(i,k)-v(i,k))/dtime* &
     4084          zvstrph(i)=zvstrph(i)+(v_seri(i,k)-v(i,k))/phys_tstep* &
    40864085               (paprs(i,k)-paprs(i,k+1))/rg
    40874086       ENDDO
     
    41044103       CALL METHOX(1,klon,klon,klev,q_seri,d_q_ch4,pplay)
    41054104       ! ajout de la tendance d'humidite due au methane
    4106        d_q_ch4_dtime(:,:) = d_q_ch4(:,:)*dtime
     4105       d_q_ch4_dtime(:,:) = d_q_ch4(:,:)*phys_tstep
    41074106       CALL add_phys_tend(du0, dv0, dt0, d_q_ch4_dtime, dql0, dqi0, paprs, &
    41084107            'q_ch4', abortphy,flag_inhib_tend,itap,0)
    4109        d_q_ch4(:,:) = d_q_ch4_dtime(:,:)/dtime
     4108       d_q_ch4(:,:) = d_q_ch4_dtime(:,:)/phys_tstep
    41104109    ENDIF
    41114110    !
     
    41954194
    41964195
    4197        CALL drag_noro_strato(addtkeoro,klon,klev,dtime,paprs,pplay, &
     4196       CALL drag_noro_strato(addtkeoro,klon,klev,phys_tstep,paprs,pplay, &
    41984197               zmea,zstd, zsig, zgam, zthe,zpic,zval, &
    41994198               igwd,idx,itest, &
     
    42364235       ! adeclarer
    42374236#ifdef CPP_COSP
    4238        IF (itap.eq.1.or.MOD(itap,NINT(freq_cosp/dtime)).EQ.0) THEN
     4237       IF (itap.eq.1.or.MOD(itap,NINT(freq_cosp/phys_tstep)).EQ.0) THEN
    42394238
    42404239          IF (prt_level .GE.10) THEN
     
    42444243          !       print*,'Dans physiq.F avant appel cosp ref_liq,ref_ice=',
    42454244          !     s        ref_liq,ref_ice
    4246           CALL phys_cosp(itap,dtime,freq_cosp, &
     4245          CALL phys_cosp(itap,phys_tstep,freq_cosp, &
    42474246               ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP, &
    42484247               ecrit_mth,ecrit_day,ecrit_hf, ok_all_xml, missing_val, &
     
    42734272  IF (ok_airs) then
    42744273
    4275   IF (itap.eq.1.or.MOD(itap,NINT(freq_airs/dtime)).EQ.0) THEN
     4274  IF (itap.eq.1.or.MOD(itap,NINT(freq_airs/phys_tstep)).EQ.0) THEN
    42764275     write(*,*) 'je vais appeler simu_airs, ok_airs, freq_airs=', ok_airs, freq_airs
    42774276     CALL simu_airs(itap,rneb, t_seri, cldemi, fiwc, ref_ice, pphi, pplay, paprs,&
     
    43284327    CALL phytrac ( &
    43294328         itap,     days_elapsed+1,    jH_cur,   debut, &
    4330          lafin,    dtime,     u, v,     t, &
     4329         lafin,    phys_tstep,     u, v,     t, &
    43314330         paprs,    pplay,     pmfu,     pmfd, &
    43324331         pen_u,    pde_u,     pen_d,    pde_d, &
     
    43634362            cdragh,coefh(1:klon,1:klev,is_ave),u1,v1,ftsol,pctsrf, &
    43644363            frac_impa, frac_nucl, &
    4365             pphis,cell_area,dtime,itap, &
     4364            pphis,cell_area,phys_tstep,itap, &
    43664365            qx(:,:,ivap),da,phi,mp,upwd,dnwd)
    43674366
     
    44344433
    44354434       CALL chemhook_end ( &
    4436             dtime, &
     4435            phys_tstep, &
    44374436            pplay, &
    44384437            t_seri, &
     
    44694468    DO k = 1, klev
    44704469       DO i = 1, klon
    4471           d_u(i,k) = ( u_seri(i,k) - u(i,k) ) / dtime
    4472           d_v(i,k) = ( v_seri(i,k) - v(i,k) ) / dtime
    4473           d_t(i,k) = ( t_seri(i,k)-t(i,k) ) / dtime
    4474           d_qx(i,k,ivap) = ( q_seri(i,k) - qx(i,k,ivap) ) / dtime
    4475           d_qx(i,k,iliq) = ( ql_seri(i,k) - qx(i,k,iliq) ) / dtime
     4470          d_u(i,k) = ( u_seri(i,k) - u(i,k) ) / phys_tstep
     4471          d_v(i,k) = ( v_seri(i,k) - v(i,k) ) / phys_tstep
     4472          d_t(i,k) = ( t_seri(i,k)-t(i,k) ) / phys_tstep
     4473          d_qx(i,k,ivap) = ( q_seri(i,k) - qx(i,k,ivap) ) / phys_tstep
     4474          d_qx(i,k,iliq) = ( ql_seri(i,k) - qx(i,k,iliq) ) / phys_tstep
    44764475          !CR: on ajoute le contenu en glace
    44774476          IF (nqo.eq.3) THEN
    4478              d_qx(i,k,isol) = ( qs_seri(i,k) - qx(i,k,isol) ) / dtime
     4477             d_qx(i,k,isol) = ( qs_seri(i,k) - qx(i,k,isol) ) / phys_tstep
    44794478          ENDIF
    44804479       ENDDO
     
    44884487          DO  k = 1, klev
    44894488             DO  i = 1, klon
    4490                 ! d_qx(i,k,iq) = ( tr_seri(i,k,iq-2) - qx(i,k,iq) ) / dtime
    4491                 d_qx(i,k,iq) = ( tr_seri(i,k,iq-nqo) - qx(i,k,iq) ) / dtime
     4489                ! d_qx(i,k,iq) = ( tr_seri(i,k,iq-2) - qx(i,k,iq) ) / phys_tstep
     4490                d_qx(i,k,iq) = ( tr_seri(i,k,iq-nqo) - qx(i,k,iq) ) / phys_tstep
    44924491             ENDDO
    44934492          ENDDO
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/undefSTD.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2346 r3065  
    4343  ! PARAMETER(klevSTD=17)
    4444  INTEGER itap
    45   ! REAL dtime
    4645
    4746  ! variables locales
     
    6766
    6867
    69     ! calcul variables tous les freq_calNMC(n)/dtime pas de temps
     68    ! calcul variables tous les freq_calNMC(n)/phys_tstep pas de temps
    7069    ! de la physique
    7170
    72     IF (mod(itap,nint(freq_calnmc(n)/dtime))==0) THEN
     71    IF (mod(itap,nint(freq_calnmc(n)/phys_tstep))==0) THEN
    7372      DO k = 1, nlevstd
    7473        DO i = 1, klon
     
    103102      END DO !k
    104103
    105     END IF !MOD(itap,NINT(freq_calNMC(n)/dtime)).EQ.0
     104    END IF !MOD(itap,NINT(freq_calNMC(n)/phys_tstep)).EQ.0
    106105
    107106  END DO !n
Note: See TracChangeset for help on using the changeset viewer.