- Timestamp:
- Jul 23, 2024, 3:29:36 PM (8 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmdiso/isotrac_routines_mod.F90
r5101 r5103 14 14 15 15 16 subroutineuncompress_commun_zone(ncas, cas, &16 SUBROUTINE uncompress_commun_zone(ncas, cas, & 17 17 xtp_cas,xtp,xtwater_cas,xtwater,xtevap_cas,xtevap, & 18 18 ncum,izone) … … 51 51 enddo !do il=1,ncas 52 52 53 end subroutineuncompress_commun_zone54 55 56 subroutineuncompress_commun_zone_revap(ncas, cas, &53 END SUBROUTINE uncompress_commun_zone 54 55 56 SUBROUTINE uncompress_commun_zone_revap(ncas, cas, & 57 57 xtp_cas,xtp,xtwater_cas,xtwater, & 58 58 xtevap_cas,xtevap, & … … 159 159 if (iso_HDO.gt.0) then 160 160 if (xtevap_cas(iso_eau,il).gt.ridicule_evap) then 161 calliso_verif_aberrant_choix( &161 CALL iso_verif_aberrant_choix( & 162 162 xtevap_cas(iso_HDO,il),xtevap_cas(iso_eau,il), & 163 163 ridicule_trac,deltalimtrac*2,'compress 344a') … … 165 165 ieau=index_trac(izone_revap,iso_eau) 166 166 iHDO=index_trac(izone_revap,iso_HDO) 167 calliso_verif_aberrant_choix(xtevap(iHDO,cas(il)), &167 CALL iso_verif_aberrant_choix(xtevap(iHDO,cas(il)), & 168 168 xtevap(ieau,cas(il)),ridicule_trac,deltalimtrac*2, & 169 169 'compress 344b') … … 212 212 ! : 'sortie de uncompress_commun_zone_revap' 213 213 214 end subroutineuncompress_commun_zone_revap215 216 217 218 subroutinecompress_cond_facftmr_zone( &214 END SUBROUTINE uncompress_commun_zone_revap 215 216 217 218 SUBROUTINE compress_cond_facftmr_zone( & 219 219 ncas, cas, & 220 220 Eqi_prime_cas,Eqi_prime, & … … 265 265 else !if (qp_avantevap_cas(cas(il)).gt.0.0) then 266 266 #ifdef ISOVERIF 267 calliso_verif_egalite_choix( &267 CALL iso_verif_egalite_choix( & 268 268 (Eqi_prime(cas(il))),0.0, & 269 269 'compress_stewart 495',errmax,errmaxrel) … … 278 278 else !if (Pqisup(cas(il)).gt.0.0) then 279 279 #ifdef ISOVERIF 280 calliso_verif_egalite_choix(water(cas(il)),0.0, &280 CALL iso_verif_egalite_choix(water(cas(il)),0.0, & 281 281 'compress_stewart 507',errmax,errmaxrel) 282 282 #endif … … 288 288 289 289 !#ifdef ISOVERIF 290 ! calliso_verif_noNaN(water_cas(il),'compress_stewart 518')290 ! CALL iso_verif_noNaN(water_cas(il),'compress_stewart 518') 291 291 ! evap_cas(il)=evap(cas(il)) 292 292 ! : *(xtp_avantevap(ieau,cas(il))/qp_avantevap(cas(il))) … … 301 301 enddo 302 302 303 end subroutinecompress_cond_facftmr_zone304 305 subroutinecompress_cond_nofftmr_zone( &303 END SUBROUTINE compress_cond_facftmr_zone 304 305 SUBROUTINE compress_cond_nofftmr_zone( & 306 306 ncas, cas, & 307 307 Eqi_prime_cas,Eqi_prime, & … … 363 363 else !if (Pqisup(cas(il)).gt.0.0) then 364 364 #ifdef ISOVERIF 365 calliso_verif_egalite_choix(water(cas(il)),0.0, &365 CALL iso_verif_egalite_choix(water(cas(il)),0.0, & 366 366 'compress_stewart 654',errmax,errmaxrel) 367 367 #endif … … 391 391 enddo 392 392 393 end subroutinecompress_cond_nofftmr_zone394 395 subroutinecompress_noevap_zone( &393 END SUBROUTINE compress_cond_nofftmr_zone 394 395 SUBROUTINE compress_noevap_zone( & 396 396 ncas, cas, & 397 397 Pqisup_cas,Pqisup, & … … 436 436 water_cas(il)=0.0 437 437 #ifdef ISOVERIF 438 calliso_verif_egalite_choix(water(cas(il)), &438 CALL iso_verif_egalite_choix(water(cas(il)), & 439 439 0.0,'compress_stewart 709',errmax,errmaxrel) 440 440 #endif … … 453 453 enddo 454 454 455 end subroutinecompress_noevap_zone456 457 subroutinecompress_evap_liq_zone(iflag_con,ncas, &455 END SUBROUTINE compress_noevap_zone 456 457 SUBROUTINE compress_evap_liq_zone(iflag_con,ncas, & 458 458 cas, & 459 459 Pqisup_cas,Pqisup, & … … 521 521 else 522 522 #ifdef ISOVERIF 523 calliso_verif_egalite(( &523 CALL iso_verif_egalite(( & 524 524 Eqi_prime(cas(il))),0.0, & 525 525 'compress_stewart 979') … … 534 534 else !if (Pqisup(cas(il)).gt.0.0) then 535 535 #ifdef ISOVERIF 536 calliso_verif_egalite_choix(water(cas(il)),0.0, &536 CALL iso_verif_egalite_choix(water(cas(il)),0.0, & 537 537 'compress_stewart 507',errmax,errmaxrel) 538 538 #endif … … 593 593 else ! if (Pqisup(cas(il).gt.0.0) then 594 594 #ifdef ISOVERIF 595 calliso_verif_egalite((Pqiinf(cas(il))), &595 CALL iso_verif_egalite((Pqiinf(cas(il))), & 596 596 0.0,'compress_stewart 1047a') 597 calliso_verif_egalite(( &597 CALL iso_verif_egalite(( & 598 598 Eqi_prime(cas(il))),0.0,'compress_stewart 1047b') 599 calliso_verif_egalite(( &599 CALL iso_verif_egalite(( & 600 600 Pqiinf_par(cas(il))),0.0,'compress_stewart 1047c') 601 calliso_verif_egalite((Eqi_par(cas(il))), &601 CALL iso_verif_egalite((Eqi_par(cas(il))), & 602 602 0.0,'compress_stewart 1047d') 603 603 #endif … … 622 622 #endif 623 623 624 end subroutinecompress_evap_liq_zone625 626 subroutinecompress_evap_glace_zone(iflag_con, &624 END SUBROUTINE compress_evap_liq_zone 625 626 SUBROUTINE compress_evap_glace_zone(iflag_con, & 627 627 ncas, cas, & 628 628 water_cas,water, & … … 685 685 else 686 686 #ifdef ISOVERIF 687 calliso_verif_egalite(( &687 CALL iso_verif_egalite(( & 688 688 Eqi_prime(cas(il))),0.0, & 689 689 'compress_stewart 979b') … … 699 699 else !if (Pqisup(cas(il)).gt.0.0) then 700 700 #ifdef ISOVERIF 701 calliso_verif_egalite_choix(water(cas(il)),0.0, &701 CALL iso_verif_egalite_choix(water(cas(il)),0.0, & 702 702 'compress_stewart 507',errmax,errmaxrel) 703 703 #endif … … 761 761 762 762 #ifdef ISOVERIF 763 calliso_verif_egalite((Pqiinf(cas(il))), &763 CALL iso_verif_egalite((Pqiinf(cas(il))), & 764 764 0.0,'compress_stewart 1347a') 765 calliso_verif_egalite(( &765 CALL iso_verif_egalite(( & 766 766 Eqi_prime(cas(il))),0.0,'compress_stewart 1347b') 767 calliso_verif_egalite(( &767 CALL iso_verif_egalite(( & 768 768 Pqiinf_par(cas(il))),0.0,'compress_stewart 1347c') 769 calliso_verif_egalite((Eqi_par(cas(il))), &769 CALL iso_verif_egalite((Eqi_par(cas(il))), & 770 770 0.0,'compress_stewart 1347d') 771 771 #endif … … 790 790 #endif 791 791 792 end subroutinecompress_evap_glace_zone793 794 subroutineuncompress_ilp_zone( &792 END SUBROUTINE compress_evap_glace_zone 793 794 SUBROUTINE uncompress_ilp_zone( & 795 795 ncas,cas, & 796 796 zxtrfln_cas,zxt_cas,zxtrfl,zxtrfln,zxt,klon, & … … 867 867 xtrevap_tag(ixt,il)=0.0 868 868 #ifdef ISOVERIF 869 calliso_verif_positif_choix(zxt(ixt,cas(il)), &869 CALL iso_verif_positif_choix(zxt(ixt,cas(il)), & 870 870 0.0,'compress 1508') 871 871 #endif … … 876 876 ! : zxt(iso_eau:ntraciso:3,cas(1)) 877 877 878 end subroutineuncompress_ilp_zone879 880 subroutinecompress_ilp_evap_liq_zone( &878 END SUBROUTINE uncompress_ilp_zone 879 880 SUBROUTINE compress_ilp_evap_liq_zone( & 881 881 ncas,cas, & 882 882 zxt_cas,zxt, & … … 947 947 ! : il,cas(il),zrfln(cas(il)),zrfl_ancien(cas(il)), 948 948 ! : zqev_diag(cas(il)) 949 calliso_verif_egalite(zqev_diag(cas(il)),0.0, &949 CALL iso_verif_egalite(zqev_diag(cas(il)),0.0, & 950 950 'compress_stewart 1591a') 951 calliso_verif_egalite(zrfln(cas(il)),0.0, &951 CALL iso_verif_egalite(zrfln(cas(il)),0.0, & 952 952 'compress_stewart 1591b') 953 953 #endif … … 961 961 enddo !do il=1,ncas 962 962 963 end subroutine compress_ilp_evap_liq_zone964 965 966 subroutinecompress_ilp_evap_glace_zone( &963 END SUBROUTINE compress_ilp_evap_liq_zone 964 965 966 SUBROUTINE compress_ilp_evap_glace_zone( & 967 967 ncas,cas, & 968 968 zxt_cas,zxt, & … … 1022 1022 else !if (zrfl_ancien(cas(il)).gt.0.0) then 1023 1023 #ifdef ISOVERIF 1024 calliso_verif_egalite(zqev_diag(cas(il)),0.0, &1024 CALL iso_verif_egalite(zqev_diag(cas(il)),0.0, & 1025 1025 'compress_stewart 1791a') 1026 calliso_verif_egalite(zrfln(cas(il)),0.0, &1026 CALL iso_verif_egalite(zrfln(cas(il)),0.0, & 1027 1027 'compress_stewart 1791b') 1028 1028 #endif … … 1032 1032 enddo 1033 1033 1034 end subroutine compress_ilp_evap_glace_zone1035 1036 1037 subroutineajoute_revap(ncas,cas, &1034 END SUBROUTINE compress_ilp_evap_glace_zone 1035 1036 1037 SUBROUTINE ajoute_revap(ncas,cas, & 1038 1038 klon,izone,zxt,xtrevap_tag) 1039 1039 … … 1066 1066 do i=1,ncas 1067 1067 do ixt=1,ntraciso 1068 calliso_verif_positif_choix(zxt(ixt,cas(i)),0.0, &1068 CALL iso_verif_positif_choix(zxt(ixt,cas(i)),0.0, & 1069 1069 'ajoute_revap 29') 1070 1070 enddo … … 1095 1095 do i=1,ncas 1096 1096 do ixt=1,ntraciso 1097 calliso_verif_positif_choix(zxt(ixt,cas(i)),0.0, &1097 CALL iso_verif_positif_choix(zxt(ixt,cas(i)),0.0, & 1098 1098 'ajoute_revap 40') 1099 1099 enddo … … 1102 1102 1103 1103 return 1104 end subroutineajoute_revap1104 END SUBROUTINE ajoute_revap 1105 1105 1106 1106 … … 1128 1128 !logical is_in_triangle 1129 1129 1130 is_in_bassin=. false.1130 is_in_bassin=.FALSE. 1131 1131 #ifdef ISOVERIF 1132 1132 write(*,*) 'is_in_basin 84: entree,bassin=',bassin … … 1138 1138 if (is_in_rectangle(lon,lat,-67.0,28.0,20.0,-45.0)) then 1139 1139 ! boite sud 1140 is_in_bassin=. true.1140 is_in_bassin=.TRUE. 1141 1141 return 1142 1142 endif 1143 1143 if (is_in_rectangle(lon,lat,-100.0,40.0,-5.3,28.0)) then 1144 1144 ! ouest gibraltar 1145 is_in_bassin=. true.1145 is_in_bassin=.TRUE. 1146 1146 return 1147 1147 endif 1148 1148 if (is_in_rectangle(lon,lat,-100.0,48.0,0.0,40.0)) then 1149 1149 ! Ouest France 1150 is_in_bassin=. true.1150 is_in_bassin=.TRUE. 1151 1151 return 1152 1152 endif 1153 1153 if (is_in_rectangle(lon,lat,-90.0,80.0,10.0,46.0)) then 1154 1154 ! Atlantic Nord 1155 is_in_bassin=. true.1155 is_in_bassin=.TRUE. 1156 1156 return 1157 1157 endif … … 1159 1159 -62.0,0.0,-62.0,30.0,-112.0,30.0)) then 1160 1160 ! golfe du Mexique 1161 is_in_bassin=. true.1161 is_in_bassin=.TRUE. 1162 1162 return 1163 1163 endif … … 1168 1168 #endif 1169 1169 if (is_in_rectangle(lon,lat,0.0,48.0,45.0,29.0)) then 1170 is_in_bassin=. true.1170 is_in_bassin=.TRUE. 1171 1171 return 1172 1172 endif 1173 1173 if (is_in_rectangle(lon,lat,-5.3,42.0,45.0,29.0)) then 1174 is_in_bassin=. true.1174 is_in_bassin=.TRUE. 1175 1175 return 1176 1176 endif … … 1181 1181 #endif 1182 1182 if (is_in_rectangle(lon,lat,20.0,30.0,110.0,-45.0)) then 1183 is_in_bassin=. true.1183 is_in_bassin=.TRUE. 1184 1184 return 1185 1185 endif … … 1187 1187 90.0,30.0,90.0,-45.0,150.0,-45.0)) then 1188 1188 ! Ouest Australie 1189 is_in_bassin=. true.1189 is_in_bassin=.TRUE. 1190 1190 return 1191 1191 endif … … 1196 1196 #endif 1197 1197 if (is_in_rectangle(lon,lat,20.0,0.0,120.0,-45.0)) then 1198 is_in_bassin=. true.1198 is_in_bassin=.TRUE. 1199 1199 return 1200 1200 endif … … 1205 1205 #endif 1206 1206 if (is_in_rectangle(lon,lat,20.0,30.0,76.0,0.0)) then 1207 is_in_bassin=. true.1207 is_in_bassin=.TRUE. 1208 1208 return 1209 1209 endif … … 1214 1214 #endif 1215 1215 if (is_in_rectangle(lon,lat,76.0,30.0,110.0,0.0)) then 1216 is_in_bassin=. true.1216 is_in_bassin=.TRUE. 1217 1217 return 1218 1218 endif … … 1224 1224 if (is_in_rectangle(lon,lat,-180.0,80.0,-100.0,-45.0)) then 1225 1225 ! pacifique Est 1226 is_in_bassin=. true.1226 is_in_bassin=.TRUE. 1227 1227 return 1228 1228 endif 1229 1229 if (is_in_rectangle(lon,lat,110.0,80.0,180.0,28.0)) then 1230 1230 ! Pacifique Nord Ouest 1231 is_in_bassin=. true.1231 is_in_bassin=.TRUE. 1232 1232 return 1233 1233 endif 1234 1234 if (is_in_rectangle(lon,lat,120.0,80.0,180.0,-45.0)) then 1235 1235 ! Pacifique central Sud 1236 is_in_bassin=. true.1236 is_in_bassin=.TRUE. 1237 1237 return 1238 1238 endif … … 1240 1240 90.0,28.0,150.0,-45.0,150.0,28.0)) then 1241 1241 ! Pacifque Sud Ouest 1242 is_in_bassin=. true.1242 is_in_bassin=.TRUE. 1243 1243 return 1244 1244 endif … … 1246 1246 -62.0,0.0,-112.0,30.0,-112.0,0.0)) then 1247 1247 ! Ouest Amérique centrale 1248 is_in_bassin=. true.1248 is_in_bassin=.TRUE. 1249 1249 return 1250 1250 endif 1251 1251 if (is_in_rectangle(lon,lat,-180.0,0.0,-67.0,-45.0)) then 1252 1252 ! Ouest Chili 1253 is_in_bassin=. true.1253 is_in_bassin=.TRUE. 1254 1254 return 1255 1255 endif … … 1260 1260 #endif 1261 1261 if (lat.lt.-45.0+0.2) then 1262 is_in_bassin=. true.1262 is_in_bassin=.TRUE. 1263 1263 return 1264 1264 endif … … 1269 1269 #endif 1270 1270 if (abs(lat).gt.35.0) then 1271 is_in_bassin=. true.1271 is_in_bassin=.TRUE. 1272 1272 return 1273 1273 endif … … 1278 1278 #endif 1279 1279 if (abs(lat).lt.15.0) then 1280 is_in_bassin=. true.1280 is_in_bassin=.TRUE. 1281 1281 return 1282 1282 endif … … 1288 1288 if ((abs(lat).ge.15.0).and. & 1289 1289 (abs(lat).le.35.0)) then 1290 is_in_bassin=. true.1290 is_in_bassin=.TRUE. 1291 1291 return 1292 1292 endif … … 1314 1314 end function is_in_bassin 1315 1315 1316 subroutinefind_bassin(lat,lon,bassin)1316 SUBROUTINE find_bassin(lat,lon,bassin) 1317 1317 use isotrac_mod, only: izone_poubelle,ntraceurs_zone=>ntiso,option_traceurs, & 1318 1318 & bassin_map … … 1330 1330 !logical is_in_bassin 1331 1331 1332 continu=. true.1332 continu=.TRUE. 1333 1333 bassin=1 1334 1334 … … 1342 1342 !#endif 1343 1343 if (is_in_bassin(lat,lon,bassin)) then 1344 continu=. false.1344 continu=.FALSE. 1345 1345 #ifdef ISOVERIF 1346 1346 write(*,*) 'find_bassin 173: trouve: bassin=',bassin … … 1353 1353 endif 1354 1354 if (bassin.eq.izone_poubelle) then 1355 continu=. false.1355 continu=.FALSE. 1356 1356 bassin=izone_poubelle 1357 1357 !#ifdef ISOVERIF … … 1364 1364 ! donc bassin<=ntraceurs_zone-1 1365 1365 #ifdef ISOVERIF 1366 calliso_verif_positif(float(ntraceurs_zone-1-bassin), &1366 CALL iso_verif_positif(float(ntraceurs_zone-1-bassin), & 1367 1367 'find_bassin 195') 1368 1368 #endif 1369 1369 1370 1370 return 1371 end subroutinefind_bassin1372 1373 subroutineinitialise_bassins_boites(presnivs)1371 END SUBROUTINE find_bassin 1372 1373 SUBROUTINE initialise_bassins_boites(presnivs) 1374 1374 USE dimphy, only: klev 1375 1375 USE geometry_mod, ONLY: longitude_deg, latitude_deg … … 1383 1383 if (option_traceurs.eq.3) then 1384 1384 ! initialisation de bassin_map 1385 callbassin_map_init(latitude_deg,longitude_deg,bassin_map)1385 CALL bassin_map_init(latitude_deg,longitude_deg,bassin_map) 1386 1386 else if (option_traceurs.eq.20) then 1387 1387 ! initialisation de bassin_map selon < ou > 35° lat 1388 1388 write(*,*) 'physiq 1681: init de la map pour tag 20' 1389 callbassin_map_init_opt20(latitude_deg,bassin_map)1389 CALL bassin_map_init_opt20(latitude_deg,bassin_map) 1390 1390 else if (option_traceurs.eq.5) then 1391 callboite_AMMA_init(latitude_deg,longitude_deg,presnivs,boite_map)1391 CALL boite_AMMA_init(latitude_deg,longitude_deg,presnivs,boite_map) 1392 1392 else if (option_traceurs.eq.21) then 1393 callboite_UT_extra_init(latitude_deg,longitude_deg,presnivs,boite_map)1393 CALL boite_UT_extra_init(latitude_deg,longitude_deg,presnivs,boite_map) 1394 1394 endif 1395 1395 1396 1396 return 1397 end subroutineinitialise_bassins_boites1398 1399 subroutinebassin_map_init(lat,lon,bassin_map)1397 END SUBROUTINE initialise_bassins_boites 1398 1399 SUBROUTINE bassin_map_init(lat,lon,bassin_map) 1400 1400 USE dimphy, only: klon 1401 1401 #ifdef ISOVERIF … … 1413 1413 1414 1414 do i=1,klon 1415 callfind_bassin(lat(i),lon(i),bassin_map(i))1415 CALL find_bassin(lat(i),lon(i),bassin_map(i)) 1416 1416 #ifdef ISOVERIF 1417 1417 write(*,*) 'init 233: i,lat,lon,bassin=',i,lat(i),lon(i), & … … 1421 1421 1422 1422 return 1423 end subroutinebassin_map_init1423 END SUBROUTINE bassin_map_init 1424 1424 1425 1425 function is_in_rectangle(x,y,x1,y1,x2,y2) … … 1440 1440 if ((x-x2.lt.0.1).and.(x-x1.gt.-0.1).and. & 1441 1441 (y-y1.lt.0.1).and.(y-y2.gt.-0.1)) then 1442 is_in_rectangle=. true.1442 is_in_rectangle=.TRUE. 1443 1443 else 1444 is_in_rectangle=. false.1444 is_in_rectangle=.FALSE. 1445 1445 endif 1446 1446 !#ifdef ISOVERIF … … 1474 1474 det2=(x2-x)*(y3-y)-(y2-y)*(x3-x) 1475 1475 det3=(x3-x)*(y1-y)-(y3-y)*(x1-x) 1476 is_in_triangle=. false.1476 is_in_triangle=.FALSE. 1477 1477 if ((det1*det2.gt.0.0).and.(det2*det3.gt.0.0)) then 1478 is_in_triangle=. true.1478 is_in_triangle=.TRUE. 1479 1479 else 1480 is_in_triangle=. false.1480 is_in_triangle=.FALSE. 1481 1481 endif 1482 1482 !#ifdef ISOVERIF … … 1488 1488 1489 1489 1490 subroutineisotrac_recolorise_tmin(xt,t)1490 SUBROUTINE isotrac_recolorise_tmin(xt,t) 1491 1491 USE dimphy, only: klon, klev 1492 1492 USE isotrac_mod, only: zone_temp,nzone_temp … … 1564 1564 do k=1,klev 1565 1565 do i=1,klon 1566 calliso_verif_traceur(xt(1,i,k),'recolorise 403')1566 CALL iso_verif_traceur(xt(1,i,k),'recolorise 403') 1567 1567 enddo !do i=1,klon 1568 1568 enddo !do k=1,klev … … 1570 1570 1571 1571 return 1572 end subroutineisotrac_recolorise_tmin1573 1574 subroutineisotrac_recolorise_tmin_sfrev(xt,t)1572 END SUBROUTINE isotrac_recolorise_tmin 1573 1574 SUBROUTINE isotrac_recolorise_tmin_sfrev(xt,t) 1575 1575 USE dimphy, only: klon,klev 1576 1576 USE isotrac_mod, only: nzone_temp,zone_temp … … 1619 1619 do k=1,klev 1620 1620 do i=1,klon 1621 calliso_verif_traceur(xt(1,i,k),'recolorise 594')1621 CALL iso_verif_traceur(xt(1,i,k),'recolorise 594') 1622 1622 enddo !do i=1,klon 1623 1623 enddo !do k=1,klev … … 1625 1625 1626 1626 return 1627 end subroutineisotrac_recolorise_tmin_sfrev1628 1629 1630 subroutineisotrac_recolorise_saturation(xt,rh,lat,pres)1627 END SUBROUTINE isotrac_recolorise_tmin_sfrev 1628 1629 1630 SUBROUTINE isotrac_recolorise_saturation(xt,rh,lat,pres) 1631 1631 USE dimphy, only: klon,klev 1632 1632 #ifdef ISOVERIF … … 1656 1656 do k=1,klev 1657 1657 do i=1,klon 1658 calliso_verif_traceur(xt(1,i,k),'recolorise 612')1658 CALL iso_verif_traceur(xt(1,i,k),'recolorise 612') 1659 1659 enddo !do i=1,klon 1660 1660 enddo !do k=1,klev … … 1684 1684 do k=1,klev 1685 1685 do i=1,klon 1686 calliso_verif_traceur(xt(1,i,k),'recolorise 637')1686 CALL iso_verif_traceur(xt(1,i,k),'recolorise 637') 1687 1687 enddo !do i=1,klon 1688 1688 enddo !do k=1,klev … … 1690 1690 1691 1691 return 1692 end subroutineisotrac_recolorise_saturation1693 1694 subroutineisotrac_recolorise_boite(xt,boite_map)1692 END SUBROUTINE isotrac_recolorise_saturation 1693 1694 SUBROUTINE isotrac_recolorise_boite(xt,boite_map) 1695 1695 USE dimphy, only: klon,klev 1696 1696 #ifdef ISOVERIF … … 1699 1699 implicit none 1700 1700 1701 ! subroutineécrite à la base pour tagguer 3 boites AMMA.1701 ! SUBROUTINE écrite à la base pour tagguer 3 boites AMMA. 1702 1702 ! Mais ça peut être générique, selon comment est initialisée boite_map 1703 1703 … … 1736 1736 do k=1,klev 1737 1737 do i=1,klon 1738 calliso_verif_traceur(xt(1,i,k),'recolorise 514')1738 CALL iso_verif_traceur(xt(1,i,k),'recolorise 514') 1739 1739 enddo !do i=1,klon 1740 1740 enddo !do k=1,klev … … 1742 1742 1743 1743 return 1744 end subroutineisotrac_recolorise_boite1745 1746 subroutineisotrac_recolorise_extra(xt,rlat)1744 END SUBROUTINE isotrac_recolorise_boite 1745 1746 SUBROUTINE isotrac_recolorise_extra(xt,rlat) 1747 1747 USE dimphy, only: klon,klev 1748 1748 usE isotrac_mod, only: lim_tag20,izone_trop,izone_extra … … 1752 1752 implicit none 1753 1753 1754 ! subroutineécrite pour l'option de taggage 201754 ! SUBROUTINE écrite pour l'option de taggage 20 1755 1755 ! permet de retagguer la vapeur tropicale en vapeur 1756 1756 ! extratropicale dès qu'elle atteint 35° de latitude … … 1783 1783 do k=1,klev 1784 1784 do i=1,klon 1785 calliso_verif_traceur(xt(1,i,k),'recolorise 741')1785 CALL iso_verif_traceur(xt(1,i,k),'recolorise 741') 1786 1786 enddo !do i=1,klon 1787 1787 enddo !do k=1,klev … … 1789 1789 1790 1790 return 1791 end subroutineisotrac_recolorise_extra1792 1793 subroutineisotrac_recolorise_conv(xt,rlat,presnivs,rain_con)1791 END SUBROUTINE isotrac_recolorise_extra 1792 1793 SUBROUTINE isotrac_recolorise_conv(xt,rlat,presnivs,rain_con) 1794 1794 USE dimphy, only: klon,klev 1795 1795 use isotrac_mod, only: lim_precip_tag22, & … … 1800 1800 implicit none 1801 1801 1802 ! subroutineécrite pour l'option de taggage 201802 ! SUBROUTINE écrite pour l'option de taggage 20 1803 1803 ! permet de retagguer la vapeur tropicale en vapeur 1804 1804 ! extratropicale dès qu'elle atteint 35° de latitude … … 1852 1852 do k=1,klev 1853 1853 do i=1,klon 1854 calliso_verif_traceur(xt(1,i,k),'recolorise 741')1854 CALL iso_verif_traceur(xt(1,i,k),'recolorise 741') 1855 1855 enddo !do i=1,klon 1856 1856 enddo !do k=1,klev … … 1858 1858 1859 1859 return 1860 end subroutineisotrac_recolorise_conv1861 1862 1863 subroutineboite_AMMA_init(lat,lon,presnivs,boite_map)1860 END SUBROUTINE isotrac_recolorise_conv 1861 1862 1863 SUBROUTINE boite_AMMA_init(lat,lon,presnivs,boite_map) 1864 1864 USE dimphy, only: klon,klev 1865 1865 #ifdef ISOVERIF … … 1911 1911 1912 1912 return 1913 end subroutineboite_AMMA_init1913 END SUBROUTINE boite_AMMA_init 1914 1914 1915 1915 1916 subroutineboite_UT_extra_init(lat,lon,presnivs,boite_map)1916 SUBROUTINE boite_UT_extra_init(lat,lon,presnivs,boite_map) 1917 1917 USE dimphy, only: klon,klev 1918 1918 use isotrac_mod, only: izone_extra,izone_trop … … 1949 1949 1950 1950 return 1951 end subroutineboite_UT_extra_init1951 END SUBROUTINE boite_UT_extra_init 1952 1952 1953 1953 … … 2008 2008 find_index=nzone_pres 2009 2009 else !if (t(i,k).ge.zone_temp1) then 2010 continu=. true.2010 continu=.TRUE. 2011 2011 find_index=2 2012 2012 do while (continu) 2013 2013 if (pres.ge.zone_pres(find_index)) then 2014 continu=. false.2014 continu=.FALSE. 2015 2015 ! c'est izone_temp, zone trouvée 2016 2016 else … … 2048 2048 end function index_zone_latpres 2049 2049 2050 subroutineiso_recolorise_condensation(qt,cond, &2050 SUBROUTINE iso_recolorise_condensation(qt,cond, & 2051 2051 xt,zxtcond,tcond,ep,xtres, & 2052 2052 seuil_in) … … 2091 2091 #ifdef ISOVERIF 2092 2092 do ixt=1,ntraciso 2093 calliso_verif_positif(xt(ixt)-zxtcond(ixt), &2093 CALL iso_verif_positif(xt(ixt)-zxtcond(ixt), & 2094 2094 'iso_trac 898') 2095 2095 enddo !do ixt=1,ntraciso 2096 calliso_verif_traceur_justmass(xt, &2096 CALL iso_verif_traceur_justmass(xt, & 2097 2097 'iso_trac_routines 906') 2098 calliso_verif_traceur_justmass(zxtcond, &2098 CALL iso_verif_traceur_justmass(zxtcond, & 2099 2099 'iso_trac_routines 908') 2100 2100 #endif 2101 2101 ! bidouille 2102 2102 if (bidouille_anti_divergence) then 2103 calliso_verif_traceur_jbidouille(xt)2104 call iso_verif_traceur_jbidouille(zxtcond)2103 CALL iso_verif_traceur_jbidouille(xt) 2104 CALL iso_verif_traceur_jbidouille(zxtcond) 2105 2105 endif 2106 2106 … … 2115 2115 #ifdef ISOVERIF 2116 2116 do ixt=1,ntraciso 2117 calliso_verif_positif(xtres(ixt), &2117 CALL iso_verif_positif(xtres(ixt), & 2118 2118 'iso_trac_routines 921') 2119 2119 enddo … … 2186 2186 #ifdef ISOVERIF 2187 2187 do ixt=1,ntraciso 2188 calliso_verif_positif(xtres(ixt), &2188 CALL iso_verif_positif(xtres(ixt), & 2189 2189 'iso_trac_routines 940') 2190 2190 enddo … … 2237 2237 #ifdef ISOVERIF 2238 2238 do ixt=1,ntraciso 2239 calliso_verif_positif(xtres(ixt),'iso_trac_routines 953')2239 CALL iso_verif_positif(xtres(ixt),'iso_trac_routines 953') 2240 2240 enddo 2241 2241 if (nzone_temp.ge.5) then … … 2255 2255 2256 2256 return 2257 end subroutineiso_recolorise_condensation2258 2259 subroutinebassin_map_init_opt20(lat,bassin_map)2257 END SUBROUTINE iso_recolorise_condensation 2258 2259 SUBROUTINE bassin_map_init_opt20(lat,bassin_map) 2260 2260 USE dimphy, only: klon 2261 2261 use isotrac_mod, only: izone_cont,izone_trop,lim_tag20 … … 2282 2282 2283 2283 return 2284 end subroutinebassin_map_init_opt202285 2286 subroutineisotrac_recolorise_general(xt_seri,t_seri,zx_rh,presnivs)2284 END SUBROUTINE bassin_map_init_opt20 2285 2286 SUBROUTINE isotrac_recolorise_general(xt_seri,t_seri,zx_rh,presnivs) 2287 2287 USE geometry_mod, ONLY: latitude_deg 2288 2288 USE dimphy, only: klon,klev … … 2297 2297 2298 2298 if (option_traceurs.eq.4) then 2299 callisotrac_recolorise_tmin(xt_seri,t_seri)2299 CALL isotrac_recolorise_tmin(xt_seri,t_seri) 2300 2300 elseif ((option_traceurs.eq.5).or. & 2301 2301 (option_traceurs.eq.21)) then 2302 callisotrac_recolorise_boite(xt_seri,boite_map)2302 CALL isotrac_recolorise_boite(xt_seri,boite_map) 2303 2303 elseif (option_traceurs.eq.13) then 2304 callisotrac_recolorise_tmin_sfrev(xt_seri,t_seri)2304 CALL isotrac_recolorise_tmin_sfrev(xt_seri,t_seri) 2305 2305 elseif (option_traceurs.eq.14) then 2306 callisotrac_recolorise_saturation(xt_seri,zx_rh,latitude_deg,presnivs)2306 CALL isotrac_recolorise_saturation(xt_seri,zx_rh,latitude_deg,presnivs) 2307 2307 elseif (option_traceurs.eq.20) then 2308 callisotrac_recolorise_extra(xt_seri,latitude_deg)2308 CALL isotrac_recolorise_extra(xt_seri,latitude_deg) 2309 2309 endif !if (option_traceurs.eq.4) then 2310 2310 2311 2311 return 2312 end subroutineisotrac_recolorise_general2312 END SUBROUTINE isotrac_recolorise_general 2313 2313 2314 2314 2315 2315 2316 2316 2317 subroutineiso_verif_traceur_jbid_vect(x,n,m)2317 SUBROUTINE iso_verif_traceur_jbid_vect(x,n,m) 2318 2318 USE isotopes_mod, ONLY: bidouille_anti_divergence,iso_eau,ridicule 2319 2319 !use isotrac_mod, only: ntraceurs_zone=>nzone … … 2378 2378 endif !if (bidouille_anti_divergence) then 2379 2379 2380 end subroutineiso_verif_traceur_jbid_vect2381 2382 subroutineiso_verif_traceur_jbidouille(x)2380 END SUBROUTINE iso_verif_traceur_jbid_vect 2381 2382 SUBROUTINE iso_verif_traceur_jbidouille(x) 2383 2383 USE isotopes_mod, ONLY: bidouille_anti_divergence,iso_eau,ridicule 2384 2384 implicit none … … 2416 2416 endif !if (bidouille_anti_divergence) then 2417 2417 2418 end subroutineiso_verif_traceur_jbidouille2419 2420 2421 subroutineiso_verif_traceur_jbid_pos(x)2418 END SUBROUTINE iso_verif_traceur_jbidouille 2419 2420 2421 SUBROUTINE iso_verif_traceur_jbid_pos(x) 2422 2422 USE isotopes_mod, ONLY: bidouille_anti_divergence,iso_eau,ridicule 2423 2423 !#ifdef ISOVERIF … … 2484 2484 enddo !do iiso=1,ntraceurs_iso 2485 2485 #ifdef ISOVERIF 2486 call iso_verif_traceur_pbidouille(x,'iso_verif_trac 558')2486 CALL iso_verif_traceur_pbidouille(x,'iso_verif_trac 558') 2487 2487 #else 2488 call iso_verif_traceur_jbidouille(x)2488 CALL iso_verif_traceur_jbidouille(x) 2489 2489 #endif 2490 2490 endif !if (bidouille_anti_divergence) then 2491 2491 2492 end subroutineiso_verif_traceur_jbid_pos2493 2494 subroutineiso_verif_traceur_jbid_pos_vect(n,m,x)2492 END SUBROUTINE iso_verif_traceur_jbid_pos 2493 2494 SUBROUTINE iso_verif_traceur_jbid_pos_vect(n,m,x) 2495 2495 USE isotopes_mod, ONLY: bidouille_anti_divergence,iso_eau,ridicule 2496 2496 #ifdef ISOVERIF … … 2564 2564 enddo !do iiso=1,ntraceurs_iso 2565 2565 #ifdef ISOVERIF 2566 call iso_verif_traceur_pbid_vect(x,n,m,'iso_verif_trac 558')2566 CALL iso_verif_traceur_pbid_vect(x,n,m,'iso_verif_trac 558') 2567 2567 #else 2568 call iso_verif_traceur_jbid_vect(x,n,m)2568 CALL iso_verif_traceur_jbid_vect(x,n,m) 2569 2569 #endif 2570 2570 endif !if (bidouille_anti_divergence) then 2571 2571 2572 end subroutineiso_verif_traceur_jbid_pos_vect2573 2574 subroutineiso_verif_traceur_jbid_pos2(x,q)2572 END SUBROUTINE iso_verif_traceur_jbid_pos_vect 2573 2574 SUBROUTINE iso_verif_traceur_jbid_pos2(x,q) 2575 2575 USE isotopes_mod, ONLY: bidouille_anti_divergence,iso_eau,ridicule 2576 2576 #ifdef ISOVERIF … … 2631 2631 endif !if (dqtmp.gt.0.0) then 2632 2632 #ifdef ISOVERIF 2633 call iso_verif_traceur(x,'iso_verif_traceurs 612')2633 CALL iso_verif_traceur(x,'iso_verif_traceurs 612') 2634 2634 #endif 2635 2635 endif !if (local_q(i,k).lt.0.0) then 2636 2636 2637 2637 #ifdef ISOVERIF 2638 call iso_verif_traceur_pbidouille(x,'iso_verif_trac 625')2638 CALL iso_verif_traceur_pbidouille(x,'iso_verif_trac 625') 2639 2639 #endif 2640 2640 endif ! if (bidouille_anti_divergence) then 2641 2641 2642 end subroutineiso_verif_traceur_jbid_pos22643 2644 subroutineiso_verif_traceur_jbid_vect1D(x,n)2642 END SUBROUTINE iso_verif_traceur_jbid_pos2 2643 2644 SUBROUTINE iso_verif_traceur_jbid_vect1D(x,n) 2645 2645 USE isotopes_mod, ONLY: bidouille_anti_divergence,iso_eau,ridicule 2646 2646 implicit none … … 2680 2680 endif !if (bidouille_anti_divergence) then 2681 2681 2682 end subroutineiso_verif_traceur_jbid_vect1D2682 END SUBROUTINE iso_verif_traceur_jbid_vect1D 2683 2683 2684 2684 ! on met ces routines ici pour éviter dépendances circulaires 2685 2685 #ifdef ISOVERIF 2686 2686 2687 subroutineiso_verif_traceur_pbidouille(x,err_msg)2687 SUBROUTINE iso_verif_traceur_pbidouille(x,err_msg) 2688 2688 use isotopes_verif_mod 2689 2689 implicit none … … 2708 2708 endif 2709 2709 2710 end subroutineiso_verif_traceur_pbidouille2710 END SUBROUTINE iso_verif_traceur_pbidouille 2711 2711 2712 2712 function iso_verif_traceur_pbid_ns(x,err_msg) … … 2758 2758 ! on réajuste pour que les traceurs fasses bien la somme 2759 2759 ! des traceurs 2760 calliso_verif_traceur_jbidouille(x)2760 CALL iso_verif_traceur_jbidouille(x) 2761 2761 endif !if (bidouille_anti_divergence) then 2762 2762 … … 2772 2772 end function iso_verif_traceur_pbid_ns 2773 2773 2774 subroutineiso_verif_traceur_pbid_vect(x,n,m,err_msg)2774 SUBROUTINE iso_verif_traceur_pbid_vect(x,n,m,err_msg) 2775 2775 use isotopes_mod, ONLY: iso_HDO,bidouille_anti_divergence 2776 2776 use isotopes_verif_mod … … 2787 2787 2788 2788 ! verif noNaN 2789 calliso_verif_traceur_noNaN_vect(x,n,m,err_msg)2789 CALL iso_verif_traceur_noNaN_vect(x,n,m,err_msg) 2790 2790 2791 2791 ! verif masse 2792 calliso_verif_trac_masse_vect(x,n,m,err_msg,errmax*10, &2792 CALL iso_verif_trac_masse_vect(x,n,m,err_msg,errmax*10, & 2793 2793 errmaxrel*50) 2794 2794 … … 2796 2796 ! on réajuste pour que les traceurs fasses bien la somme 2797 2797 ! des traceurs 2798 calliso_verif_traceur_jbid_vect(x,n,m)2798 CALL iso_verif_traceur_jbid_vect(x,n,m) 2799 2799 endif !if (bidouille_anti_divergence) then 2800 2800 2801 2801 ! verif deltaD 2802 2802 if (iso_HDO.gt.0) then 2803 call iso_verif_tracdd_vect(x,n,m,err_msg)2803 CALL iso_verif_tracdd_vect(x,n,m,err_msg) 2804 2804 endif 2805 2805 2806 end subroutineiso_verif_traceur_pbid_vect2806 END SUBROUTINE iso_verif_traceur_pbid_vect 2807 2807 #endif 2808 2808
Note: See TracChangeset
for help on using the changeset viewer.