Ignore:
Timestamp:
03/31/17 20:26:21 (7 years ago)
Author:
yushan
Message:

save current modifications

Location:
XIOS/dev/branch_yushan/src/test
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan/src/test/test_client.f90

    r1079 r1081  
    3737  CALL init_wait 
    3838 
    39   !CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr) 
    40   !if(rank < 2) then 
     39  CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr) 
     40  if(rank < 2) then 
    4141 
    4242   
     
    153153  print *, "Client : xios_finalize " 
    154154 
    155 !    else 
     155    else 
    156156 
    157 !    CALL xios_init_server 
    158 !    print *, "Server : xios_finalize " 
     157    CALL xios_init_server 
     158    print *, "Server : xios_finalize " 
    159159   
    160 !    endif 
     160    endif 
    161161     
    162162 
  • XIOS/dev/branch_yushan/src/test/test_omp.f90

    r1080 r1081  
    3535!!! MPI Initialization    
    3636 
    37   CALL MPI_INIT_THREAD(3, provided, ierr) 
    38   print*, "provided = ", provided 
    39    
    40   CALL init_wait 
    41  
    42   CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr) 
    43   if(rank < 2) then 
    44  
    45   !$omp parallel default(private) 
    46    
    47   CALL xios_initialize(id,return_comm=comm) 
    48    
    49   CALL MPI_COMM_RANK(comm,rank,ierr) 
    50   CALL MPI_COMM_SIZE(comm,size,ierr) 
    51  
    52   size = size*omp_get_num_threads() 
    53   rank = rank*omp_get_num_threads() + omp_get_thread_num() 
    54  
    55   DO j=1,nj_glo 
    56     DO i=1,ni_glo 
    57       lon_glo(i,j)=(i-1)+(j-1)*ni_glo 
    58       lat_glo(i,j)=1000+(i-1)+(j-1)*ni_glo 
    59       DO l=1,llm 
    60         field_A_glo(i,j,l)=(i-1)+(j-1)*ni_glo+10000*l 
     37    CALL MPI_INIT_THREAD(3, provided, ierr) 
     38    if(provided .NE. 3) then 
     39      print*, "provided thread level = ", provided 
     40      call MPI_Abort() 
     41    endif 
     42 
     43    CALL init_wait 
     44 
     45    CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr) 
     46    if(rank < 2) then 
     47 
     48    !$omp parallel default(private) 
     49   
     50    CALL xios_initialize(id,return_comm=comm) 
     51   
     52    CALL MPI_COMM_RANK(comm,rank,ierr) 
     53    CALL MPI_COMM_SIZE(comm,size,ierr) 
     54 
     55    size = size*omp_get_num_threads() 
     56    rank = rank*omp_get_num_threads() + omp_get_thread_num() 
     57 
     58    DO j=1,nj_glo 
     59      DO i=1,ni_glo 
     60        lon_glo(i,j)=(i-1)+(j-1)*ni_glo 
     61        lat_glo(i,j)=1000+(i-1)+(j-1)*ni_glo 
     62        DO l=1,llm 
     63          field_A_glo(i,j,l)=(i-1)+(j-1)*ni_glo+10000*l 
     64        ENDDO 
    6165      ENDDO 
    6266    ENDDO 
    63   ENDDO 
    64   ni=ni_glo ; ibegin=0 
    65  
    66   jbegin=0 
    67   DO n=0,size-1 
    68     nj=nj_glo/size 
    69     IF (n<MOD(nj_glo,size)) nj=nj+1 
    70     IF (n==rank) exit 
    71     jbegin=jbegin+nj 
    72   ENDDO 
    73  
    74   iend=ibegin+ni-1 ; jend=jbegin+nj-1 
    75  
    76   ALLOCATE(lon(ni,nj),lat(ni,nj),field_A(0:ni+1,-1:nj+2,llm),lonvalue(ni,nj)) 
    77   lon(:,:)=lon_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
    78   lat(:,:)=lat_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
    79   field_A(1:ni,1:nj,:)=field_A_glo(ibegin+1:iend+1,jbegin+1:jend+1,:) 
    80  
    81   print*, "xios init OK", rank, size 
    82  
    83  
    84    CALL xios_context_initialize("test",comm) 
    85    print*, "xios_context init OK", rank, size  
     67    ni=ni_glo ; ibegin=0 
     68 
     69    jbegin=0 
     70    DO n=0,size-1 
     71      nj=nj_glo/size 
     72      IF (n<MOD(nj_glo,size)) nj=nj+1 
     73      IF (n==rank) exit 
     74      jbegin=jbegin+nj 
     75    ENDDO 
     76 
     77    iend=ibegin+ni-1 ; jend=jbegin+nj-1 
     78 
     79    ALLOCATE(lon(ni,nj),lat(ni,nj),field_A(0:ni+1,-1:nj+2,llm),lonvalue(ni,nj)) 
     80    lon(:,:)=lon_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
     81    lat(:,:)=lat_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
     82    field_A(1:ni,1:nj,:)=field_A_glo(ibegin+1:iend+1,jbegin+1:jend+1,:) 
     83 
     84    print*, "xios init OK", rank, size 
     85 
     86      CALL xios_context_initialize("test",comm) 
     87      print*, "xios_context init OK", rank, size  
     88 
     89!      CALL xios_context_finalize() 
     90!      print*, "xios_context finalize OK", rank, size 
     91 
     92    CALL xios_finalize() 
     93    print*, "xios finalize OK", rank, size 
     94 
     95 
     96     
     97    !$omp barrier 
     98    !call MPI_Barrier(MPI_COMM_WORLD) 
     99    !$omp barrier 
     100 
     101    call MPI_Abort() 
     102 
     103     
    86104    
    87105    CALL xios_get_handle("test",ctx_hdl) 
     
    93111    CALL xios_get_calendar_type(calendar_type) 
    94112    print*, "xios_get_calendar_type OK", rank, size  
    95  
    96   !CALL xios_context_finalize()   
    97   !print*, "xios_context finalize OK", rank, size  
     113     
     114     
     115    CALL xios_set_axis_attr("axis_A",n_glo=llm ,value=lval) ; 
     116    CALL xios_set_domain_attr("domain_A",ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, ni=ni,jbegin=jbegin,nj=nj,type='curvilinear') 
     117    CALL xios_set_domain_attr("domain_A",data_dim=2, data_ibegin=-1, data_ni=ni+2, data_jbegin=-2, data_nj=nj+4) 
     118    CALL xios_set_domain_attr("domain_A",lonvalue_2D=lon,latvalue_2D=lat) 
     119    CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.) 
     120 
     121    CALL xios_get_handle("field_definition",fieldgroup_hdl) 
     122    CALL xios_add_child(fieldgroup_hdl,field_hdl,"field_B") 
     123    CALL xios_set_attr(field_hdl,field_ref="field_A",name="field_B") 
     124 
     125    CALL xios_get_handle("output",file_hdl) 
     126    CALL xios_add_child(file_hdl,field_hdl) 
     127    CALL xios_set_attr(field_hdl,field_ref="field_A_zoom",name="field_C") 
     128   
     129    dtime%second = 3600 
     130    CALL xios_set_timestep(dtime) 
     131    print*, "xios_set_timestep OK", rank, size  
     132 
     133    CALL xios_get_time_origin(date) 
     134     
     135    PRINT *, "--> year length = ", xios_get_year_length_in_seconds(date%year) 
     136    PRINT *, "--> day length = ", xios_get_day_length_in_seconds() 
     137    CALL xios_date_convert_to_string(date, date_str) 
     138    PRINT *, "time_origin = ", date_str 
     139    PRINT *, "xios_date_get_second_of_year(time_origin) = ", xios_date_get_second_of_year(date) 
     140    PRINT *, "xios_date_get_day_of_year(time_origin) = ", xios_date_get_day_of_year(date) 
     141    PRINT *, "xios_date_get_fraction_of_year(time_origin) = ", xios_date_get_fraction_of_year(date) 
     142    PRINT *, "xios_date_get_second_of_day(time_origin) = ", xios_date_get_second_of_day(date) 
     143    PRINT *, "xios_date_get_fraction_of_day(time_origin) = ", xios_date_get_fraction_of_day(date) 
     144    dtime%timestep = 1 
     145    dtime = 0.5 * dtime 
     146    CALL xios_duration_convert_to_string(dtime, dtime_str) 
     147    PRINT *, "duration = ", dtime_str 
     148    date = date + 3 * (dtime + dtime) 
     149    CALL xios_date_convert_to_string(date, date_str) 
     150    PRINT *, "date = time_origin + 3 * (duration + duration) = ", date_str 
     151    PRINT *, "xios_date_convert_to_seconds(date) = ", xios_date_convert_to_seconds(date) 
     152    PRINT *, "xios_date_convert_to_seconds(date - 2.5h) = ", xios_date_convert_to_seconds(date - 2.5 * xios_hour) 
     153 
     154    ni=0 ; lonvalue(:,:)=0; 
     155    CALL xios_get_domain_attr("domain_A",ni=ni,lonvalue_2D=lonvalue) 
     156    print *,"ni",ni 
     157 
     158    CALL xios_is_defined_field_attr("field_A",enabled=ok) 
     159    PRINT *,"field_A : attribute enabled is defined ? ",ok 
     160 
     161 
     162!   CALL xios_close_context_definition() 
     163   
     164!   print*, "xios_close_context_definition OK", rank, size  
    98165 
    99166 
Note: See TracChangeset for help on using the changeset viewer.