Ignore:
Timestamp:
09/12/16 14:39:01 (8 years ago)
Author:
ymipsl
Message:

Bug fix : read and write restart file was brocken due to new extra dimension to theta_rhodz

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/etat0_start_file.f90

    r347 r476  
    1414  USE time_mod 
    1515  USE transfert_mod 
     16  USE omp_para 
    1617  IMPLICIT NONE 
    1718    TYPE(t_field),POINTER :: f_ps(:) 
     
    2324    TYPE(t_field),POINTER,SAVE :: f_ulon(:) 
    2425    TYPE(t_field),POINTER,SAVE :: f_ulat(:) 
     26    TYPE(t_field),POINTER,SAVE :: f_theta_rhodz_1d(:) 
     27    REAL(rstd), POINTER :: theta_rhodz(:,:,:),theta_rhodz_1d(:,:) 
    2528 
    2629    LOGICAL :: etat0_start_file_colocated=.FALSE. 
     
    2831 
    2932      CALL getin("etat0_start_file_colocated",etat0_start_file_colocated)   
     33      CALL allocate_field(f_theta_rhodz_1d,field_t,type_real,llm,name='theta_rhodz') 
     34 
    3035 
    3136      IF (.NOT. etat0_start_file_colocated) THEN     
    3237        CALL allocate_field(f_ulon,field_t,type_real,llm,name='ulon') 
    3338        CALL allocate_field(f_ulat,field_t,type_real,llm,name='ulat') 
    34         CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz,f_u, f_q) 
     39        CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz_1d,f_u, f_q) 
    3540        CALL transfert_request(f_ps,req_i1) 
    3641        CALL transfert_request(f_phis,req_i1) 
    37         CALL transfert_request(f_theta_rhodz,req_i1) 
     42        CALL transfert_request(f_theta_rhodz_1d,req_i1) 
    3843        CALL transfert_request(f_q,req_i1) 
    3944        CALL transfert_request(f_u,req_e1_vect) 
     
    4752        CALL allocate_field(f_ulon,field_t,type_real,llm,name='ulon') 
    4853        CALL allocate_field(f_ulat,field_t,type_real,llm,name='ulat') 
    49         CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz,f_ulon,f_ulat, f_q) 
     54        CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz_1d,f_ulon,f_ulat, f_q) 
    5055        CALL transfert_request(f_ulat,req_i1) 
    5156        CALL transfert_request(f_ulon,req_i1) 
     
    5560        CALL transfert_request(f_ps,req_i1) 
    5661        CALL transfert_request(f_phis,req_i1) 
    57         CALL transfert_request(f_theta_rhodz,req_i1) 
     62        CALL transfert_request(f_theta_rhodz_1d,req_i1) 
    5863        CALL transfert_request(f_q,req_i1) 
    5964        CALL transfert_request(f_u,req_e1_vect) 
     
    6267        CALL deallocate_field(f_ulat) 
    6368      ENDIF 
     69 
     70!$OMP BARRIER     
     71    DO ind=1, ndomain 
     72       IF (.NOT. assigned_domain(ind) .AND. is_omp_level_master) CYCLE 
     73       theta_rhodz=f_theta_rhodz(ind) ; theta_rhodz_1d=f_theta_rhodz_1d(ind) 
     74       theta_rhodz(:,:,1)=theta_rhodz_1d(:,:) 
     75    ENDDO 
     76!$OMP BARRIER     
    6477 
    6578      CALL bcast(itau0) 
Note: See TracChangeset for help on using the changeset viewer.