Changeset 2671 for vendors/AGRIF/current/AGRIF_FILES/modutil.F
- Timestamp:
- 2011-03-08T15:08:49+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendors/AGRIF/current/AGRIF_FILES/modutil.F
r1901 r2671 1 1 ! 2 ! $Id: modutil.F 1793 2010-01-06 19:20:12Z rblod $2 ! $Id: modutil.F 662 2007-05-25 15:58:52Z opalod $ 3 3 ! 4 4 C Agrif (Adaptive Grid Refinement In Fortran) … … 63 63 C 64 64 #ifdef AGRIF_MPI 65 Logical :: mpi_was_called 66 Integer :: code, ierr 65 Integer :: code 67 66 #include "mpif.h" 68 67 C 69 68 C 70 Call Agrif_comm_def(mpi_comm_agrif)71 72 CALL mpi_initialized ( mpi_was_called, code )73 IF( code /= MPI_SUCCESS ) THEN74 WRITE(*, *) ': Error in routine mpi_initialized'75 CALL mpi_abort( mpi_comm_world, code, ierr )76 ENDIF77 78 IF( .NOT. mpi_was_called ) THEN79 CALL mpi_comm_dup( mpi_comm_world, mpi_comm_agrif, code)80 IF( code /= MPI_SUCCESS ) THEN81 WRITE(*, *) ' Agrif_Step: Error in routine mpi_comm_dup'82 CALL mpi_abort( mpi_comm_world, code, ierr )83 ENDIF84 ENDIF85 86 69 If (Agrif_Mygrid % ngridstep == 0) Then 87 Call MPI_COMM_SIZE(MPI_COMM_ AGRIF,Agrif_Nbprocs,code)88 Call MPI_COMM_RANK(MPI_COMM_ AGRIF,Agrif_ProcRank,code)89 Call MPI_COMM_GROUP(MPI_COMM_ AGRIF,Agrif_Group,code)70 Call MPI_COMM_SIZE(MPI_COMM_WORLD,Agrif_Nbprocs,code) 71 Call MPI_COMM_RANK(MPI_COMM_WORLD,Agrif_ProcRank,code) 72 Call MPI_COMM_GROUP(MPI_COMM_WORLD,Agrif_Group,code) 90 73 endif 91 74 #endif … … 234 217 C 235 218 if ( Agrif_USE_ONLY_FIXED_GRIDS .EQ. 0 ) then 219 C 220 Call Agrif_Save_All(Agrif_oldmygrid) 236 221 C 237 222 Call Agrif_Free_before_All(Agrif_oldmygrid) … … 322 307 C Detection (Agrif_detect is a user s routine) 323 308 C 309 324 310 do iii = 1 , Agrif_Probdim 325 311 size(iii) = g%nb(iii) + 1 … … 440 426 C 441 427 End Subroutine Agrif_Free_before_All 428 C ************************************************************************** 429 CCC Subroutine Agrif_Save_All 430 C ************************************************************************** 431 C 432 Recursive Subroutine Agrif_Save_All(g) 433 C 434 CCC Description: 435 C 436 CC Method: 437 C 438 C Declarations: 439 C 440 C Pointer argument 441 Type(Agrif_pgrid),pointer :: g ! Pointer on the current grid 442 C 443 C Local pointer 444 Type(Agrif_pgrid),pointer :: parcours ! Pointer for the recursive 445 ! procedure 446 C 447 C 448 parcours => g 449 C 450 Do while (associated(parcours)) 451 If (.not. parcours%gr%fixed) Then 452 Call Agrif_Instance(parcours%gr) 453 Call Agrif_Before_Regridding() 454 parcours % gr % oldgrid = .TRUE. 455 endif 456 C 457 Call Agrif_Save_All (parcours % gr % child_grids) 458 C 459 parcours => parcours % next 460 enddo 461 C 462 Return 463 C 464 C 465 End Subroutine Agrif_Save_All 442 466 C 443 467 C … … 710 734 C The root coarse grid is a fixed grid 711 735 Agrif_Mygrid % fixed = .TRUE. 736 C Level of the root grid 737 Agrif_Mygrid % level = 0 738 C Maximum level in the hierarchy 739 Agrif_MaxLevelLoc = 0 740 712 741 C 713 742 C Number of the grid pointed by Agrif_Mygrid (root coarse grid) … … 724 753 Call Agrif_Set_numberofcells(Agrif_Mygrid) 725 754 C 726 Call Agrif_Instance (Agrif_Mygrid) 755 Call Agrif_Instance (Agrif_Mygrid) 756 C 757 Call Agrif_Set_numberofcells(Agrif_Mygrid) 727 758 C 728 759 C Allocation of the array containing the values of the grid variables 729 760 Call Agrif_Allocation (Agrif_Mygrid) 730 761 C 731 Call Agrif_initialisations(Agrif_Mygrid) 762 Call Agrif_initialisations(Agrif_Mygrid) 732 763 C 733 764 nullify(Agrif_Mygrid % child_grids) … … 759 790 C 760 791 do nb = 1, Agrif_NbVariables 761 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % array1) )792 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % array1) ) 762 793 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % array1) 763 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % array2) )794 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % array2) ) 764 795 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % array2) 765 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % array3) )796 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % array3) ) 766 797 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % array3) 767 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % array4) )798 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % array4) ) 768 799 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % array4) 769 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % array5) )800 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % array5) ) 770 801 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % array5) 771 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % array6) )802 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % array6) ) 772 803 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % array6) 773 804 C 774 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % iarray1) )805 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % iarray1) ) 775 806 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % iarray1) 776 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % iarray2) )807 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % iarray2) ) 777 808 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % iarray2) 778 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % iarray3) )809 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % iarray3) ) 779 810 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % iarray3) 780 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % iarray4) )811 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % iarray4) ) 781 812 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % iarray4) 782 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % iarray5) )813 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % iarray5) ) 783 814 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % iarray5) 784 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % iarray6) )815 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % iarray6) ) 785 816 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % iarray6) 786 817 C 787 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % larray1) )818 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % larray1) ) 788 819 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % larray1) 789 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % larray2) )820 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % larray2) ) 790 821 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % larray2) 791 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % larray3) )822 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % larray3) ) 792 823 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % larray3) 793 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % larray4) )824 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % larray4) ) 794 825 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % larray4) 795 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % larray5) )826 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % larray5) ) 796 827 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % larray5) 797 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % larray6) )828 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % larray6) ) 798 829 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % larray6) 799 830 C 800 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % carray1) )831 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % carray1) ) 801 832 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % carray1) 802 if ( a ssociated(Agrif_Mygrid % tabvars(nb) % var % carray2) )833 if ( allocated(Agrif_Mygrid % tabvars(nb) % var % carray2) ) 803 834 & Deallocate(Agrif_Mygrid % tabvars(nb) % var % carray2) 804 835 enddo
Note: See TracChangeset
for help on using the changeset viewer.