Ignore:
Timestamp:
06/22/15 13:36:17 (9 years ago)
Author:
mhnguyen
Message:

Implementing generic transformation algorithm (local commit)

+) Implement 3 important classes:

-gridTransformation to read transformation info from grid and interface with the rest of XIOS
-transformationMapping to be in charge of sending/receiving transformation info among clients
-transformationAlgorithm to represent various algorithms

+) Make some change on field to use the new classes

Test
+) Only test_new_features with inversed axis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/test/test_new_features.f90

    r619 r620  
    1515  CHARACTER(len=15) :: calendar_type 
    1616  TYPE(xios_context) :: ctx_hdl 
    17   INTEGER,PARAMETER :: ni_glo=100 
    18   INTEGER,PARAMETER :: nj_glo=100 
    19   INTEGER,PARAMETER :: llm=10 
     17  INTEGER,PARAMETER :: ni_glo=5 
     18  INTEGER,PARAMETER :: nj_glo=5 
     19  INTEGER,PARAMETER :: llm=5 
    2020  DOUBLE PRECISION  :: lval(llm)=1, tsTemp 
    2121  TYPE(xios_field) :: field_hdl 
     
    2525 
    2626  DOUBLE PRECISION,DIMENSION(ni_glo,nj_glo) :: lon_glo,lat_glo 
    27   DOUBLE PRECISION :: field_A_glo(ni_glo,nj_glo,llm), lval_ni(ni_glo), lval_nj(nj_glo) 
    28   DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_A(:,:,:), field_All_Axis(:,:,:), lonvalue(:) , field_Axis(:), lvaln(:), field_Two_Axis(:,:) 
     27  DOUBLE PRECISION :: field_A_glo(ni_glo,nj_glo,llm), lval_ni_glo(ni_glo), lval_nj_glo(nj_glo) 
     28  DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_A(:,:,:), field_All_Axis(:,:,:), lonvalue(:) , field_Axis(:), lvaln(:), lval_ni(:), lval_nj(:), field_Two_Axis(:,:) 
    2929  INTEGER :: ni,ibegin,iend,nj,jbegin,jend, nAxis, axisBegin, axisEnd 
    3030  INTEGER :: i,j,l,ts,n 
     
    4747      lon_glo(i,j)=(i-1)+(j-1)*ni_glo 
    4848      lat_glo(i,j)=1000+(i-1)+(j-1)*ni_glo 
    49       lval_ni(i) = i-1 
     49      lval_ni_glo(i) = i-1 
    5050      DO l=1,llm 
    5151        field_A_glo(i,j,l)=(i-1)+(j-1)*ni_glo+10000*l 
    5252      ENDDO 
    5353    ENDDO 
    54     lval_nj(j) = j-1 
     54    lval_nj_glo(j) = j-1 
    5555  ENDDO 
    5656  ni=ni_glo ; ibegin=0 
     
    8080 
    8181 
    82   ALLOCATE(lon(ni,nj),lat(ni,nj),field_A(0:ni+1,-1:nj+2,llm),lonvalue(ni*nj), field_Axis(nAxis), field_All_Axis(1:ni,1:nj,llm), lvaln(nAxis), field_Two_Axis(ni_glo,1:nj)) 
     82  ALLOCATE(lon(ni,nj),lat(ni,nj),field_A(0:ni+1,-1:nj+2,llm),lonvalue(ni*nj), field_Axis(nAxis), field_All_Axis(1:ni,1:nj,llm), lvaln(nAxis), lval_ni(ni), lval_nj(nj), field_Two_Axis(ni_glo,1:nj)) 
    8383  lon(:,:)=lon_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
    8484  lat(:,:)=lat_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
     
    8686  field_Axis(1:nAxis)  = field_A_glo(1,1,axisBegin+1:axisEnd+1) 
    8787  field_All_Axis(1:ni,1:nj,:) = field_A_glo(ibegin+1:iend+1,jbegin+1:jend+1,:) 
    88   field_Two_Axis(:,1:nAxis)  = field_A_glo(:,jbegin+1:jend+1,1) 
     88  field_Two_Axis(:,1:nj)  = field_A_glo(:,jbegin+1:jend+1,1) 
    8989  lvaln(1:nAxis) = lval(axisBegin+1:axisEnd+1) 
     90  lval_nj(1:nj) = lval_nj_glo(jbegin+1:jend+1); 
     91  lval_ni(1:ni) = lval_ni_glo(ibegin+1:iend+1); 
    9092 
    9193  CALL xios_context_initialize("test",comm) 
     
    103105  CALL xios_set_domain_attr("domain_A",data_dim=2, data_ibegin=-1, data_ni=ni+2, data_jbegin=-2, data_nj=nj+4) 
    104106  CALL xios_set_domain_attr("domain_A",lonvalue=RESHAPE(lon,(/ni*nj/)),latvalue=RESHAPE(lat,(/ni*nj/))) 
    105   CALL xios_set_domain_attr("domain_A",zoom_ibegin=40, zoom_ni=20, zoom_jbegin=40, zoom_nj=10) 
     107!  CALL xios_set_domain_attr("domain_A",zoom_ibegin=40, zoom_ni=20, zoom_jbegin=40, zoom_nj=10) 
    106108  CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.) 
    107109 
Note: See TracChangeset for help on using the changeset viewer.