Changeset 4143 for LMDZ6/trunk/libf/phylmdiso/isotopes_verif_mod.F90
- Timestamp:
- May 9, 2022, 12:35:40 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmdiso/isotopes_verif_mod.F90
r4050 r4143 5 5 MODULE isotopes_verif_mod 6 6 !use isotopes_mod, ONLY: 7 !#ifdef ISOTRAC 8 !use isotrac_mod, ONLY: 9 !#endif 7 #ifdef ISOTRAC 8 USE isotrac_mod, ONLY: nzone 9 #endif 10 USE infotrac_phy, ONLY: ntraciso=>ntiso, niso, itZonIso 10 11 implicit none 11 12 save … … 93 94 SUBROUTINE iso_verif_init() 94 95 use ioipsl_getin_p_mod, ONLY : getin_p 95 !USE infotrac_phy, ONLY: use_iso96 96 use isotopes_mod, ONLY: iso_O17, iso_O18, iso_HDO 97 97 implicit none … … 196 196 197 197 subroutine iso_verif_aberrant(R,err_msg) 198 !USE infotrac_phy, ONLY: use_iso199 198 use isotopes_mod, ONLY: ridicule, iso_HDO 200 199 implicit none … … 227 226 228 227 subroutine iso_verif_aberrant_encadre(R,err_msg) 229 !use infotrac_phy, ONLY: use_iso230 228 use isotopes_mod, ONLY: ridicule, iso_HDO 231 229 implicit none … … 263 261 264 262 subroutine iso_verif_aberrant_choix(xt,q,qmin,deltaDmax,err_msg) 265 !use infotrac_phy, ONLY: use_iso266 263 use isotopes_mod, ONLY: iso_HDO 267 264 implicit none … … 298 295 299 296 function iso_verif_aberrant_nostop(R,err_msg) 300 !use infotrac_phy, ONLY: use_iso301 297 use isotopes_mod, ONLY: ridicule,iso_HDO 302 298 implicit none … … 330 326 331 327 function iso_verif_aberrant_enc_nostop(R,err_msg) 332 !use infotrac_phy, ONLY: use_iso333 328 use isotopes_mod, ONLY: ridicule,iso_HDO 334 329 implicit none … … 366 361 & qmin,deltaDmax,err_msg) 367 362 368 !use infotrac_phy, ONLY: use_iso369 363 use isotopes_mod, ONLY: iso_HDO 370 364 implicit none … … 428 422 function iso_verif_aberrant_enc_choix_nostop(xt,q, & 429 423 & qmin,deltaDmax,err_msg) 430 !use infotrac_phy, ONLY: use_iso431 424 use isotopes_mod, ONLY: iso_HDO 432 425 implicit none … … 1065 1058 ! ********** 1066 1059 function deltaD(R) 1067 !use infotrac_phy, ONLY: use_iso1068 1060 USE isotopes_mod, ONLY: tnat,iso_HDO 1069 1061 implicit none … … 1082 1074 ! ********** 1083 1075 function deltaO(R) 1084 !use infotrac_phy, ONLY: use_iso1085 1076 USE isotopes_mod, ONLY: tnat,iso_O18 1086 1077 implicit none … … 1098 1089 ! ********** 1099 1090 function dexcess(RD,RO) 1100 !use infotrac_phy, ONLY: use_iso1101 1091 USE isotopes_mod, ONLY: tnat,iso_O18,iso_HDO 1102 1092 implicit none … … 1138 1128 ! ********** 1139 1129 function o17excess(R17,R18) 1140 !use infotrac_phy, ONLY: use_iso1141 1130 USE isotopes_mod, ONLY: tnat,iso_O18,iso_O17 1142 1131 implicit none … … 1160 1149 & xt,q,err_msg,ni,n,m) 1161 1150 1162 !use infotrac_phy, ONLY: use_iso1163 1151 USE isotopes_mod, ONLY: iso_eau 1164 1152 implicit none … … 1212 1200 & xt,q,err_msg,ni,n) 1213 1201 1214 !use infotrac_phy, ONLY: use_iso1215 1202 USE isotopes_mod, ONLY: iso_eau 1216 1203 implicit none … … 1296 1283 subroutine iso_verif_aberrant_vect2D( & 1297 1284 & xt,q,err_msg,ni,n,m) 1298 !use infotrac_phy, ONLY: use_iso1299 1285 use isotopes_mod, ONLY: ridicule,tnat,iso_HDO 1300 1286 implicit none … … 1345 1331 & xt,q,err_msg,ni,n,m) 1346 1332 1347 !use infotrac_phy, ONLY: use_iso1348 1333 use isotopes_mod, ONLY: ridicule,tnat,iso_HDO 1349 1334 implicit none … … 1399 1384 & xt,q,err_msg,ni,n,m) 1400 1385 1401 !use infotrac_phy, ONLY: use_iso1402 1386 use isotopes_mod, ONLY: ridicule,tnat,iso_HDO 1403 1387 implicit none … … 1450 1434 & xt,q,err_msg,ni,n,m,deltaDmax) 1451 1435 1452 !use infotrac_phy, ONLY: use_iso1453 1436 use isotopes_mod, ONLY: ridicule,tnat,iso_HDO 1454 1437 implicit none … … 1501 1484 & xt,q,err_msg,ni,n,m) 1502 1485 1503 !use infotrac_phy, ONLY: use_iso1504 1486 use isotopes_mod, ONLY: ridicule,tnat,iso_HDO,iso_O18 1505 1487 implicit none … … 1766 1748 & xt,q,err_msg,ni,n,m,ib,ie) 1767 1749 1768 !use infotrac_phy, ONLY: use_iso1769 1750 use isotopes_mod, ONLY: ridicule,tnat,iso_HDO 1770 1751 implicit none … … 1817 1798 & xt,q,err_msg,ni,n,m,ib,ie) 1818 1799 1819 !use infotrac_phy, ONLY: use_iso1820 1800 USE isotopes_mod, ONLY: iso_eau 1821 1801 implicit none … … 1863 1843 function iso_verif_traceur_choix_nostop(x,err_msg, & 1864 1844 & errmax,errmaxrel,ridicule_trac,deltalimtrac) 1865 USE infotrac_phy, ONLY: ntraciso1866 1845 use isotopes_mod, ONLY: iso_HDO 1867 1846 implicit none … … 1915 1894 function iso_verif_tracnps_choix_nostop(x,err_msg, & 1916 1895 & errmax,errmaxrel,ridicule_trac,deltalimtrac) 1917 USE infotrac_phy, ONLY: ntraciso1918 1896 USE isotopes_mod, ONLY: iso_HDO 1919 1897 implicit none … … 1961 1939 1962 1940 function iso_verif_tracpos_choix_nostop(x,err_msg,seuil) 1963 use infotrac_phy, ONLY: ntraciso,niso1964 1941 use isotrac_mod, only: index_iso,strtrac,index_zone 1965 1942 use isotopes_mod, only: striso … … 1994 1971 1995 1972 function iso_verif_traceur_noNaN_nostop(x,err_msg) 1996 use infotrac_phy, ONLY: ntraciso,niso1997 1973 use isotrac_mod, only: index_iso 1998 1974 use isotopes_mod, only: striso … … 2029 2005 & errmaxin,errmaxrelin) 2030 2006 2031 use infotrac_phy, ONLY: index_trac,ntraciso,niso2032 2007 use isotopes_mod, ONLY: ridicule,striso 2033 use isotrac_mod, only: ntraceurs_zone2034 2008 ! on vérifie juste bilan de masse 2035 2009 implicit none … … 2053 2027 2054 2028 xtractot=0.0 2055 do izone=1,n traceurs_zone2056 ixt=i ndex_trac(izone,iiso)2029 do izone=1,nzone 2030 ixt=itZonIso(izone,iiso) 2057 2031 xtractot=xtractot+x(ixt) 2058 enddo !do izone=1,ntraceurs_zone2032 enddo 2059 2033 2060 2034 if (iso_verif_egalite_choix_nostop(xtractot,x(iiso), & … … 2082 2056 & ridicule_trac,deltalimtrac) 2083 2057 2084 use infotrac_phy, ONLY: index_trac,ntraciso2085 2058 USE isotopes_mod, ONLY: iso_eau, iso_HDO 2086 use isotrac_mod, only: strtrac ,ntraceurs_zone2059 use isotrac_mod, only: strtrac 2087 2060 ! on vérifie juste deltaD 2088 2061 implicit none … … 2103 2076 2104 2077 if ((iso_eau.gt.0).and.(iso_HDO.gt.0)) then 2105 do izone=1,n traceurs_zone2106 ieau=i ndex_trac(izone,iso_eau)2107 ixt=i ndex_trac(izone,iso_HDO)2078 do izone=1,nzone 2079 ieau=itZonIso(izone,iso_eau) 2080 ixt=itZonIso(izone,iso_HDO) 2108 2081 2109 2082 if (iso_verif_aberrant_choix_nostop(x(ixt),x(ieau), & … … 2118 2091 ! : //strtrac(izone)) 2119 2092 ! endif 2120 enddo !do izone=1,n traceurs_zone2093 enddo !do izone=1,nzone 2121 2094 endif ! if ((iso_eau.gt.0).and.(iso_HDO.gt.0)) then 2122 2095 … … 2124 2097 2125 2098 INTEGER FUNCTION iso_verif_tag17_q_deltaD_chns(x,err_msg) RESULT(res) 2126 USE infotrac_phy, ONLY: index_trac, ntraciso2127 2099 USE isotopes_mod, ONLY: iso_HDO, iso_eau, ridicule 2128 2100 USE isotrac_mod, ONLY: nzone_temp, option_traceurs … … 2135 2107 !--- Check whether * deltaD(highest tagging layer) < 200 permil 2136 2108 ! * q < 2137 ieau=i ndex_trac(nzone_temp,iso_eau)2138 ixt=i ndex_trac(nzone_temp,iso_HDO)2109 ieau=itZonIso(nzone_temp,iso_eau) 2110 ixt=itZonIso(nzone_temp,iso_HDO) 2139 2111 IF(x(ieau)>ridicule) THEN 2140 2112 IF(iso_verif_positif_nostop(-200.0-deltaD(x(ixt)/x(ieau)), err_msg//': deltaDt05 trop fort')==1) THEN … … 2147 2119 !--- Check whether q is small ; then, qt01 < 10% 2148 2120 IF(x(iso_eau)<2.0e-3) THEN 2149 ieau1= i ndex_trac(1,iso_eau)2121 ieau1= itZonIso(1,iso_eau) 2150 2122 IF(iso_verif_positif_nostop(0.1-(x(ieau1)/x(iso_eau)),err_msg//': qt01 trop abondant')==1) THEN 2151 2123 res=1; write(*,*) 'x=',x … … 2156 2128 SUBROUTINE iso_verif_trac17_q_deltaD(x,err_msg) 2157 2129 USE isotrac_mod, ONLY: nzone_temp, option_traceurs 2158 USE infotrac_phy, ONLY: ntraciso2159 2130 IMPLICIT NONE 2160 2131 REAL, INTENT(IN) :: x(ntraciso) … … 2167 2138 2168 2139 subroutine iso_verif_traceur(x,err_msg) 2169 USE infotrac_phy, ONLY: ntraciso2170 2140 use isotrac_mod, only: ridicule_trac 2171 2141 implicit none … … 2195 2165 subroutine iso_verif_traceur_retourne3D(x,n1,n2,n3, & 2196 2166 & i1,i2,i3,err_msg) 2197 USE infotrac_phy, ONLY: ntraciso2198 2167 use isotrac_mod, only: ridicule_trac 2199 2168 … … 2228 2197 subroutine iso_verif_traceur_retourne4D(x,n1,n2,n3,n4, & 2229 2198 & i1,i2,i3,i4,err_msg) 2230 USE infotrac_phy, ONLY: ntraciso2231 2199 use isotrac_mod, only: ridicule_trac 2232 2200 … … 2262 2230 subroutine iso_verif_traceur_retourne2D(x,n1,n2, & 2263 2231 & i1,i2,err_msg) 2264 USE infotrac_phy, ONLY: ntraciso2265 2232 use isotrac_mod, only: ridicule_trac 2266 2233 implicit none … … 2293 2260 2294 2261 subroutine iso_verif_traceur_vect(x,n,m,err_msg) 2295 USE infotrac_phy, ONLY: ntraciso2296 2262 USE isotopes_mod, ONLY: iso_HDO 2297 2263 implicit none … … 2329 2295 2330 2296 subroutine iso_verif_tracnps_vect(x,n,m,err_msg) 2331 USE infotrac_phy, ONLY: ntraciso2332 2297 USE isotopes_mod, ONLY: iso_HDO 2333 2298 implicit none … … 2363 2328 2364 2329 subroutine iso_verif_traceur_noNaN_vect(x,n,m,err_msg) 2365 USE infotrac_phy, ONLY: ntraciso,niso2366 2330 implicit none 2367 2331 … … 2407 2371 subroutine iso_verif_trac_masse_vect(x,n,m,err_msg, & 2408 2372 & errmax,errmaxrel) 2409 USE infotrac_phy, ONLY: index_trac,ntraciso,niso2410 2373 use isotopes_mod, only: striso 2411 use isotrac_mod, only: ntraceurs_zone2412 2374 implicit none 2413 2375 … … 2430 2392 xtractot(i,j)=0.0 2431 2393 xiiso(i,j)=x(iiso,i,j) 2432 do izone=1,n traceurs_zone2433 ixt=i ndex_trac(izone,iiso)2394 do izone=1,nzone 2395 ixt=itZonIso(izone,iiso) 2434 2396 xtractot(i,j)=xtractot(i,j)+x(ixt,i,j) 2435 enddo !do izone=1,n traceurs_zone2397 enddo !do izone=1,nzone 2436 2398 enddo !do i=1,n 2437 2399 enddo !do j=1,m … … 2447 2409 2448 2410 subroutine iso_verif_tracdd_vect(x,n,m,err_msg) 2449 use infotrac_phy, only: index_trac,ntraciso,niso2450 2411 use isotopes_mod, only: iso_HDO,iso_eau 2451 use isotrac_mod, only: strtrac ,ntraceurs_zone2412 use isotrac_mod, only: strtrac 2452 2413 implicit none 2453 2414 … … 2464 2425 2465 2426 if (iso_HDO.gt.0) then 2466 do izone=1,n traceurs_zone2467 ieau=i ndex_trac(izone,iso_eau)2427 do izone=1,nzone 2428 ieau=itZonIso(izone,iso_eau) 2468 2429 do iiso=1,niso 2469 ixt=i ndex_trac(izone,iiso)2430 ixt=itZonIso(izone,iiso) 2470 2431 do j=1,m 2471 2432 do i=1,n … … 2484 2445 & xiiso,xeau,err_msg//strtrac(izone),niso,n,m, & 2485 2446 & deltalimtrac) 2486 enddo !do izone=1,n traceurs_zone2447 enddo !do izone=1,nzone 2487 2448 endif !if (iso_HDO.gt.0) then 2488 2449 … … 2490 2451 2491 2452 subroutine iso_verif_tracpos_vect(x,n,m,err_msg,seuil) 2492 USE infotrac_phy, ONLY: ntraciso,niso2493 2453 implicit none 2494 2454 … … 2532 2492 2533 2493 subroutine iso_verif_tracnps(x,err_msg) 2534 USE infotrac_phy, ONLY: ntraciso2535 2494 use isotrac_mod, only: ridicule_trac 2536 2495 … … 2559 2518 2560 2519 subroutine iso_verif_tracpos_choix(x,err_msg,seuil) 2561 USE infotrac_phy, ONLY: ntraciso2562 2520 implicit none 2563 2521 ! vérifier des choses sur les traceurs … … 2585 2543 subroutine iso_verif_traceur_choix(x,err_msg, & 2586 2544 & errmax,errmaxrel,ridicule_trac_loc,deltalimtrac) 2587 USE infotrac_phy, ONLY: ntraciso2588 2545 implicit none 2589 2546 ! vérifier des choses sur les traceurs … … 2608 2565 2609 2566 function iso_verif_traceur_nostop(x,err_msg) 2610 USE infotrac_phy, ONLY: ntraciso2611 2567 use isotrac_mod, only: ridicule_trac 2612 2568 !use isotopes_verif, only: errmax,errmaxrel,deltalimtrac … … 2637 2593 2638 2594 subroutine iso_verif_traceur_justmass(x,err_msg) 2639 USE infotrac_phy, ONLY: ntraciso2640 2595 implicit none 2641 2596 ! on vérifie que noNaN et masse … … 2666 2621 2667 2622 function iso_verif_traceur_jm_nostop(x,err_msg) 2668 USE infotrac_phy, ONLY: ntraciso2669 2623 implicit none 2670 2624 ! on vérifie que noNaN et masse … … 2699 2653 2700 2654 subroutine iso_verif_tag17_q_deltaD_vect(x,n,m,err_msg) 2701 USE infotrac_phy, ONLY: index_trac,ntraciso2702 2655 USE isotopes_mod, ONLY: tnat,iso_eau, ridicule,iso_HDO 2703 2656 use isotrac_mod, only: option_traceurs,nzone_temp … … 2719 2672 ! verifier que deltaD du tag de la couche la plus haute < 2720 2673 ! 200 permil, et vérifier que son q est inférieur à 2721 ieau=i ndex_trac(nzone_temp,iso_eau)2722 ixt=i ndex_trac(nzone_temp,iso_HDO)2723 ieau1=i ndex_trac(1,iso_eau)2674 ieau=itZonIso(nzone_temp,iso_eau) 2675 ixt=itZonIso(nzone_temp,iso_HDO) 2676 ieau1=itZonIso(1,iso_eau) 2724 2677 do i=1,n 2725 2678 do k=1,m … … 2759 2712 2760 2713 subroutine iso_verif_tag17_q_deltaD_vect_ret3D(x,n,m,nq,err_msg) 2761 USE infotrac_phy, ONLY: index_trac,ntraciso2762 2714 USE isotopes_mod, ONLY: tnat,iso_eau,iso_HDO,ridicule 2763 2715 use isotrac_mod, only: option_traceurs,nzone_temp … … 2779 2731 ! verifier que deltaD du tag de la couche la plus haute < 2780 2732 ! 200 permil, et vérifier que son q est inférieur à 2781 ieau=i ndex_trac(nzone_temp,iso_eau)2782 ixt=i ndex_trac(nzone_temp,iso_HDO)2783 ieau1=i ndex_trac(1,iso_eau)2733 ieau=itZonIso(nzone_temp,iso_eau) 2734 ixt=itZonIso(nzone_temp,iso_HDO) 2735 ieau1=itZonIso(1,iso_eau) 2784 2736 do iq=1,nq 2785 2737 do i=1,n
Note: See TracChangeset
for help on using the changeset viewer.