- Timestamp:
- Mar 1, 2023, 6:22:39 PM (16 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Portage_acc/libf/phylmdiso/isotopes_verif_mod.F90
r4050 r4446 6 6 !use isotopes_mod, ONLY: 7 7 !#ifdef ISOTRAC 8 ! use isotrac_mod, ONLY:8 ! USE isotrac_mod, ONLY: nzone 9 9 !#endif 10 USE infotrac_phy, ONLY: ntraciso=>ntiso, niso, itZonIso, nzone 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,niso 1964 use isotrac_mod, only: index_iso,strtrac,index_zone 1965 use isotopes_mod, only: striso 1941 use isotopes_mod, only: isoName 1966 1942 implicit none 1967 1943 … … 1982 1958 1983 1959 do ixt=niso+1,ntraciso 1984 iiso=index_iso(ixt)1985 1960 if (iso_verif_positif_choix_nostop(x(ixt),seuil,err_msg// & 1986 & ', verif positif, iso'//striso(iiso) & 1987 & //strtrac(index_zone(ixt))).eq.1) then 1961 & ', verif positif, iso'//TRIM(isoName(ixt))).eq.1) then 1988 1962 iso_verif_tracpos_choix_nostop=1 1989 1963 endif … … 1994 1968 1995 1969 function iso_verif_traceur_noNaN_nostop(x,err_msg) 1996 use infotrac_phy, ONLY: ntraciso,niso 1997 use isotrac_mod, only: index_iso 1998 use isotopes_mod, only: striso 1970 use isotopes_mod, only: isoName 1999 1971 implicit none 2000 1972 … … 2015 1987 2016 1988 do ixt=niso+1,ntraciso 2017 iiso=index_iso(ixt)2018 1989 ! write(*,*) 'iso_verif_traceurs 154: iiso,ixt=',iiso,ixt 2019 1990 if (iso_verif_noNaN_nostop(x(ixt),err_msg// & 2020 & ', verif trac no NaN, iso'// striso(iiso)) &1991 & ', verif trac no NaN, iso'//TRIM(isoName(ixt))) & 2021 1992 & .eq.1) then 2022 1993 iso_verif_traceur_noNaN_nostop=1 … … 2029 2000 & errmaxin,errmaxrelin) 2030 2001 2031 use infotrac_phy, ONLY: index_trac,ntraciso,niso 2032 use isotopes_mod, ONLY: ridicule,striso 2033 use isotrac_mod, only: ntraceurs_zone 2002 use isotopes_mod, ONLY: ridicule,isoName 2034 2003 ! on vérifie juste bilan de masse 2035 2004 implicit none … … 2053 2022 2054 2023 xtractot=0.0 2055 do izone=1,n traceurs_zone2056 ixt=i ndex_trac(izone,iiso)2024 do izone=1,nzone 2025 ixt=itZonIso(izone,iiso) 2057 2026 xtractot=xtractot+x(ixt) 2058 enddo !do izone=1,ntraceurs_zone2027 enddo 2059 2028 2060 2029 if (iso_verif_egalite_choix_nostop(xtractot,x(iiso), & 2061 & err_msg//', verif trac egalite, iso '//striso(iiso), & 2030 & err_msg//', verif trac egalite, iso '// & 2031 & TRIM(isoName(iiso)), & 2062 2032 & errmaxin,errmaxrelin).eq.1) then 2063 2033 write(*,*) 'iso_verif_traceur 202: x=',x … … 2070 2040 & (abs(x(iiso)).gt.ridicule)) then 2071 2041 write(*,*) err_msg,', verif masse traceurs, iso ', & 2072 & striso(iiso)2042 & TRIM(isoName(iiso)) 2073 2043 write(*,*) 'iso_verif_traceur 209: x=',x 2074 2044 ! iso_verif_tracm_choix_nostop=1 … … 2082 2052 & ridicule_trac,deltalimtrac) 2083 2053 2084 use infotrac_phy, ONLY: index_trac,ntraciso2085 2054 USE isotopes_mod, ONLY: iso_eau, iso_HDO 2086 use isotrac_mod, only: strtrac ,ntraceurs_zone2055 use isotrac_mod, only: strtrac 2087 2056 ! on vérifie juste deltaD 2088 2057 implicit none … … 2103 2072 2104 2073 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)2074 do izone=1,nzone 2075 ieau=itZonIso(izone,iso_eau) 2076 ixt=itZonIso(izone,iso_HDO) 2108 2077 2109 2078 if (iso_verif_aberrant_choix_nostop(x(ixt),x(ieau), & … … 2118 2087 ! : //strtrac(izone)) 2119 2088 ! endif 2120 enddo !do izone=1,n traceurs_zone2089 enddo !do izone=1,nzone 2121 2090 endif ! if ((iso_eau.gt.0).and.(iso_HDO.gt.0)) then 2122 2091 … … 2124 2093 2125 2094 INTEGER FUNCTION iso_verif_tag17_q_deltaD_chns(x,err_msg) RESULT(res) 2126 USE infotrac_phy, ONLY: index_trac, ntraciso2127 2095 USE isotopes_mod, ONLY: iso_HDO, iso_eau, ridicule 2128 2096 USE isotrac_mod, ONLY: nzone_temp, option_traceurs … … 2135 2103 !--- Check whether * deltaD(highest tagging layer) < 200 permil 2136 2104 ! * q < 2137 ieau=i ndex_trac(nzone_temp,iso_eau)2138 ixt=i ndex_trac(nzone_temp,iso_HDO)2105 ieau=itZonIso(nzone_temp,iso_eau) 2106 ixt=itZonIso(nzone_temp,iso_HDO) 2139 2107 IF(x(ieau)>ridicule) THEN 2140 2108 IF(iso_verif_positif_nostop(-200.0-deltaD(x(ixt)/x(ieau)), err_msg//': deltaDt05 trop fort')==1) THEN … … 2147 2115 !--- Check whether q is small ; then, qt01 < 10% 2148 2116 IF(x(iso_eau)<2.0e-3) THEN 2149 ieau1= i ndex_trac(1,iso_eau)2117 ieau1= itZonIso(1,iso_eau) 2150 2118 IF(iso_verif_positif_nostop(0.1-(x(ieau1)/x(iso_eau)),err_msg//': qt01 trop abondant')==1) THEN 2151 2119 res=1; write(*,*) 'x=',x … … 2156 2124 SUBROUTINE iso_verif_trac17_q_deltaD(x,err_msg) 2157 2125 USE isotrac_mod, ONLY: nzone_temp, option_traceurs 2158 USE infotrac_phy, ONLY: ntraciso2159 2126 IMPLICIT NONE 2160 2127 REAL, INTENT(IN) :: x(ntraciso) … … 2167 2134 2168 2135 subroutine iso_verif_traceur(x,err_msg) 2169 USE infotrac_phy, ONLY: ntraciso2170 2136 use isotrac_mod, only: ridicule_trac 2171 2137 implicit none … … 2195 2161 subroutine iso_verif_traceur_retourne3D(x,n1,n2,n3, & 2196 2162 & i1,i2,i3,err_msg) 2197 USE infotrac_phy, ONLY: ntraciso2198 2163 use isotrac_mod, only: ridicule_trac 2199 2164 … … 2228 2193 subroutine iso_verif_traceur_retourne4D(x,n1,n2,n3,n4, & 2229 2194 & i1,i2,i3,i4,err_msg) 2230 USE infotrac_phy, ONLY: ntraciso2231 2195 use isotrac_mod, only: ridicule_trac 2232 2196 … … 2262 2226 subroutine iso_verif_traceur_retourne2D(x,n1,n2, & 2263 2227 & i1,i2,err_msg) 2264 USE infotrac_phy, ONLY: ntraciso2265 2228 use isotrac_mod, only: ridicule_trac 2266 2229 implicit none … … 2293 2256 2294 2257 subroutine iso_verif_traceur_vect(x,n,m,err_msg) 2295 USE infotrac_phy, ONLY: ntraciso2296 2258 USE isotopes_mod, ONLY: iso_HDO 2297 2259 implicit none … … 2329 2291 2330 2292 subroutine iso_verif_tracnps_vect(x,n,m,err_msg) 2331 USE infotrac_phy, ONLY: ntraciso2332 2293 USE isotopes_mod, ONLY: iso_HDO 2333 2294 implicit none … … 2363 2324 2364 2325 subroutine iso_verif_traceur_noNaN_vect(x,n,m,err_msg) 2365 USE infotrac_phy, ONLY: ntraciso,niso2366 2326 implicit none 2367 2327 … … 2407 2367 subroutine iso_verif_trac_masse_vect(x,n,m,err_msg, & 2408 2368 & errmax,errmaxrel) 2409 USE infotrac_phy, ONLY: index_trac,ntraciso,niso 2410 use isotopes_mod, only: striso 2411 use isotrac_mod, only: ntraceurs_zone 2369 use isotopes_mod, only: isoName 2412 2370 implicit none 2413 2371 … … 2430 2388 xtractot(i,j)=0.0 2431 2389 xiiso(i,j)=x(iiso,i,j) 2432 do izone=1,n traceurs_zone2433 ixt=i ndex_trac(izone,iiso)2390 do izone=1,nzone 2391 ixt=itZonIso(izone,iiso) 2434 2392 xtractot(i,j)=xtractot(i,j)+x(ixt,i,j) 2435 enddo !do izone=1,n traceurs_zone2393 enddo !do izone=1,nzone 2436 2394 enddo !do i=1,n 2437 2395 enddo !do j=1,m … … 2440 2398 call iso_verif_egalite_std_vect( & 2441 2399 & xtractot,xiiso, & 2442 & err_msg//', verif trac egalite, iso '//striso(iiso), & 2400 & err_msg//', verif trac egalite, iso ' & 2401 & //TRIM(isoName(iiso)), & 2443 2402 & n,m,errmax,errmaxrel) 2444 2403 enddo !do iiso=1,niso … … 2447 2406 2448 2407 subroutine iso_verif_tracdd_vect(x,n,m,err_msg) 2449 use infotrac_phy, only: index_trac,ntraciso,niso2450 2408 use isotopes_mod, only: iso_HDO,iso_eau 2451 use isotrac_mod, only: strtrac ,ntraceurs_zone2409 use isotrac_mod, only: strtrac 2452 2410 implicit none 2453 2411 … … 2464 2422 2465 2423 if (iso_HDO.gt.0) then 2466 do izone=1,n traceurs_zone2467 ieau=i ndex_trac(izone,iso_eau)2424 do izone=1,nzone 2425 ieau=itZonIso(izone,iso_eau) 2468 2426 do iiso=1,niso 2469 ixt=i ndex_trac(izone,iiso)2427 ixt=itZonIso(izone,iiso) 2470 2428 do j=1,m 2471 2429 do i=1,n … … 2484 2442 & xiiso,xeau,err_msg//strtrac(izone),niso,n,m, & 2485 2443 & deltalimtrac) 2486 enddo !do izone=1,n traceurs_zone2444 enddo !do izone=1,nzone 2487 2445 endif !if (iso_HDO.gt.0) then 2488 2446 … … 2490 2448 2491 2449 subroutine iso_verif_tracpos_vect(x,n,m,err_msg,seuil) 2492 USE infotrac_phy, ONLY: ntraciso,niso2493 2450 implicit none 2494 2451 … … 2532 2489 2533 2490 subroutine iso_verif_tracnps(x,err_msg) 2534 USE infotrac_phy, ONLY: ntraciso2535 2491 use isotrac_mod, only: ridicule_trac 2536 2492 … … 2559 2515 2560 2516 subroutine iso_verif_tracpos_choix(x,err_msg,seuil) 2561 USE infotrac_phy, ONLY: ntraciso2562 2517 implicit none 2563 2518 ! vérifier des choses sur les traceurs … … 2585 2540 subroutine iso_verif_traceur_choix(x,err_msg, & 2586 2541 & errmax,errmaxrel,ridicule_trac_loc,deltalimtrac) 2587 USE infotrac_phy, ONLY: ntraciso2588 2542 implicit none 2589 2543 ! vérifier des choses sur les traceurs … … 2608 2562 2609 2563 function iso_verif_traceur_nostop(x,err_msg) 2610 USE infotrac_phy, ONLY: ntraciso2611 2564 use isotrac_mod, only: ridicule_trac 2612 2565 !use isotopes_verif, only: errmax,errmaxrel,deltalimtrac … … 2637 2590 2638 2591 subroutine iso_verif_traceur_justmass(x,err_msg) 2639 USE infotrac_phy, ONLY: ntraciso2640 2592 implicit none 2641 2593 ! on vérifie que noNaN et masse … … 2666 2618 2667 2619 function iso_verif_traceur_jm_nostop(x,err_msg) 2668 USE infotrac_phy, ONLY: ntraciso2669 2620 implicit none 2670 2621 ! on vérifie que noNaN et masse … … 2699 2650 2700 2651 subroutine iso_verif_tag17_q_deltaD_vect(x,n,m,err_msg) 2701 USE infotrac_phy, ONLY: index_trac,ntraciso2702 2652 USE isotopes_mod, ONLY: tnat,iso_eau, ridicule,iso_HDO 2703 2653 use isotrac_mod, only: option_traceurs,nzone_temp … … 2719 2669 ! verifier que deltaD du tag de la couche la plus haute < 2720 2670 ! 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)2671 ieau=itZonIso(nzone_temp,iso_eau) 2672 ixt=itZonIso(nzone_temp,iso_HDO) 2673 ieau1=itZonIso(1,iso_eau) 2724 2674 do i=1,n 2725 2675 do k=1,m … … 2759 2709 2760 2710 subroutine iso_verif_tag17_q_deltaD_vect_ret3D(x,n,m,nq,err_msg) 2761 USE infotrac_phy, ONLY: index_trac,ntraciso2762 2711 USE isotopes_mod, ONLY: tnat,iso_eau,iso_HDO,ridicule 2763 2712 use isotrac_mod, only: option_traceurs,nzone_temp … … 2779 2728 ! verifier que deltaD du tag de la couche la plus haute < 2780 2729 ! 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)2730 ieau=itZonIso(nzone_temp,iso_eau) 2731 ixt=itZonIso(nzone_temp,iso_HDO) 2732 ieau1=itZonIso(1,iso_eau) 2784 2733 do iq=1,nq 2785 2734 do i=1,n
Note: See TracChangeset
for help on using the changeset viewer.