Changeset 3891 for LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem
- Timestamp:
- May 11, 2021, 2:10:34 PM (4 years ago)
- Location:
- LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/check_isotopes_loc.F90
r3852 r3891 26 26 modname = 'check_isotopes' 27 27 IF(first) THEN 28 iH2O = -1 28 29 IF(isoSelect('H2O')) RETURN 29 30 ixH2O = strIdx(isoName,'H2[16]O') … … 32 33 first = .FALSE. 33 34 ELSE 35 IF(iH2O == -1) RETURN 34 36 IF(isoSelect(iH2O)) RETURN 35 37 END IF -
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/dynetat0_loc.F90
r3852 r3891 46 46 REAL, ALLOCATABLE :: ucov_glo(:,:), q_glo(:,:), phis_glo(:) 47 47 REAL, ALLOCATABLE :: teta_glo(:,:) 48 TYPE(tra), POINTER :: tr 48 49 !------------------------------------------------------------------------------- 49 50 modname="dynetat0_loc" -
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/dynredem_loc.F90
r3852 r3891 151 151 CALL cre_var(nid,"teta" ,"Temperature",[rlonvID,rlatuID,sID,timID]) 152 152 DO iq=1,nqtot 153 CALL cre_var(nid,tracers(iq)%name (iq),tracers(iq)%lnam,[rlonvID,rlatuID,sID,timID])153 CALL cre_var(nid,tracers(iq)%name,tracers(iq)%lnam,[rlonvID,rlatuID,sID,timID]) 154 154 END DO 155 155 CALL cre_var(nid,"masse","Masse d air" ,[rlonvID,rlatuID,sID,timID]) -
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/iniacademic_loc.F90
r3852 r3891 283 283 IF(niso > 0 .AND. tr%iso_num > 0) THEN 284 284 IF(tr%iso_zon == 0) & 285 q(ijb_u:ije_u,:,i) = q(ijb_u:ije_u,:,tr%iprnt) * tnat(tr%iso_num) 285 q(ijb_u:ije_u,:,i) = q(ijb_u:ije_u,:,tr%iprnt) * tnat(tr%iso_num) & 286 286 *(q(ijb_u:ije_u,:,tr%iprnt)/30.e-3)**(alpha_ideal(tr%iso_num)-1) 287 287 IF(tr%iso_zon == 1) & -
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/qminimum_loc.F
r3852 r3891 4 4 SUBROUTINE qminimum_loc( q,nqtot,deltap ) 5 5 USE parallel_lmdz 6 USE infotrac, ONLY: nitr, iTraPha, qp eremin ! CRisi 23nov20206 USE infotrac, ONLY: nitr, iTraPha, qprntmin ! CRisi 23nov2020 7 7 IMPLICIT none 8 8 c … … 166 166 ! write(lunout,*) 'i,k,q_follow(i,k-1,iq_vap)=', 167 167 ! : i,k,q_follow(i,k-1,iq_vap) 168 if (q_follow(i,k-1,iq_vap).lt.qp eremin) then168 if (q_follow(i,k-1,iq_vap).lt.qprntmin) then 169 169 write(lunout,*) 'tmp qmin: on stoppe' 170 170 write(lunout,*) 'zx_pump(i)=',zx_pump(i) -
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/vlsplt_loc.F
r3852 r3891 14 14 c -------------------------------------------------------------------- 15 15 USE parallel_lmdz 16 USE infotrac, ONLY : nqtot,tracers, tra, ! CRisi&17 & qp eremin,masseqmin,ratiomin ! MVals et CRisi16 USE infotrac, ONLY : nqtot,tracers, tra, ! CRisi & 17 & qprntmin, massqmin, ratiomin ! MVals et CRisi 18 18 IMPLICIT NONE 19 19 c … … 346 346 ! les calcule donc que de ijb à ije 347 347 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 348 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),mass eqmin)349 if (q(ij,l,iq).gt.qp eremin) then ! modif 13 nov 2020348 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),massqmin) 349 if (q(ij,l,iq).gt.qprntmin) then ! modif 13 nov 2020 350 350 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 351 351 else … … 369 369 DO ij=ijb+1,ije 370 370 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 371 new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),mass eqmin)371 new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),massqmin) 372 372 q(ij,l,iq)=(q(ij,l,iq)*masse(ij,l,iq)+ 373 373 & u_mq(ij-1,l)-u_mq(ij,l)) … … 425 425 c -------------------------------------------------------------------- 426 426 USE parallel_lmdz 427 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi&428 & qp eremin,masseqmin,ratiomin ! MVals et CRisi427 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi & 428 & qprntmin, massqmin, ratiomin ! MVals et CRisi 429 429 USE comconst_mod, ONLY: pi 430 430 IMPLICIT NONE … … 759 759 DO ij=ijbm,ijem 760 760 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 761 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),mass eqmin)761 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),massqmin) 762 762 enddo !DO ij=ijbm,ijem 763 763 … … 765 765 DO ij=ijb,ije 766 766 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 767 if (q(ij,l,iq).gt.qp eremin) then ! modif 13 nov 2020767 if (q(ij,l,iq).gt.qprntmin) then ! modif 13 nov 2020 768 768 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 769 769 else … … 901 901 USE parallel_lmdz 902 902 USE vlz_mod 903 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi&904 & qp eremin,masseqmin,ratiomin ! MVals et CRisi903 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi & 904 & qprntmin, massqmin, ratiomin ! MVals et CRisi 905 905 906 906 IMPLICIT NONE … … 949 949 !$OMP THREADPRIVATE(first) 950 950 951 !REAL mass eq(ijb_u:ije_u,llm,nqtot),Ratio(ijb_u:ije_u,llm,nqtot) ! CRisi951 !REAL massq(ijb_u:ije_u,llm,nqtot),Ratio(ijb_u:ije_u,llm,nqtot) ! CRisi 952 952 ! Ces varibles doivent être déclarées en pointer et en save dans 953 953 ! vlz_loc si on veut qu'elles soient vues par tous les threads. 954 954 INTEGER ichld,iq2 ! CRisi 955 955 TYPE(tra), POINTER :: tr 956 tr => tracers(iq) 956 957 957 958 IF (first) THEN … … 1174 1175 DO ij=ijb,ije 1175 1176 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 1176 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),mass eqmin)1177 if (q(ij,l,iq).gt.qp eremin) then1177 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),massqmin) 1178 if (q(ij,l,iq).gt.qprntmin) then 1178 1179 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 1179 1180 else -
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/vlspltqs_loc.F
r3852 r3891 12 12 c -------------------------------------------------------------------- 13 13 USE parallel_lmdz 14 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi&15 & qp eremin,masseqmin,ratiomin ! MVals et CRisi14 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi & 15 & qprntmin, massqmin, ratiomin ! MVals et CRisi 16 16 IMPLICIT NONE 17 17 c … … 349 349 DO ij=ijb,ije 350 350 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 351 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),mass eqmin)352 if (q(ij,l,iq).gt.qp eremin) then ! modif 13 nov 2020351 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),massqmin) 352 if (q(ij,l,iq).gt.qprntmin) then ! modif 13 nov 2020 353 353 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 354 354 else … … 374 374 DO ij=ijb+1,ije 375 375 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 376 new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),mass eqmin)376 new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),massqmin) 377 377 q(ij,l,iq)=(q(ij,l,iq)*masse(ij,l,iq)+ 378 378 & u_mq(ij-1,l)-u_mq(ij,l)) … … 428 428 c -------------------------------------------------------------------- 429 429 USE parallel_lmdz 430 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi&431 & qp eremin,masseqmin,ratiomin ! MVals et CRisi430 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi & 431 & qprntmin, massqmin, ratiomin ! MVals et CRisi 432 432 USE comconst_mod, ONLY: pi 433 433 IMPLICIT NONE … … 759 759 DO ij=ijbm,ijem 760 760 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 761 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),mass eqmin)761 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),massqmin) 762 762 enddo !DO ij=ijbm,ijem 763 763 … … 766 766 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 767 767 !write(lunout,*) 'ij,l,q(ij,l,iq)=',ij,l,q(ij,l,iq) 768 if (q(ij,l,iq).gt.qp eremin) then ! modif 13 nov 2020768 if (q(ij,l,iq).gt.qprntmin) then ! modif 13 nov 2020 769 769 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 770 770 else -
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/vlz_mod.F90
r3852 r3891 25 25 CALL allocate_u(dzqw,llm,d) 26 26 CALL allocate_u(adzqw,llm,d) 27 IF(ANY(tracers(:)%ndesc > 0) THEN27 IF(ANY(tracers(:)%ndesc > 0)) THEN 28 28 !CALL allocate_u(masseq,llm,nqtot,d) 29 29 CALL allocate_u(Ratio,llm,nqtot,d) … … 45 45 CALL switch_u(adzqw,distrib_vanleer,dist) 46 46 ! CRisi: 47 if (nqdesc_tot.gt.0) then47 IF(ANY(tracers(:)%ndesc > 0)) then 48 48 !CALL switch_u(masseq,distrib_vanleer,dist) 49 49 CALL switch_u(Ratio,distrib_vanleer,dist)
Note: See TracChangeset
for help on using the changeset viewer.