Changeset 5158 for LMDZ6/branches/Amaury_dev/libf/phylmd/Dust
- Timestamp:
- Aug 2, 2024, 2:12:03 PM (6 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd/Dust
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/dustemission_mod.F90
r5133 r5158 256 256 257 257 258 dok=1,klon258 DO k=1,klon 259 259 maskdustloc(k)=0 260 doi=1,ntyp260 DO i=1,ntyp 261 261 IF (masklisa(k,i)>0) THEN 262 262 maskdustloc(k)=1 … … 358 358 auxr3=9999. 359 359 auxr4=9999. 360 doi=1,nbins+1360 DO i=1,nbins+1 361 361 IF (abs(sizeacclow-itv(i))<auxr1) THEN 362 362 auxr1=abs( sizeacclow-itv(i)) … … 380 380 IF (writeaerosoldistrib) THEN 381 381 !JEdbg<< 382 doj=1,klon383 doi=1,nbins382 DO j=1,klon 383 DO i=1,nbins 384 384 itvmean(j,i)=(itv(i)+itv(i+1))/2. 385 385 itv2(j,i)=itv(i) … … 405 405 ALLOCATE(emisbinlocalmean(klon,nbins)) 406 406 ALLOCATE(emisbinlocalmean2(klon,nbins)) 407 doi=1,nbins408 doj=1,klon407 DO i=1,nbins 408 DO j=1,klon 409 409 emisbinlocalmean(j,i)=0.0 410 410 emisbinlocalmean2(j,i)=0.0 … … 433 433 auxr2=0.0 434 434 auxr3=0.0 435 doi=iminacclow,iminacchigh-1435 DO i=iminacclow,iminacchigh-1 436 436 auxr1=auxr1+emisbinlocal(k,i) 437 437 enddo 438 438 emdustacc(k)=(auxr1 + basesumacc(k))*tuningfactorfine 439 doi=imincoalow,imincoahigh-1439 DO i=imincoalow,imincoahigh-1 440 440 auxr2=auxr2+emisbinlocal(k,i) 441 441 enddo 442 442 emdustcoa(k)=(auxr2 + basesumcoa(k))*tuningfactorcoa 443 doi=iminscolow,iminscohigh-1443 DO i=iminscolow,iminscohigh-1 444 444 auxr3=auxr3+emisbinlocal(k,i) 445 445 enddo … … 468 468 !JEdbg<< 469 469 IF (writeaerosoldistrib) THEN 470 doi=1,nbins471 doj=1,klon470 DO i=1,nbins 471 DO j=1,klon 472 472 emisbinlocalmean(j,i)=emisbinlocalmean(j,i)+emisbinlocal(j,i) 473 473 enddo … … 479 479 IF (MOD(counter,1440)== 0) THEN 480 480 !if (MOD(counter,480).EQ. 0) THEN 481 dok = 1,klon482 doi=1,nbins481 DO k = 1,klon 482 DO i=1,nbins 483 483 emisbinlocalmean2(k,i)=emisbinlocalmean(k,i)/float(counter1) 484 484 enddo … … 493 493 !!$OMP END MASTER 494 494 !!$OMP BARRIER 495 doi=1,nbins496 doj=1,klon495 DO i=1,nbins 496 DO j=1,klon 497 497 emisbinlocalmean(j,i)=0.0 498 498 enddo … … 751 751 dstep=0.0005 752 752 dp=dmin 753 doi=1,nclass753 DO i=1,nclass 754 754 dp=dp*exp(dstep) 755 755 sizeclass(i)=dp … … 770 770 !c 0: Iversen and White 1982 771 771 print *,'Using Iversen and White 1982 Uth' 772 doi=1,ncl772 DO i=1,ncl 773 773 bb=adust*(sizeclass(i)**xdust)+bdust 774 774 cc=sqrt(1+ddust*(sizeclass(i)**(-2.5))) … … 789 789 an=0.0123 790 790 gam=0.3 791 doi=1,ncl791 DO i=1,ncl 792 792 sigshao=rop/roa 793 793 x1=sigshao*gravity*sizeclass(i) … … 845 845 !wind friction velocity. 846 846 ! feff(:,:)=0. 847 doi=1,klon848 dok=1,ntyp847 DO i=1,klon 848 DO k=1,ntyp 849 849 ! PRINT*,'IKKK ',i,klon,k,ntyp 850 850 IF (zos(i,k)==0..or.z01(i,k)==0.) THEN … … 887 887 IF (flag_feff == 0) THEN 888 888 print *,'JE_dbg FORCED deactivated feff' 889 doi=1,klon890 dok=1,ntyp889 DO i=1,klon 890 DO k=1,ntyp 891 891 feff(i,k)=1. 892 892 enddo … … 1273 1273 1274 1274 ! CALL def_ag01(kfin,ft1,ft2,ft3) 1275 doni=1,kfin1275 DO ni=1,kfin 1276 1276 fdp1=1.-(uth2(ni)/(ceff*ustarsalt)) 1277 1277 IF (fdp1<=0..or.srel2(nat,ni)==0.) THEN … … 1388 1388 ! readaptation of large sizes particles 1389 1389 kfin=0 1390 doi=ideb,ifin1390 DO i=ideb,ifin 1391 1391 kfin=kfin+1 1392 1392 sizeclass2(kfin)=sizeclass(i) … … 1397 1397 kfin2=kfin 1398 1398 istep=50 1399 doi=ifin,ncl,istep1399 DO i=ifin,ncl,istep 1400 1400 kfin=kfin+1 1401 1401 sizeclass2(kfin)=sizeclass(i) … … 1433 1433 ismax=i2 1434 1434 ihalf=int((ismax+ismin)/2.) 1435 dok2=1,10000001435 DO k2=1,1000000 1436 1436 IF(ds>siz(ihalf))THEN 1437 1437 ismin=ihalf -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/minmaxqfi2.f90
r5135 r5158 4 4 USE infotrac 5 5 USE lmdz_libmath, ONLY: ismax, ismin 6 7 IMPLICIT NONE 8 6 9 INCLUDE "dimensions.h" 7 10 … … 9 12 CHARACTER(LEN = *) :: comment 10 13 REAL :: qmin, qmax 14 REAL :: zqmin, zqmax 11 15 REAL :: zq(klon, klev) 12 16 … … 24 28 zqmax = zq(ijmax, lmax) 25 29 26 IF(zqmin<qmin.OR.zqmax>qmax) & 27 WRITE(*, 9999) comment, & 28 ijmin, lmin, zqmin, ijmax, lmax, zqmax 30 IF(zqmin<qmin.OR.zqmax>qmax) WRITE(*, 9999) comment, ijmin, lmin, zqmin, ijmax, lmax, zqmax 29 31 30 32 RETURN -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/minmaxsource.f90
r5135 r5158 5 5 USE lmdz_libmath, ONLY: ismax, ismin 6 6 7 IMPLICIT NONE 8 7 9 INCLUDE "dimensions.h" 8 10 … … 10 12 CHARACTER(LEN = *) :: comment 11 13 REAL :: qmin, qmax 14 REAL :: zqmin, zqmax 12 15 REAL :: zq(klon, nbtr) 13 16 … … 25 28 zqmax = zq(ijmax, lmax) 26 29 27 IF(zqmin<qmin.OR.zqmax>qmax) & 28 WRITE(*, 9999) comment, & 29 ijmin, lmin, zqmin, ijmax, lmax, zqmax 30 IF(zqmin<qmin.OR.zqmax>qmax) WRITE(*, 9999) comment, ijmin, lmin, zqmin, ijmax, lmax, zqmax 30 31 31 32 RETURN -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/neutral.f90
r5117 r5158 41 41 42 42 psi = 0. 43 doi = 1, klon43 DO i = 1, klon 44 44 45 45 IF (u10_mps(i) < 0.) u10_mps(i) = 0.0 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/phytracr_spl_mod.F90
r5144 r5158 1343 1343 1344 1344 !JE_dbg 1345 doi = 1, klon1345 DO i = 1, klon 1346 1346 tsol(i) = 0.0 1347 doj = 1, nbsrf1347 DO j = 1, nbsrf 1348 1348 tsol(i) = tsol(i) + ftsol(i, j) * pctsrf(i, j) 1349 1349 enddo … … 1382 1382 id_scdu = -1 1383 1383 itr = 0 1384 doiq = 1, nqtot1384 DO iq = 1, nqtot 1385 1385 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 1386 1386 itr = itr + 1 … … 1941 1941 !$OMP END MASTER 1942 1942 !$OMP BARRIER 1943 doi = 1, klon1943 DO i = 1, klon 1944 1944 aux_var2(i) = pctsrf(i, is_oce) 1945 1945 enddo … … 1954 1954 !$OMP BARRIER 1955 1955 1956 doi = 1, klon1956 DO i = 1, klon 1957 1957 aux_var2(i) = pctsrf(i, is_sic) 1958 1958 enddo … … 1967 1967 !$OMP BARRIER 1968 1968 1969 doi = 1, klon1969 DO i = 1, klon 1970 1970 aux_var2(i) = pctsrf(i, is_ter) 1971 1971 enddo … … 1980 1980 !$OMP BARRIER 1981 1981 1982 doi = 1, klon1982 DO i = 1, klon 1983 1983 aux_var2(i) = pctsrf(i, is_lic) 1984 1984 enddo … … 2066 2066 ! . MAXVAL(tr_seri(:,:,3)) 2067 2067 #ifdef IOPHYS_DUST 2068 doitr=1,nbtr2068 DO itr=1,nbtr 2069 2069 WRITE(str2,'(i2.2)') itr 2070 2070 CALL iophys_ecrit('sav'//str2,1,'SOURCE','',source_tr(:,itr)) 2071 2071 CALL iophys_ecrit('fav'//str2,1,'SOURCE','',source_tr(:,itr)) 2072 2072 enddo 2073 doitr=1,nbtr2073 DO itr=1,nbtr 2074 2074 WRITE(str2,'(i2.2)') itr 2075 2075 CALL iophys_ecrit('TRB'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 2099 2099 2100 2100 #ifdef IOPHYS_DUST 2101 doitr=1,nbtr2101 DO itr=1,nbtr 2102 2102 WRITE(str2,'(i2.2)') itr 2103 2103 CALL iophys_ecrit('sap'//str2,1,'SOURCE','',source_tr(:,itr)) … … 2196 2196 #ifdef IOPHYS_DUST 2197 2197 2198 doitr=1,nbtr2198 DO itr=1,nbtr 2199 2199 WRITE(str2,'(i2.2)') itr 2200 2200 CALL iophys_ecrit('tpr'//str2,1,'SOURCE','',source_tr(:,itr)) … … 2240 2240 2241 2241 #ifdef IOPHYS_DUST 2242 doitr=1,nbtr2242 DO itr=1,nbtr 2243 2243 WRITE(str2,'(i2.2)') itr 2244 2244 CALL iophys_ecrit('t'//str2,1,'SOURCE','',source_tr(:,itr)) … … 2296 2296 2297 2297 #ifdef IOPHYS_DUST 2298 doitr=1,nbtr2298 DO itr=1,nbtr 2299 2299 WRITE(str2,'(i2.2)') itr 2300 2300 CALL iophys_ecrit('TRC'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 2336 2336 2337 2337 #ifdef IOPHYS_DUST 2338 doitr=1,nbtr2338 DO itr=1,nbtr 2339 2339 WRITE(str2,'(i2.2)') itr 2340 2340 CALL iophys_ecrit('TRD'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 2410 2410 CALL iophys_ecrit('yv1',1,'yv1','',yv1) 2411 2411 CALL iophys_ecrit('delp',klev,'delp','',delp) 2412 doitr=1,nbtr2412 DO itr=1,nbtr 2413 2413 WRITE(str2,'(i2.2)') itr 2414 2414 CALL iophys_ecrit('TRE'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 2602 2602 !======================================================================= 2603 2603 #ifdef IOPHYS_DUST 2604 doitr=1,nbtr2604 DO itr=1,nbtr 2605 2605 WRITE(str2,'(i2.2)') itr 2606 2606 CALL iophys_ecrit('TRF'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 2689 2689 2690 2690 #ifdef IOPHYS_DUST 2691 doitr=1,nbtr2691 DO itr=1,nbtr 2692 2692 WRITE(str2,'(i2.2)') itr 2693 2693 CALL iophys_ecrit('TRG'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 2854 2854 2855 2855 #ifdef IOPHYS_DUST 2856 doitr=1,nbtr2856 DO itr=1,nbtr 2857 2857 WRITE(str2,'(i2.2)') itr 2858 2858 CALL iophys_ecrit('TRH'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 3053 3053 CALL iophys_ecrit('wdtrainM',klev,'wdtrainM','',wdtrainM) 3054 3054 3055 doitr=1,nbtr3055 DO itr=1,nbtr 3056 3056 WRITE(str2,'(i2.2)') itr 3057 3057 CALL iophys_ecrit('TRI'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 3174 3174 !======================================================================= 3175 3175 #ifdef IOPHYS_DUST 3176 doitr=1,nbtr3176 DO itr=1,nbtr 3177 3177 WRITE(str2,'(i2.2)') itr 3178 3178 CALL iophys_ecrit('TRJ'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 3440 3440 !====================================================================== 3441 3441 #ifdef IOPHYS_DUST 3442 doitr=1,nbtr3442 DO itr=1,nbtr 3443 3443 WRITE(str2,'(i2.2)') itr 3444 3444 CALL iophys_ecrit('TRK'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) … … 4306 4306 IF (is_mpi_root .AND. is_omp_root) THEN 4307 4307 OPEN(1, file = trim(adjustl(filescaleparams)), form = 'unformatted') 4308 dok = 1, nbreg4308 DO k = 1, nbreg 4309 4309 read(1) scale_param(k) 4310 4310 enddo … … 4454 4454 ierr = nf90_open(trim(adjustl(filescaleparams)), nf90_nowrite, nid) 4455 4455 IF (ierr == nf90_noerr) THEN 4456 doi = 1, nbreg4456 DO i = 1, nbreg 4457 4457 WRITE(aux_2s, '(i2.2)') i 4458 4458 varname = trim(adjustl(paramname)) // aux_2s -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/read_surface.F90
r5135 r5158 52 52 latstr='null' 53 53 isinversed=.FALSE. 54 doi=1,554 DO i=1,5 55 55 IF (i==1) aux4s='latu' 56 56 IF (i==2) aux4s='LATU' -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/read_vent.f90
r5117 r5158 111 111 REAL :: zz 112 112 113 dol = 1, nl114 doi = 2, iim - 1113 DO l = 1, nl 114 DO i = 2, iim - 1 115 115 IF(abs(x(i, l))>1.e10) THEN 116 116 zz = 0.5 * (x(i - 1, l) + x(i + 1, l)) -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/spla_output_dat.h
r5099 r5158 192 192 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 193 193 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 194 194 195 195 type(ctrl_out),save :: o_trm01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 196 196 'trm01','Burden PREC','', (/ ('', i=1, 10) /))
Note: See TracChangeset
for help on using the changeset viewer.