Changeset 6058 for LMDZ6/trunk/libf/phylmd/cv_driver_mod.F90
- Timestamp:
- Jan 29, 2026, 12:52:39 AM (6 weeks ago)
- File:
-
- 1 moved
-
LMDZ6/trunk/libf/phylmd/cv_driver_mod.F90 (moved) (moved from LMDZ6/trunk/libf/phylmd/cv_driver.F90) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/cv_driver_mod.F90
r6057 r6058 1 2 1 ! $Header$ 2 MODULE cv_driver_mod 3 4 CONTAINS 3 5 4 6 SUBROUTINE cv_driver(len, nd, ndp1, ntra, iflag_con, t1, q1, qs1, u1, v1, & … … 12 14 13 15 USE dimphy 14 USE cv30_routines_mod, ONLY: cv30_p aram, cv30_prelim, cv30_feed, cv30_undilute1, cv30_trigger, cv30_compress, cv30_undilute2, &16 USE cv30_routines_mod, ONLY: cv30_prelim, cv30_feed, cv30_undilute1, cv30_trigger, cv30_compress, cv30_undilute2, & 15 17 cv30_closure, cv30_epmax_fn_cape, cv30_mixing, cv30_unsat, cv30_yield, cv30_tracer, cv30_uncompress 16 USE cv_routines_mod 18 USE cv_routines_mod, ONLY : cv_prelim, cv_feed, cv_undilute1, cv_trigger, cv_compress, cv_undilute2, cv_closure, cv_mixing, cv_unsat, cv_yield, cv_uncompress 19 20 USE lmdz_cv_ini, ONLY : cv_param, cv_flag, cv_thermo ! A retirer apres replayisation 21 17 22 IMPLICIT NONE 18 23 … … 352 357 ! ------------------------------------------------------------------- 353 358 ! --- SET CONSTANTS AND PARAMETERS 354 ! -------------------------------------------------------------------355 ! print *, '-> cv_driver' !jyg356 ! -- set simulation flags:357 ! (common cvflag)358 359 CALL cv_flag(0)360 361 ! -- set thermodynamical constants:362 ! (common cvthermo)363 364 CALL cv_thermo(iflag_con)365 366 ! -- set convect parameters367 368 ! includes microphysical parameters and parameters that369 ! control the rate of approach to quasi-equilibrium)370 ! (common cvparam)371 372 373 IF (iflag_con==30) THEN374 CALL cv30_param(nd, delt)375 END IF376 377 IF (iflag_con==4) THEN378 CALL cv_param(nd)379 END IF359 ! Replay deplace vers lmdz_cv_ini ! ------------------------------------------------------------------- 360 ! Replay deplace vers lmdz_cv_ini ! print *, '-> cv_driver' !jyg 361 ! Replay deplace vers lmdz_cv_ini ! -- set simulation flags: 362 ! Replay deplace vers lmdz_cv_ini ! (common cvflag) 363 ! Replay deplace vers lmdz_cv_ini 364 ! Replay deplace vers lmdz_cv_ini CALL cv_flag(0) 365 ! Replay deplace vers lmdz_cv_ini 366 ! Replay deplace vers lmdz_cv_ini ! -- set thermodynamical constants: 367 ! Replay deplace vers lmdz_cv_ini ! (common cvthermo) 368 ! Replay deplace vers lmdz_cv_ini 369 ! Replay deplace vers lmdz_cv_ini CALL cv_thermo(iflag_con) 370 ! Replay deplace vers lmdz_cv_ini 371 ! Replay deplace vers lmdz_cv_ini ! -- set convect parameters 372 ! Replay deplace vers lmdz_cv_ini 373 ! Replay deplace vers lmdz_cv_ini ! includes microphysical parameters and parameters that 374 ! Replay deplace vers lmdz_cv_ini ! control the rate of approach to quasi-equilibrium) 375 ! Replay deplace vers lmdz_cv_ini ! (common cvparam) 376 ! Replay deplace vers lmdz_cv_ini 377 ! Replay deplace vers lmdz_cv_ini 378 ! Replay deplace vers lmdz_cv_ini IF (iflag_con==30) THEN 379 ! Replay deplace vers lmdz_cv_ini CALL cv30_param(nd, delt) 380 ! Replay deplace vers lmdz_cv_ini END IF 381 ! Replay deplace vers lmdz_cv_ini 382 ! Replay deplace vers lmdz_cv_ini IF (iflag_con==4) THEN 383 ! Replay deplace vers lmdz_cv_ini CALL cv_param(nd) 384 ! Replay deplace vers lmdz_cv_ini END IF 380 385 381 386 ! --------------------------------------------------------------------- … … 683 688 END SUBROUTINE cv_driver 684 689 685 ! ================================================================== 686 SUBROUTINE cv_flag(iflag_ice_thermo) 687 688 USE cvflag_mod_h 689 USE ioipsl_getin_p_mod, ONLY : getin_p 690 691 IMPLICIT NONE 692 693 ! Argument : iflag_ice_thermo : ice thermodynamics is taken into account if 694 ! iflag_ice_thermo >=1 695 INTEGER iflag_ice_thermo 696 697 698 ! -- si .TRUE., on rend la gravite plus explicite et eventuellement 699 ! differente de 10.0 dans convect3: 700 cvflag_grav = .TRUE. 701 cvflag_ice = iflag_ice_thermo >= 1 702 ! 703 ! si icvflag_Tpa=0, alors la fraction de glace dans l'ascendance adiabatique est 704 ! fonction de la temperature de l'environnement et la temperature de l'ascendance est 705 ! calculee en deux it�rations, une en supposant qu'il n'y a pas de glace et l'autre 706 ! en ajoutant la glace (ancien sch�ma d'Arnaud Jam). 707 ! si icvflag_Tpa=1, alors la fraction de glace dans l'ascendance adiabatique est 708 ! fonction de la temperature de l'environnement et la temperature de l'ascendance est 709 ! calculee en une seule iteration. 710 ! si icvflag_Tpa=2, alors la fraction de glace dans l'ascendance adiabatique est 711 ! fonction de la temperature de l'ascendance et la temperature de l'ascendance est 712 ! calculee en une seule iteration. 713 icvflag_Tpa=0 714 call getin_p('icvflag_Tpa', icvflag_Tpa) 715 716 RETURN 717 END SUBROUTINE cv_flag 718 719 ! ================================================================== 720 SUBROUTINE cv_thermo(iflag_con) 721 USE yomcst_mod_h 722 USE lmdz_cv_ini, ONLY : ci,cl,clmci,clmcpd,clmcpv,cpd,cpdmcp,cpv,cpvmcl,cpvmcpd,eps,epsi,epsim1,g,ginv,grav,hrd,lf0,lv0,rowl,rrd,rrv,t0 723 724 IMPLICIT NONE 725 726 ! ------------------------------------------------------------- 727 ! Set thermodynamical constants for convectL 728 ! ------------------------------------------------------------- 729 730 731 732 INTEGER iflag_con 733 734 735 ! original set from convect: 736 IF (iflag_con==4) THEN 737 cpd = 1005.7 738 cpv = 1870.0 739 cl = 4190.0 740 rrv = 461.5 741 rrd = 287.04 742 lv0 = 2.501E6 743 g = 9.8 744 t0 = 273.15 745 grav = g 746 ELSE 747 748 ! constants consistent with LMDZ: 749 cpd = rcpd 750 cpv = rcpv 751 cl = rcw 752 ci = rcs 753 rrv = rv 754 rrd = rd 755 lv0 = rlvtt 756 lf0 = rlstt - rlvtt 757 g = rg ! not used in convect3 758 ! ori t0 = RTT 759 t0 = 273.15 ! convect3 (RTT=273.16) 760 ! maf grav= 10. ! implicitely or explicitely used in convect3 761 grav = g ! implicitely or explicitely used in convect3 762 END IF 763 764 rowl = 1000.0 !(a quelle variable de YOMCST cela correspond-il?) 765 766 clmcpv = cl - cpv 767 clmcpd = cl - cpd 768 clmci = cl - ci 769 cpdmcp = cpd - cpv 770 cpvmcpd = cpv - cpd 771 cpvmcl = cl - cpv ! for convect3 772 eps = rrd/rrv 773 epsi = 1.0/eps 774 epsim1 = epsi - 1.0 775 ! ginv=1.0/g 776 ginv = 1.0/grav 777 hrd = 0.5*rrd 778 779 RETURN 780 END SUBROUTINE cv_thermo 690 END MODULE cv_driver_mod
Note: See TracChangeset
for help on using the changeset viewer.
