| 
                Last change
                  on this file since 1760 was
                  1615,
                  checked in by Ehouarn Millour, 14 years ago
           | 
        
        
          | 
               
Introducing "phydev", the minimal physics package. 
makegcm and makelmdz_fcm script have been updated to add CPP_PHYS preprocessing key when building with physics and CPP_EARTH for Earth (LMD physics) related routines or instructions in the dynamics. 
Checked (on Vargas) that "dev" physics package compiles and runs well in all (seq/mpi/omp/mpi_omp) modes and that introduced changes do not modify results when using the "lmd" physics package. 
EM + FH 
 
           | 
        
        
          
            
              - 
                  Property svn:eol-style set to
                  
native
               - 
                  Property svn:keywords set to
                  
Author Date Id Revision
               
             
           | 
        
        | 
            File size:
            995 bytes
           | 
      
      
        
  | Line |   | 
|---|
| 1 | !  | 
|---|
| 2 | ! $Id: mod_interface_dyn_phys.F90 1615 2012-02-10 15:42:26Z musat $ | 
|---|
| 3 | ! | 
|---|
| 4 | MODULE mod_interface_dyn_phys | 
|---|
| 5 |   INTEGER,SAVE,dimension(:),allocatable :: index_i | 
|---|
| 6 |   INTEGER,SAVE,dimension(:),allocatable :: index_j | 
|---|
| 7 |    | 
|---|
| 8 |    | 
|---|
| 9 | #ifdef CPP_PHYS | 
|---|
| 10 | ! Interface with parallel physics, | 
|---|
| 11 | CONTAINS | 
|---|
| 12 |    | 
|---|
| 13 |   SUBROUTINE Init_interface_dyn_phys | 
|---|
| 14 |     USE mod_phys_lmdz_mpi_data | 
|---|
| 15 |     IMPLICIT NONE | 
|---|
| 16 |     include 'dimensions.h'     | 
|---|
| 17 |      | 
|---|
| 18 |     INTEGER :: i,j,k | 
|---|
| 19 |      | 
|---|
| 20 |     ALLOCATE(index_i(klon_mpi)) | 
|---|
| 21 |     ALLOCATE(index_j(klon_mpi)) | 
|---|
| 22 |      | 
|---|
| 23 |     k=1 | 
|---|
| 24 |     IF (is_north_pole) THEN | 
|---|
| 25 |       index_i(k)=1 | 
|---|
| 26 |       index_j(k)=1 | 
|---|
| 27 |       k=2 | 
|---|
| 28 |     ELSE | 
|---|
| 29 |       DO i=ii_begin,iim | 
|---|
| 30 |         index_i(k)=i | 
|---|
| 31 |         index_j(k)=jj_begin | 
|---|
| 32 |         k=k+1 | 
|---|
| 33 |        ENDDO | 
|---|
| 34 |     ENDIF | 
|---|
| 35 |      | 
|---|
| 36 |     DO j=jj_begin+1,jj_end-1 | 
|---|
| 37 |       DO i=1,iim | 
|---|
| 38 |         index_i(k)=i | 
|---|
| 39 |         index_j(k)=j | 
|---|
| 40 |         k=k+1 | 
|---|
| 41 |       ENDDO | 
|---|
| 42 |     ENDDO | 
|---|
| 43 |      | 
|---|
| 44 |     IF (is_south_pole) THEN | 
|---|
| 45 |       index_i(k)=1 | 
|---|
| 46 |       index_j(k)=jj_end | 
|---|
| 47 |     ELSE | 
|---|
| 48 |       DO i=1,ii_end | 
|---|
| 49 |         index_i(k)=i | 
|---|
| 50 |         index_j(k)=jj_end | 
|---|
| 51 |         k=k+1 | 
|---|
| 52 |        ENDDO | 
|---|
| 53 |     ENDIF | 
|---|
| 54 |    | 
|---|
| 55 |   END SUBROUTINE Init_interface_dyn_phys  | 
|---|
| 56 | #endif | 
|---|
| 57 | ! of #ifdef CPP_PHYS | 
|---|
| 58 | END MODULE mod_interface_dyn_phys | 
|---|
       
      
      Note: See 
TracBrowser
        for help on using the repository browser.