Changeset 3150 for LMDZ6/trunk/libf
- Timestamp:
- Jan 15, 2018, 6:25:50 PM (7 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90
r3106 r3150 16 16 INTEGER, PARAMETER :: nout=3 17 17 INTEGER, PARAMETER :: napisccp=1 18 INTEGER, SAVE :: radpas 19 INTEGER, SAVE :: cvpas 20 INTEGER, SAVE :: wkpas 18 INTEGER, SAVE :: radpas ! radiation is called every "radpas" step 19 INTEGER, SAVE :: cvpas ! convection is called every "cvpas" step 20 INTEGER, SAVE :: cvpas_0 ! reference value for cvpas 21 INTEGER, SAVE :: wkpas ! wake scheme is called every "wkpas" step 21 22 REAL, PARAMETER :: missing_val_nf90=nf90_fill_real 22 23 !$OMP THREADPRIVATE(radpas) 23 24 !$OMP THREADPRIVATE(cvpas) 25 !$OMP THREADPRIVATE(cvpas_0) 24 26 !$OMP THREADPRIVATE(wkpas) 25 27 REAL, SAVE :: dtime, solaire_etat0 -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3149 r3150 634 634 REAL, SAVE :: alp_offset 635 635 !$OMP THREADPRIVATE(alp_offset) 636 REAL, SAVE :: dtcon_multistep_max=1.e6 637 !$OMP THREADPRIVATE(dtcon_multistep_max) 638 REAL, SAVE :: dqcon_multistep_max=1.e6 639 !$OMP THREADPRIVATE(dqcon_multistep_max) 640 636 641 637 642 ! … … 1260 1265 ! 2 => convective adjustment and state variables are changed 1261 1266 CALL getin_p('iflag_adjwk',iflag_adjwk) 1267 CALL getin_p('dtcon_multistep_max',dtcon_multistep_max) 1268 CALL getin_p('dqcon_multistep_max',dqcon_multistep_max) 1262 1269 CALL getin_p('oliqmax',oliqmax) 1263 1270 CALL getin_p('oicemax',oicemax) … … 1397 1404 print *,'physiq, nbapp_cv, nbapp_wk ',nbapp_cv,nbapp_wk 1398 1405 IF (MOD(NINT(86400./dtime),nbapp_cv).EQ.0) THEN 1399 cvpas = NINT( 86400./dtime)/nbapp_cv 1406 cvpas_0 = NINT( 86400./dtime)/nbapp_cv 1407 cvpas = cvpas_0 1400 1408 print *,'physiq, cvpas ',cvpas 1401 1409 ELSE … … 2486 2494 ! Appel de la convection tous les "cvpas" 2487 2495 ! 2488 IF (MOD(itapcv,cvpas).EQ.0) THEN 2496 !!jyg IF (MOD(itapcv,cvpas).EQ.0) THEN 2497 print *,' physiq : itapcv, cvpas, itap-1, cvpas_0 ', & 2498 itapcv, cvpas, itap-1, cvpas_0 2499 IF (MOD(itapcv,cvpas).EQ.0 .OR. MOD(itap-1,cvpas_0).EQ.0) THEN 2489 2500 2490 2501 ! … … 2660 2671 clwcon0=qcondc 2661 2672 pmfu(:,:)=upwd(:,:)+dnwd(:,:) 2662 2673 ! 2674 !jyg< 2675 ! If convective tendencies are too large, then call convection 2676 ! every time step 2677 cvpas = cvpas_0 2678 DO k=1,k_upper_cv 2679 DO i=1,klon 2680 !! IF (abs(d_t_con(i,k)) > 0.24 .OR. & 2681 !! abs(d_q_con(i,k)) > 2.e-2) THEN 2682 IF (abs(d_t_con(i,k)) > dtcon_multistep_max .OR. & 2683 abs(d_q_con(i,k)) > dqcon_multistep_max) THEN 2684 cvpas = 1 2685 !! print *,'physiq1, i,k,d_t_con(i,k),d_q_con(i,k) ', & 2686 !! i,k,d_t_con(i,k),d_q_con(i,k) 2687 ENDIF 2688 ENDDO 2689 ENDDO 2690 call bcast(cvpas) 2691 !>jyg 2692 ! 2663 2693 DO i = 1, klon 2664 2694 IF (iflagctrl(i).le.1) itau_con(i)=itau_con(i)+cvpas … … 2770 2800 proba_notrig(:) = 1. 2771 2801 itapcv = 0 2772 ENDIF ! (MOD(itapcv,cvpas).EQ.0 )2802 ENDIF ! (MOD(itapcv,cvpas).EQ.0 .OR. MOD(itapcv,cvpas_0).EQ.0) 2773 2803 ! 2774 2804 itapcv = itapcv+1
Note: See TracChangeset
for help on using the changeset viewer.