Changeset 4325 for LMDZ6/trunk/libf/dyn3dmem
- Timestamp:
- Nov 7, 2022, 3:09:43 AM (3 years ago)
- Location:
- LMDZ6/trunk/libf/dyn3dmem
- Files:
-
- 6 edited
-
check_isotopes_loc.F90 (modified) (3 diffs)
-
dynetat0_loc.F90 (modified) (3 diffs)
-
gcm.F90 (modified) (2 diffs)
-
iniacademic_loc.F90 (modified) (3 diffs)
-
vlsplt_loc.F (modified) (5 diffs)
-
vlspltqs_loc.F (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3dmem/check_isotopes_loc.F90
r4143 r4325 3 3 USE strings_mod, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str 4 4 USE infotrac, ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, & 5 ntiso, iH2O, nzone, tracers, isoName, itZonIso, tnat5 ntiso, iH2O, nzone, tracers, isoName, itZonIso, getKey 6 6 IMPLICIT NONE 7 7 include "dimensions.h" … … 11 11 CHARACTER(LEN=maxlen) :: modname, msg1, nm(2) 12 12 INTEGER :: ixt, ipha, k, i, iq, iiso, izon, ieau, iqeau, iqpar 13 INTEGER, ALLOCATABLE :: ix(:) 13 INTEGER, ALLOCATABLE :: ix(:) 14 REAL, ALLOCATABLE :: tnat(:) !--- OpenMP shared variable 14 15 REAL :: xtractot, xiiso, deltaD, q1, q2 15 16 REAL, PARAMETER :: borne = 1e19, & … … 36 37 iso_O17 = strIdx(isoName,'H2[17]O') 37 38 iso_HTO = strIdx(isoName,'H[3]HO') 39 IF(getKey('tnat', tnat)) CALL abort_gcm(modname, 'missing isotopic parameter', 1) 38 40 !$OMP END MASTER 39 41 !$OMP BARRIER -
LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90
r4301 r4325 7 7 !------------------------------------------------------------------------------- 8 8 USE parallel_lmdz 9 USE infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, tnat, alpha_ideal, iH2O9 USE infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName 10 10 USE strings_mod, ONLY: maxlen, msg, strStack, real2str, int2str 11 11 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, & 12 12 NF90_CLOSE, NF90_GET_VAR, NF90_INQUIRE_VARIABLE, NF90_NoErr 13 USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3 13 USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3, getKey 14 14 USE control_mod, ONLY: planet_type 15 15 USE assert_eq_m, ONLY: assert_eq … … 42 42 INTEGER, PARAMETER :: length=100 43 43 INTEGER :: iq, fID, vID, idecal, ierr, iqParent, iName, iZone, iPhase, ix 44 REAL :: time, t ab_cntrl(length)!--- RUN PARAMS TABLE44 REAL :: time, tnat, alpha_ideal, tab_cntrl(length) !--- RUN PARAMS TABLE 45 45 REAL, ALLOCATABLE :: vcov_glo(:,:),masse_glo(:,:), ps_glo(:) 46 46 REAL, ALLOCATABLE :: ucov_glo(:,:), q_glo(:,:), phis_glo(:) … … 179 179 iqParent = tracers(iq)%iqParent 180 180 IF(tracers(iq)%iso_iZone == 0) THEN 181 IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) & 182 CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1) 181 183 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized with a simplified Rayleigh distillation law.', modname) 182 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat(iName)*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.)184 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal-1.) 183 185 ELSE 184 186 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to its parent isotope concentration.', modname) -
LMDZ6/trunk/libf/dyn3dmem/gcm.F90
r4146 r4325 11 11 USE mod_const_mpi, ONLY: init_const_mpi 12 12 USE parallel_lmdz 13 USE infotrac, ONLY: nqtot, in fotrac_init13 USE infotrac, ONLY: nqtot, init_infotrac 14 14 !#ifdef CPP_PHYS 15 15 ! USE mod_interface_dyn_phys, ONLY: init_interface_dyn_phys … … 205 205 ! Choix du nombre de traceurs et du schema pour l'advection 206 206 ! dans fichier traceur.def, par default ou via INCA 207 call in fotrac_init207 call init_infotrac 208 208 209 209 ! Allocation de la tableau q : champs advectes -
LMDZ6/trunk/libf/dyn3dmem/iniacademic_loc.F90
r4143 r4325 5 5 6 6 USE filtreg_mod, ONLY: inifilr 7 USE infotrac, ONLY: nqtot, niso, tnat, alpha_ideal, iqIsoPha, tracers7 USE infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName 8 8 USE control_mod, ONLY: day_step,planet_type 9 9 use exner_hyb_m, only: exner_hyb … … 77 77 integer idum 78 78 79 REAL zdtvr 79 REAL zdtvr, tnat, alpha_ideal 80 80 81 81 character(len=*),parameter :: modname="iniacademic" … … 290 290 iqParent = tracers(iq)%iqParent 291 291 IF(tracers(iq)%iso_iZone == 0) THEN 292 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat(iName) & 293 *(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.) 292 IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) & 293 CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1) 294 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal-1.) 294 295 ELSE 295 296 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqIsoPha(iName,iPhase)) -
LMDZ6/trunk/libf/dyn3dmem/vlsplt_loc.F
r4143 r4325 351 351 c$OMP END DO NOWAIT 352 352 enddo !do ifils=1,tracers(iq)%nqDescen 353 do ifils=1,tracers(iq)%nqChild s353 do ifils=1,tracers(iq)%nqChildren 354 354 iq2=tracers(iq)%iqDescen(ifils) 355 355 call vlx_loc(Ratio,pente_max,masse,u_mq,ijb_x,ije_x,iq2) … … 726 726 ! CRisi: appel récursif de l'advection sur les fils. 727 727 ! Il faut faire ça avant d'avoir mis à jour q et masse 728 !write(*,*) 'vly 689: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds 728 ! write(*,*)'vly 689: iq,nqChildren(iq)=',iq,tracers(iq)%nqChildren 729 729 730 730 ijb=ij_begin-2*iip1 … … 761 761 enddo 762 762 763 do ifils=1,tracers(iq)%nqChild s763 do ifils=1,tracers(iq)%nqChildren 764 764 iq2=tracers(iq)%iqDescen(ifils) 765 765 call vly_loc(Ratio,pente_max,masse,qbyv,iq2) … … 1148 1148 ! CRisi: appel récursif de l'advection sur les fils. 1149 1149 ! Il faut faire ça avant d'avoir mis à jour q et masse 1150 !write(*,*) 'vlsplt 942: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds 1150 ! write(*,*)'vlsplt 942: iq,nqChildren(iq)=',iq,tracers(iq)%nqChildren 1151 1151 do ifils=1,tracers(iq)%nqDescen 1152 1152 iq2=tracers(iq)%iqDescen(ifils) … … 1169 1169 c$OMP BARRIER 1170 1170 1171 do ifils=1,tracers(iq)%nqChild s1171 do ifils=1,tracers(iq)%nqChildren 1172 1172 iq2=tracers(iq)%iqDescen(ifils) 1173 1173 call vlz_loc(Ratio,pente_max,masse,w,ijb_x,ije_x,iq2) -
LMDZ6/trunk/libf/dyn3dmem/vlspltqs_loc.F
r4143 r4325 337 337 ! CRisi: appel recursif de l'advection sur les fils. 338 338 ! Il faut faire ca avant d'avoir mis a jour q et masse 339 !write(*,*) 'vlspltqs 336: iq,ijb_x,nqChild s(iq)=',340 ! & iq,ijb_x,tracers(iq)%nqChild s339 !write(*,*) 'vlspltqs 336: iq,ijb_x,nqChildren(iq)=', 340 ! & iq,ijb_x,tracers(iq)%nqChildren 341 341 342 342 do ifils=1,tracers(iq)%nqDescen … … 356 356 c$OMP END DO NOWAIT 357 357 enddo 358 do ifils=1,tracers(iq)%nqChild s358 do ifils=1,tracers(iq)%nqChildren 359 359 iq2=tracers(iq)%iqDescen(ifils) 360 360 !write(*,*) 'vlxqs 349: on appelle vlx pour iq2=',iq2 … … 729 729 ! CRisi: appel recursif de l'advection sur les fils. 730 730 ! Il faut faire ca avant d'avoir mis a jour q et masse 731 !write(*,*) 'vlyqs 689: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds 731 ! write(*,*)'vlyqs 689: iq,nqChildren(iq)=',iq, 732 ! & tracers(iq)%nqChildren 732 733 733 734 ijb=ij_begin-2*iip1 … … 767 768 c$OMP END DO NOWAIT 768 769 enddo 769 do ifils=1,tracers(iq)%nqChild s770 do ifils=1,tracers(iq)%nqChildren 770 771 iq2=tracers(iq)%iqDescen(ifils) 771 772 !write(lunout,*) 'vly: appel recursiv vly iq2=',iq2
Note: See TracChangeset
for help on using the changeset viewer.
