Ignore:
Timestamp:
Nov 21, 2016, 5:44:17 PM (7 years ago)
Author:
jyg
Message:

New input parameter: nbapp_cv = number of calls to
convection (and wake) routines per day. If =0,
call at every physic time step.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/physiq_mod.F90

    r2705 r2707  
    775775    REAL s_trmb1(klon), s_trmb2(klon)
    776776    REAL s_trmb3(klon)
     777
     778    ! La convection n'est pas calculee tous les pas, il faut donc
     779    !                      sauvegarder les sorties de la convection
     780    !ym      SAVE 
     781    !ym      SAVE 
     782    !ym      SAVE 
     783    !
     784    INTEGER itapcv
     785    SAVE itapcv
     786    !$OMP THREADPRIVATE(itapcv)
     787
    777788    !KE43
    778789    ! Variables locales pour la convection de K. Emanuel (sb):
     
    12731284       itap    = 0
    12741285       itaprad = 0
     1286       itapcv = 0
    12751287
    12761288       ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    12991311               // 'de nbapp_rad'
    13001312          CALL abort_physic(modname,abort_message,1)
     1313       ENDIF
     1314       IF (nbapp_cv .EQ. 0) nbapp_cv=86400./dtime
     1315       print *,'physiq, nbapp_cv ',nbapp_cv
     1316       IF (MOD(INT(86400./dtime),nbapp_cv).EQ.0) THEN
     1317          cvpas = NINT( 86400./dtime/nbapp_cv)
     1318       print *,'physiq, cvpas ',cvpas
     1319       ELSE
     1320          WRITE(lunout,*) 'le nombre de pas de temps physique doit etre un ', &
     1321               'multiple de nbapp_cv'
     1322          WRITE(lunout,*) 'changer nbapp_cv ou alors commenter ce test ', &
     1323               'mais 1+1<>2'
     1324          abort_message='nbre de pas de temps physique n est pas multiple ' &
     1325               // 'de nbapp_cv'
     1326          call abort_physic(modname,abort_message,1)
    13011327       ENDIF
    13021328       ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    23352361         omega(igout, :)
    23362362
     2363    !
     2364    ! Appel de la convection tous les "cvpas"
     2365    !
     2366    IF (MOD(itapcv,cvpas).EQ.0) THEN
     2367
    23372368    IF (iflag_con.EQ.1) THEN
    23382369       abort_message ='reactiver le call conlmd dans physiq.F'
     
    25862617    !    .              d_u_con, d_v_con)
    25872618
     2619    itapcv = 0
     2620    ENDIF !  (MOD(itapcv,cvpas).EQ.0)
     2621    itapcv = itapcv+1
     2622
    25882623    CALL add_phys_tend(d_u_con, d_v_con, d_t_con, d_q_con, dql0, dqi0, paprs, &
    25892624         'convection',abortphy,flag_inhib_tend)
     
    26602695    !
    26612696    IF (iflag_wake>=1) THEN
     2697       !
     2698       !  Call wakes only when convection has been called
     2699       IF (itapcv .EQ. 1) THEN
     2700       !
    26622701       DO k=1,klev
    26632702          DO i=1,klon
     
    27132752            wake_spread, wake_Cstar, d_deltat_wk_gw,  &
    27142753            d_deltat_wk, d_deltaq_wk, d_s_wk, d_dens_wk)
     2754         !
     2755       ENDIF  ! (mod(itapcv,cvpas) .EQ. 1)
    27152756       !
    27162757       !-----------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.