Changeset 1146 for LMDZ4/trunk/libf/dyn3dpar/leapfrog_p.F
- Timestamp:
- Apr 9, 2009, 12:11:35 PM (15 years ago)
- Location:
- LMDZ4/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk
-
Property
svn:mergeinfo
set to
/LMDZ4/branches/LMDZ4-dev merged eligible
-
Property
svn:mergeinfo
set to
-
LMDZ4/trunk/libf/dyn3dpar/leapfrog_p.F
r1000 r1146 4 4 c 5 5 c 6 #define IO_DEBUG 7 8 #undef CPP_IOIPSL 9 #define CPP_IOIPSL 10 11 SUBROUTINE leapfrog_p(ucov,vcov,teta,ps,masse,phis,nq,q,clesphy0, 6 7 SUBROUTINE leapfrog_p(ucov,vcov,teta,ps,masse,phis,q,clesphy0, 12 8 & time_0) 13 9 … … 21 17 USE vampir 22 18 USE timer_filtre, ONLY : print_filtre_timer 19 USE infotrac 23 20 24 21 IMPLICIT NONE … … 69 66 #include "com_io_dyn.h" 70 67 #include "iniprint.h" 71 72 c#include "tracstoke.h"73 74 68 #include "academic.h" 75 !#include "clesphys.h"76 #include "advtrac.h"77 69 78 integer nq79 80 70 INTEGER longcles 81 71 PARAMETER ( longcles = 20 ) … … 88 78 REAL :: vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants 89 79 REAL :: teta(ip1jmp1,llm) ! temperature potentielle 90 REAL :: q(ip1jmp1,llm,nq mx)! champs advectes80 REAL :: q(ip1jmp1,llm,nqtot) ! champs advectes 91 81 REAL :: ps(ip1jmp1) ! pression au sol 92 82 REAL,SAVE :: p (ip1jmp1,llmp1 ) ! pression aux interfac.des couches … … 109 99 c tendances dynamiques 110 100 REAL,SAVE :: dv(ip1jm,llm),du(ip1jmp1,llm) 111 REAL,SAVE :: dteta(ip1jmp1,llm),dq(ip1jmp1,llm,nqmx),dp(ip1jmp1) 101 REAL,SAVE :: dteta(ip1jmp1,llm),dp(ip1jmp1) 102 REAL,DIMENSION(:,:,:), ALLOCATABLE, SAVE :: dq 112 103 113 104 c tendances de la dissipation … … 118 109 REAL,SAVE :: dvfi(ip1jm,llm),dufi(ip1jmp1,llm) 119 110 REAL,SAVE :: dtetafi(ip1jmp1,llm) 120 REAL,SAVE :: dqfi(ip1jmp1,llm,nqmx),dpfi(ip1jmp1) 111 REAL,SAVE :: dpfi(ip1jmp1) 112 REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: dqfi 121 113 122 114 c variables pour le fichier histoire … … 186 178 type(Request) :: Request_physic 187 179 REAL,SAVE :: dvfi_tmp(iip1,llm),dufi_tmp(iip1,llm) 188 REAL,SAVE :: dtetafi_tmp(iip1,llm),dqfi_tmp(iip1,llm,nqmx) 180 REAL,SAVE :: dtetafi_tmp(iip1,llm) 181 REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: dqfi_tmp 189 182 REAL,SAVE :: dpfi_tmp(iip1) 190 183 … … 195 188 INTEGER :: var_time 196 189 LOGICAL :: ok_start_timer=.FALSE. 190 LOGICAL, SAVE :: firstcall=.TRUE. 197 191 198 192 c$OMP MASTER … … 208 202 itaufin = nday*day_step 209 203 itaufinp1 = itaufin +1 210 204 modname="leapfrog_p" 211 205 212 206 itau = 0 … … 217 211 iday = iday+1 218 212 ENDIF 213 214 c Allocate variables depending on dynamic variable nqtot 215 c$OMP MASTER 216 IF (firstcall) THEN 217 firstcall=.FALSE. 218 ALLOCATE(dq(ip1jmp1,llm,nqtot)) 219 ALLOCATE(dqfi(ip1jmp1,llm,nqtot)) 220 ALLOCATE(dqfi_tmp(iip1,llm,nqtot)) 221 END IF 222 c$OMP END MASTER 223 c$OMP BARRIER 219 224 220 225 c----------------------------------------------------------------------- … … 276 281 c$OMP BARRIER 277 282 else 278 283 ! Save fields obtained at previous time step as '...m1' 279 284 ijb=ij_begin 280 285 ije=ij_end … … 303 308 . llm, -2,2, .TRUE., 1 ) 304 309 305 endif 310 endif ! of if (FirstCaldyn) 306 311 307 312 forward = .TRUE. … … 347 352 IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE. 348 353 IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward 349 s .and. iflag_phys. NE.0) apphys = .TRUE.354 s .and. iflag_phys.EQ.1 ) apphys = .TRUE. 350 355 ELSE 351 356 IF( MOD(itau ,iconser) .EQ. 0 ) conser = .TRUE. 352 357 IF( MOD(itau+1,idissip) .EQ. 0 ) apdiss = .TRUE. 353 IF( MOD(itau+1,iphysiq).EQ.0.AND.iflag_phys. NE.0) apphys=.TRUE.358 IF( MOD(itau+1,iphysiq).EQ.0.AND.iflag_phys.EQ.1) apphys=.TRUE. 354 359 END IF 355 360 … … 455 460 & jj_Nb_caldyn,0,0,TestRequest) 456 461 457 do j=1,nq mx462 do j=1,nqtot 458 463 call Register_SwapFieldHallo(q(1,1,j),q(1,1,j),ip1jmp1,llm, 459 464 & jj_nb_caldyn,0,0,TestRequest) … … 490 495 call Register_Hallo(p,ip1jmp1,llmp1,1,1,1,1,TestRequest) 491 496 492 c do j=1,nq mx497 c do j=1,nqtot 493 498 c call Register_Hallo(q(1,1,j),ip1jmp1,llm,1,1,1,1, 494 499 c * TestRequest) … … 516 521 call WriteField_p('pkf',reshape(pkf,(/iip1,jmp1,llm/))) 517 522 call WriteField_p('phis',reshape(phis,(/iip1,jmp1/))) 518 do j=1,nq mx523 do j=1,nqtot 519 524 call WriteField_p('q'//trim(int2str(j)), 520 525 . reshape(q(:,:,j),(/iip1,jmp1,llm/))) … … 528 533 529 534 c$OMP MASTER 530 print*,"Iteration No",True_itau 535 IF (prt_level>9) THEN 536 WRITE(lunout,*)"leapfrog_p: Iteration No",True_itau 537 ENDIF 531 538 532 539 … … 585 592 586 593 587 ENDIF 588 c 589 ENDIF 594 ENDIF ! of IF (offline) 595 c 596 ENDIF ! of IF( forward. OR . leapf ) 590 597 cc$OMP END PARALLEL 591 598 … … 608 615 c$OMP BARRIER 609 616 ! CALL FTRACE_REGION_BEGIN("integrd") 617 610 618 CALL integrd_p ( 2,vcovm1,ucovm1,tetam1,psm1,massem1 , 611 619 $ dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps,masse,phis , … … 625 633 c 626 634 c call WriteField_p('ps',reshape(ps,(/iip1,jmp1/))) 627 c do j=1,nq mx635 c do j=1,nqtot 628 636 c call WriteField_p('q'//trim(int2str(j)), 629 637 c . reshape(q(:,:,j),(/iip1,jmp1,llm/))) … … 663 671 c$OMP MASTER 664 672 call suspend_timer(timer_caldyn) 665 print*,'Entree dans la physique : Iteration No ',true_itau 673 674 write(lunout,*) 675 & 'leapfrog_p: Entree dans la physique : Iteration No ',true_itau 666 676 c$OMP END MASTER 667 677 … … 669 679 670 680 c$OMP BARRIER 671 672 681 CALL exner_hyb_p( ip1jmp1, ps, p,alpha,beta,pks, pk, pkf ) 673 682 c$OMP BARRIER … … 683 692 c ----------------------------------------------------- 684 693 685 #ifdef CPP_PHYS686 694 c+jld 687 695 … … 689 697 IF (ip_ebil_dyn.ge.1 ) THEN 690 698 ztit='bil dyn' 691 CALL diagedyn(ztit,2,1,1,dtphys 692 e , ucov , vcov , ps, p ,pk , teta , q(:,:,1), q(:,:,2)) 699 ! Ehouarn: be careful, diagedyn is Earth-specific (includes ../phylmd/..)! 700 IF (planet_type.eq."earth") THEN 701 CALL diagedyn(ztit,2,1,1,dtphys 702 & , ucov , vcov , ps, p ,pk , teta , q(:,:,1), q(:,:,2)) 703 ENDIF 693 704 ENDIF 694 705 c-jld … … 725 736 726 737 c call SetDistrib(jj_nb_vanleer) 727 do j=1,nq mx738 do j=1,nqtot 728 739 729 740 call Register_SwapFieldHallo(q(1,1,j),q(1,1,j),ip1jmp1,llm, … … 756 767 cc$OMP BARRIER 757 768 ! CALL FTRACE_REGION_BEGIN("calfis") 758 CALL calfis_p( nq,lafin ,rdayvrai,time ,769 CALL calfis_p(lafin ,rdayvrai,time , 759 770 $ ucov,vcov,teta,q,masse,ps,p,pk,phis,phi , 760 771 $ du,dv,dteta,dq, … … 777 788 dpfi_tmp(1:iip1) = dpfi(ijb:ijb+iim) 778 789 c$OMP END MASTER 779 endif 790 endif ! of if ( .not. pole_nord) 780 791 781 792 c$OMP BARRIER … … 799 810 * 1,0,0,1,Request_physic) 800 811 801 do j=1,nq mx812 do j=1,nqtot 802 813 call Register_Hallo(dqfi(1,1,j),ip1jmp1,llm, 803 814 * 1,0,0,1,Request_physic) … … 833 844 c$OMP END MASTER 834 845 835 endif 846 endif ! of if (.not. pole_nord) 836 847 c$OMP BARRIER 837 848 cc$OMP MASTER … … 842 853 cc$OMP END MASTER 843 854 c 844 c do j=1,nq mx855 c do j=1,nqtot 845 856 c call WriteField_p('dqfi'//trim(int2str(j)), 846 857 c . reshape(dqfi(:,:,j),(/iip1,jmp1,llm/))) … … 853 864 ENDIF 854 865 855 CALL addfi_p( nqmx,dtphys, leapf, forward ,866 CALL addfi_p( dtphys, leapf, forward , 856 867 $ ucov, vcov, teta , q ,ps , 857 868 $ dufi, dvfi, dtetafi , dqfi ,dpfi ) … … 889 900 * jj_Nb_caldyn,Request_physic) 890 901 891 do j=1,nq mx902 do j=1,nqtot 892 903 893 904 call Register_SwapField(q(1,1,j),q(1,1,j),ip1jmp1,llm, … … 922 933 cc$OMP END MASTER 923 934 924 #else 925 935 936 c-jld 937 c$OMP MASTER 938 call resume_timer(timer_caldyn) 939 if (FirstPhysic) then 940 ok_start_timer=.TRUE. 941 FirstPhysic=.false. 942 endif 943 c$OMP END MASTER 944 ENDIF ! of IF( apphys ) 945 946 IF(iflag_phys.EQ.2) THEN ! "Newtonian" case 926 947 c Calcul academique de la physique = Rappel Newtonien + fritcion 927 948 c -------------------------------------------------------------- … … 939 960 940 961 call friction_p(ucov,vcov,iphysiq*dtvr) 941 942 #endif 943 944 c-jld 945 c$OMP MASTER 946 call resume_timer(timer_caldyn) 947 if (FirstPhysic) then 948 ok_start_timer=.TRUE. 949 FirstPhysic=.false. 950 endif 951 c$OMP END MASTER 952 ENDIF 962 ENDIF ! of IF(iflag_phys.EQ.2) 963 953 964 954 965 CALL pression_p ( ip1jmp1, ap, bp, ps, p ) 955 966 c$OMP BARRIER 956 957 958 967 CALL exner_hyb_p( ip1jmp1, ps, p,alpha,beta, pks, pk, pkf ) 959 968 c$OMP BARRIER … … 1285 1294 ENDIF 1286 1295 #ifdef CPP_IOIPSL 1296 IF (ok_dynzon) THEN 1287 1297 call Register_Hallo(vcov,ip1jm,llm,1,0,0,1,TestRequest) 1288 1298 call SendRequest(TestRequest) … … 1291 1301 c$OMP BARRIER 1292 1302 c$OMP MASTER 1293 CALL writedynav_p(histaveid, nqmx,itau,vcov ,1303 CALL writedynav_p(histaveid, itau,vcov , 1294 1304 , ucov,teta,pk,phi,q,masse,ps,phis) 1295 c$OMP END MASTER 1296 1305 1306 c ATTENTION!!! bilan_dyn_p ne marche probablement pas avec OpenMP 1307 CALL bilan_dyn_p(2,dtvr*iperiod,dtvr*day_step*periodav, 1308 , ps,masse,pk,pbaru,pbarv,teta,phi,ucov,vcov,q) 1309 c$OMP END MASTER 1310 ENDIF !ok_dynzon 1297 1311 #endif 1298 1312 ENDIF … … 1304 1318 c IF( MOD(itau,iecri ).EQ.0) THEN 1305 1319 1306 IF( MOD(itau,iecri*day_step).EQ.0) THEN1307 c$OMP BARRIER 1308 c$OMP MASTER 1309 1310 CALL geopot_p ( ip1jmp1, teta , pk , pks, phis , phi)1320 IF( MOD(itau,iecri*day_step).EQ.0) THEN 1321 c$OMP BARRIER 1322 c$OMP MASTER 1323 nbetat = nbetatdem 1324 CALL geopot_p(ip1jmp1,teta,pk,pks,phis,phi) 1311 1325 1312 1326 cym unat=0. 1313 1327 1314 ijb=ij_begin1315 ije=ij_end1316 1317 if (pole_nord) then1318 ijb=ij_begin+iip11319 unat(1:iip1,:)=0.1320 endif1321 1322 if (pole_sud) then1323 ije=ij_end-iip11324 unat(ij_end-iip1+1:ij_end,:)=0.1325 endif1328 ijb=ij_begin 1329 ije=ij_end 1330 1331 if (pole_nord) then 1332 ijb=ij_begin+iip1 1333 unat(1:iip1,:)=0. 1334 endif 1335 1336 if (pole_sud) then 1337 ije=ij_end-iip1 1338 unat(ij_end-iip1+1:ij_end,:)=0. 1339 endif 1326 1340 1327 do l=1,llm1328 unat(ijb:ije,l)=ucov(ijb:ije,l)/cu(ijb:ije)1329 enddo1330 1331 ijb=ij_begin1332 ije=ij_end1333 if (pole_sud) ije=ij_end-iip11334 1335 do l=1,llm1336 vnat(ijb:ije,l)=vcov(ijb:ije,l)/cv(ijb:ije)1337 enddo1341 do l=1,llm 1342 unat(ijb:ije,l)=ucov(ijb:ije,l)/cu(ijb:ije) 1343 enddo 1344 1345 ijb=ij_begin 1346 ije=ij_end 1347 if (pole_sud) ije=ij_end-iip1 1348 1349 do l=1,llm 1350 vnat(ijb:ije,l)=vcov(ijb:ije,l)/cv(ijb:ije) 1351 enddo 1338 1352 1339 1353 #ifdef CPP_IOIPSL 1340 1354 1341 CALL writehist_p(histid,histvid, nqmx,itau,vcov,1342 sucov,teta,phi,q,masse,ps,phis)1355 CALL writehist_p(histid,histvid, itau,vcov, 1356 & ucov,teta,phi,q,masse,ps,phis) 1343 1357 1344 1358 #endif 1345 c$OMP END MASTER 1346 ENDIF 1359 ! For some Grads outputs of fields 1360 if (output_grads_dyn) then 1361 ! Ehouarn: hope this works the way I think it does: 1362 call Gather_Field(unat,ip1jmp1,llm,0) 1363 call Gather_Field(vnat,ip1jm,llm,0) 1364 call Gather_Field(teta,ip1jmp1,llm,0) 1365 call Gather_Field(ps,ip1jmp1,1,0) 1366 do iq=1,nqtot 1367 call Gather_Field(q(1,1,iq),ip1jmp1,llm,0) 1368 enddo 1369 if (mpi_rank==0) then 1370 #include "write_grads_dyn.h" 1371 endif 1372 endif ! of if (output_grads_dyn) 1373 c$OMP END MASTER 1374 ENDIF ! of IF(MOD(itau,iecri).EQ.0) 1347 1375 1348 1376 IF(itau.EQ.itaufin) THEN … … 1351 1379 c$OMP MASTER 1352 1380 1353 c#ifdef CPP_IOIPSL 1354 1355 CALL dynredem1_p("restart.nc",0.0, 1356 , vcov,ucov,teta,q,nqmx,masse,ps) 1357 c#endif 1381 if (planet_type.eq."earth") then 1382 #ifdef CPP_EARTH 1383 ! Write an Earth-format restart file 1384 CALL dynredem1_p("restart.nc",0.0, 1385 & vcov,ucov,teta,q,masse,ps) 1386 1387 #endif 1388 endif ! of if (planet_type.eq."earth") 1358 1389 1359 1390 CLOSE(99) 1360 1391 c$OMP END MASTER 1361 ENDIF 1392 ENDIF ! of IF (itau.EQ.itaufin) 1362 1393 1363 1394 c----------------------------------------------------------------------- … … 1390 1421 dt = 2.*dtvr 1391 1422 GO TO 2 1392 END IF 1393 1394 ELSE 1423 END IF ! of IF (MOD(itau,iperiod).EQ.0) 1424 ! ELSEIF (MOD(itau-1,iperiod).EQ.0) 1425 1426 1427 ELSE ! of IF (.not.purmats) 1395 1428 1396 1429 c ........................................................ … … 1419 1452 GO TO 2 1420 1453 1421 ELSE 1422 1423 IF(MOD(itau,iperiod).EQ.0 .OR. itau.EQ.itaufin) THEN1454 ELSE ! of IF(forward) 1455 1456 IF(MOD(itau,iperiod).EQ.0 .OR. itau.EQ.itaufin) THEN 1424 1457 IF(itau.EQ.itaufin) THEN 1425 1458 iav=1 … … 1428 1461 ENDIF 1429 1462 #ifdef CPP_IOIPSL 1430 c$OMP BARRIER 1431 1432 call Register_Hallo(vcov,ip1jm,llm,1,0,0,1,TestRequest) 1433 call SendRequest(TestRequest) 1434 c$OMP BARRIER 1435 call WaitRequest(TestRequest) 1436 1437 c$OMP BARRIER 1438 c$OMP MASTER 1439 CALL writedynav_p(histaveid, nqmx, itau,vcov , 1463 IF (ok_dynzon) THEN 1464 c$OMP BARRIER 1465 1466 call Register_Hallo(vcov,ip1jm,llm,1,0,0,1,TestRequest) 1467 call SendRequest(TestRequest) 1468 c$OMP BARRIER 1469 call WaitRequest(TestRequest) 1470 1471 c$OMP BARRIER 1472 c$OMP MASTER 1473 CALL writedynav_p(histaveid, itau,vcov , 1440 1474 , ucov,teta,pk,phi,q,masse,ps,phis) 1441 call bilan_dyn_p(2,dtvr*iperiod,dtvr*day_step*periodav,1475 CALL bilan_dyn_p(2,dtvr*iperiod,dtvr*day_step*periodav, 1442 1476 , ps,masse,pk,pbaru,pbarv,teta,phi,ucov,vcov,q) 1443 1477 c$OMP END MASTER 1478 END IF !ok_dynzon 1444 1479 #endif 1445 ENDIF 1480 ENDIF ! of IF(MOD(itau,iperiod).EQ.0 .OR. itau.EQ.itaufin) 1481 1446 1482 1447 1483 c IF(MOD(itau,iecri ).EQ.0) THEN … … 1449 1485 c$OMP BARRIER 1450 1486 c$OMP MASTER 1451 1452 CALL geopot_p( ip1jmp1, teta , pk , pks, phis , phi)1487 nbetat = nbetatdem 1488 CALL geopot_p(ip1jmp1,teta,pk,pks,phis,phi) 1453 1489 1454 1490 cym unat=0. 1455 ijb=ij_begin1456 ije=ij_end1457 1458 if (pole_nord) then1459 ijb=ij_begin+iip11460 unat(1:iip1,:)=0.1461 endif1462 1463 if (pole_sud) then1464 ije=ij_end-iip11465 unat(ij_end-iip1+1:ij_end,:)=0.1466 endif1491 ijb=ij_begin 1492 ije=ij_end 1493 1494 if (pole_nord) then 1495 ijb=ij_begin+iip1 1496 unat(1:iip1,:)=0. 1497 endif 1498 1499 if (pole_sud) then 1500 ije=ij_end-iip1 1501 unat(ij_end-iip1+1:ij_end,:)=0. 1502 endif 1467 1503 1468 do l=1,llm1469 unat(ijb:ije,l)=ucov(ijb:ije,l)/cu(ijb:ije)1470 enddo1471 1472 ijb=ij_begin1473 ije=ij_end1474 if (pole_sud) ije=ij_end-iip11475 1476 do l=1,llm1477 vnat(ijb:ije,l)=vcov(ijb:ije,l)/cv(ijb:ije)1478 enddo1504 do l=1,llm 1505 unat(ijb:ije,l)=ucov(ijb:ije,l)/cu(ijb:ije) 1506 enddo 1507 1508 ijb=ij_begin 1509 ije=ij_end 1510 if (pole_sud) ije=ij_end-iip1 1511 1512 do l=1,llm 1513 vnat(ijb:ije,l)=vcov(ijb:ije,l)/cv(ijb:ije) 1514 enddo 1479 1515 1480 1516 #ifdef CPP_IOIPSL 1481 1517 1482 CALL writehist_p( histid, histvid, nqmx, itau,vcov , 1483 , ucov,teta,phi,q,masse,ps,phis) 1484 c#else 1485 c call Gather_Field(unat,ip1jmp1,llm,0) 1486 c call Gather_Field(vnat,ip1jm,llm,0) 1487 c call Gather_Field(teta,ip1jmp1,llm,0) 1488 c call Gather_Field(ps,ip1jmp1,1,0) 1489 c do iq=1,nqmx 1490 c call Gather_Field(q(1,1,iq),ip1jmp1,llm,0) 1491 c enddo 1518 CALL writehist_p(histid, histvid, itau,vcov , 1519 & ucov,teta,phi,q,masse,ps,phis) 1520 #endif 1521 ! For some Grads output (but does it work?) 1522 if (output_grads_dyn) then 1523 call Gather_Field(unat,ip1jmp1,llm,0) 1524 call Gather_Field(vnat,ip1jm,llm,0) 1525 call Gather_Field(teta,ip1jmp1,llm,0) 1526 call Gather_Field(ps,ip1jmp1,1,0) 1527 do iq=1,nqtot 1528 call Gather_Field(q(1,1,iq),ip1jmp1,llm,0) 1529 enddo 1492 1530 c 1493 c if (mpi_rank==0) then 1494 c#include "write_grads_dyn.h" 1495 c endif 1531 if (mpi_rank==0) then 1532 #include "write_grads_dyn.h" 1533 endif 1534 endif ! of if (output_grads_dyn) 1535 1536 c$OMP END MASTER 1537 ENDIF ! of IF(MOD(itau,iecri*day_step).EQ.0) 1538 1539 IF(itau.EQ.itaufin) THEN 1540 if (planet_type.eq."earth") then 1541 #ifdef CPP_EARTH 1542 c$OMP MASTER 1543 CALL dynredem1_p("restart.nc",0.0, 1544 . vcov,ucov,teta,q,masse,ps) 1545 c$OMP END MASTER 1496 1546 #endif 1497 1498 c$OMP END MASTER 1499 ENDIF 1500 1501 IF(itau.EQ.itaufin) THEN 1502 c$OMP MASTER 1503 CALL dynredem1_p("restart.nc",0.0, 1504 . vcov,ucov,teta,q,nqmx,masse,ps) 1505 c$OMP END MASTER 1506 ENDIF 1507 forward = .TRUE. 1508 GO TO 1 1509 1510 ENDIF 1511 1512 END IF 1513 c$OMP MASTER 1514 call finalize_parallel 1515 c$OMP END MASTER 1516 RETURN 1547 endif ! of if (planet_type.eq."earth") 1548 ENDIF ! of IF(itau.EQ.itaufin) 1549 1550 forward = .TRUE. 1551 GO TO 1 1552 1553 ENDIF ! of IF (forward) 1554 1555 END IF ! of IF(.not.purmats) 1556 c$OMP MASTER 1557 call finalize_parallel 1558 c$OMP END MASTER 1559 RETURN 1517 1560 END
Note: See TracChangeset
for help on using the changeset viewer.