Changeset 1249 for LMDZ4/branches/LMDZ4-dev
- Timestamp:
- Oct 21, 2009, 6:04:08 PM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev
- Files:
-
- 2 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/arch/arch-IA64_PLATINE.fcm
r1051 r1249 5 5 %FPP_FLAGS -P -traditional 6 6 %FPP_DEF NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM FFT_MKL 7 %BASE_FFLAGS -i4 -r8 -automatic -align all -I/applications/intel/ cmkl/10.0.1.014/include7 %BASE_FFLAGS -i4 -r8 -automatic -align all -I/applications/intel/mkl/10.0.1.014/include 8 8 %PROD_FFLAGS -O3 9 %DEV_FFLAGS - O3 -traceback10 %DEBUG_FFLAGS - g -traceback9 %DEV_FFLAGS -p -g -O3 -traceback 10 %DEBUG_FFLAGS -p -g -traceback 11 11 %MPI_FFLAGS 12 12 %OMP_FFLAGS -openmp 13 %BASE_LD - i4 -r8 -automatic -L/applications/intel/cmkl/10.0.1.014/lib/64 -lmkl_ipf-lguide13 %BASE_LD -p -i4 -r8 -automatic -L/applications/intel/mkl/10.0.1.014/lib/64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lguide 14 14 %MPI_LD 15 15 %OMP_LD -openmp -
LMDZ4/branches/LMDZ4-dev/arch/arch-PW6_VARGAS.fcm
r1142 r1249 5 5 %FPP_FLAGS -P 6 6 %FPP_DEF NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM 7 %BASE_FFLAGS -qautodbl=dbl4 7 %BASE_FFLAGS -qautodbl=dbl4 -qxlf90=autodealloc 8 8 %PROD_FFLAGS -O5 9 9 %DEV_FFLAGS -O2 -qfullpath -qinitauto=7FBFFFFF -qfloat=nans -qflttrap=overflow:zerodivide:invalid:enable -qsigtrap -
LMDZ4/branches/LMDZ4-dev/libf/filtrez/filtreg_mod.F90
r1109 r1249 7 7 8 8 SUBROUTINE inifilr 9 USE mod_filtre_fft 9 10 ! 10 11 ! ... H. Upadhyaya, O.Sharma ... … … 519 520 ENDDO 520 521 522 IF (use_filtre_fft) THEN 523 CALL Init_filtre_fft(coefilu,modfrstu,jfiltnu,jfiltsu, & 524 coefilv,modfrstv,jfiltnv,jfiltsv) 525 ENDIF 526 521 527 ! ................................................................... 522 528 -
LMDZ4/branches/LMDZ4-dev/libf/filtrez/mod_fft_mkl.F90
r986 r1249 74 74 ierr = DftiSetValue(FFT_Handle,DFTI_PLACEMENT,DFTI_NOT_INPLACE) 75 75 ierr = DftiSetValue(FFT_Handle, DFTI_INPUT_DISTANCE, vsize+inc) 76 ierr = DftiSetValue(FFT_Handle, DFTI_OUTPUT_DISTANCE, vsize/2+1)76 ierr = DftiSetValue(FFT_Handle, DFTI_OUTPUT_DISTANCE, (vsize/2+1)*2) 77 77 ierr = DftiCommitDescriptor( FFT_Handle ) 78 78 ! Forward_handle(nb_vect)%IsAllocated=.TRUE. … … 114 114 ierr = DftiSetValue(FFT_Handle,DFTI_BACKWARD_SCALE,scale_factor) 115 115 ierr = DftiSetValue(FFT_Handle,DFTI_PLACEMENT,DFTI_NOT_INPLACE) 116 ierr = DftiSetValue(FFT_Handle, DFTI_INPUT_DISTANCE, vsize/2+1)116 ierr = DftiSetValue(FFT_Handle, DFTI_INPUT_DISTANCE, (vsize/2+1)*2) 117 117 ierr = DftiSetValue(FFT_Handle, DFTI_OUTPUT_DISTANCE, vsize+inc) 118 118 ierr = DftiCommitDescriptor( FFT_Handle ) -
LMDZ4/branches/LMDZ4-dev/libf/filtrez/mod_filtre_fft.F90
r994 r1249 118 118 119 119 REAL :: vect(iim+inc,jj_end-jj_begin+1,nbniv) 120 COMPLEX :: TF_vect(iim/2+1,jj_end-jj_begin+1,nbniv) 120 ! REAL :: vect_test(iim+inc,jj_end-jj_begin+1,nbniv) 121 COMPLEX*16 :: TF_vect(iim/2+1,jj_end-jj_begin+1,nbniv) 122 ! COMPLEX*16 :: TF_vect_test(iim/2+1,jj_end-jj_begin+1,nbniv) 121 123 INTEGER :: nb_vect 122 124 INTEGER :: i,j,l … … 142 144 CALL FFT_forward(vect,TF_vect,nb_vect) 143 145 146 ! CALL FFT_forward(vect,TF_vect_test,nb_vect) 147 ! PRINT *,"XXXXXXXXXXXXX Filtre_u_FFT xxxxxxxxxxxx" 148 ! DO j=1,jj_end-jj_begin+1 149 ! DO i=1,iim/2+1 150 ! PRINT *,"====",i,j,"----->",TF_vect_test(i,j,1) 151 ! ENDDO 152 ! ENDDO 153 144 154 DO l=1,ll_nb 145 155 DO j=1,jj_end-jj_begin+1 … … 149 159 ENDDO 150 160 ENDDO 151 161 152 162 CALL FFT_backward(TF_vect,vect,nb_vect) 153 163 ! CALL FFT_backward(TF_vect_test,vect_test,nb_vect) 164 154 165 ! PRINT *,"XXXXXXXXXXXXX Filtre_u_FFT xxxxxxxxxxxx" 155 166 ! DO j=1,jj_end-jj_begin+1 156 ! DO i=1,iim 157 ! PRINT *,"====",j,"----->",(vect_tmp(i,j,1)-vect(i,j,1))/ & 158 ! ((vect_tmp(i,j,1)+vect(i,j,1))*0.5+1e-30) 159 ! ENDDO 167 ! DO i=1,iim 168 ! PRINT *,"====",i,j,"----->",vect_test(i,j,1) 169 ! ENDDO 160 170 ! ENDDO 161 171 162 172 ll_nb=0 163 173 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90
r1246 r1249 61 61 INTEGER, PARAMETER :: naero_insoluble=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble 62 62 LOGICAL, SAVE :: firstcall=.TRUE. 63 !$OMP THREADPRIVATE(firstcall) 63 64 64 65 ! Coefficient optiques sur 19 niveaux 65 REAL, DIMENSION(nb_level) :: presnivs_19 ! Pression milieux couche pour 19 niveaux (nb_level) 66 REAL, DIMENSION(nb_level) :: A1_ASSSM_b1_19, A2_ASSSM_b1_19, A3_ASSSM_b1_19,& 66 REAL, SAVE, DIMENSION(nb_level) :: presnivs_19 ! Pression milieux couche pour 19 niveaux (nb_level) 67 !$OMP THREADPRIVATE(presnivs_19) 68 69 REAL, SAVE, DIMENSION(nb_level) :: A1_ASSSM_b1_19, A2_ASSSM_b1_19, A3_ASSSM_b1_19,& 67 70 B1_ASSSM_b1_19, B2_ASSSM_b1_19, C1_ASSSM_b1_19, C2_ASSSM_b1_19,& 68 71 A1_CSSSM_b1_19, A2_CSSSM_b1_19, A3_CSSSM_b1_19,& … … 76 79 A1_SSSSM_b2_19, A2_SSSSM_b2_19, A3_SSSSM_b2_19,& 77 80 B1_SSSSM_b2_19, B2_SSSSM_b2_19, C1_SSSSM_b2_19, C2_SSSSM_b2_19 81 !$OMP THREADPRIVATE(A1_ASSSM_b1_19, A2_ASSSM_b1_19, A3_ASSSM_b1_19) 82 !$OMP THREADPRIVATE(B1_ASSSM_b1_19, B2_ASSSM_b1_19, C1_ASSSM_b1_19, C2_ASSSM_b1_19) 83 !$OMP THREADPRIVATE(A1_CSSSM_b1_19, A2_CSSSM_b1_19, A3_CSSSM_b1_19) 84 !$OMP THREADPRIVATE(B1_CSSSM_b1_19, B2_CSSSM_b1_19, C1_CSSSM_b1_19, C2_CSSSM_b1_19) 85 !$OMP THREADPRIVATE(A1_SSSSM_b1_19, A2_SSSSM_b1_19, A3_SSSSM_b1_19) 86 !$OMP THREADPRIVATE(B1_SSSSM_b1_19, B2_SSSSM_b1_19, C1_SSSSM_b1_19, C2_SSSSM_b1_19) 87 !$OMP THREADPRIVATE(A1_ASSSM_b2_19, A2_ASSSM_b2_19, A3_ASSSM_b2_19) 88 !$OMP THREADPRIVATE(B1_ASSSM_b2_19, B2_ASSSM_b2_19, C1_ASSSM_b2_19, C2_ASSSM_b2_19) 89 !$OMP THREADPRIVATE(A1_CSSSM_b2_19, A2_CSSSM_b2_19, A3_CSSSM_b2_19) 90 !$OMP THREADPRIVATE(B1_CSSSM_b2_19, B2_CSSSM_b2_19, C1_CSSSM_b2_19, C2_CSSSM_b2_19) 91 !$OMP THREADPRIVATE(A1_SSSSM_b2_19, A2_SSSSM_b2_19, A3_SSSSM_b2_19) 92 !$OMP THREADPRIVATE(B1_SSSSM_b2_19, B2_SSSSM_b2_19, C1_SSSSM_b2_19, C2_SSSSM_b2_19) 93 78 94 79 95 ! Coefficient optiques interpole sur le nombre de niveau du modele … … 91 107 A1_SSSSM_b2, A2_SSSSM_b2, A3_SSSSM_b2,& 92 108 B1_SSSSM_b2, B2_SSSSM_b2, C1_SSSSM_b2, C2_SSSSM_b2 93 94 REAL:: RH_tab(nbre_RH) 109 !$OMP THREADPRIVATE(A1_ASSSM_b1, A2_ASSSM_b1, A3_ASSSM_b1) 110 !$OMP THREADPRIVATE(B1_ASSSM_b1, B2_ASSSM_b1, C1_ASSSM_b1, C2_ASSSM_b1) 111 !$OMP THREADPRIVATE(A1_CSSSM_b1, A2_CSSSM_b1, A3_CSSSM_b1) 112 !$OMP THREADPRIVATE(B1_CSSSM_b1, B2_CSSSM_b1, C1_CSSSM_b1, C2_CSSSM_b1) 113 !$OMP THREADPRIVATE(A1_SSSSM_b1, A2_SSSSM_b1, A3_SSSSM_b1) 114 !$OMP THREADPRIVATE(B1_SSSSM_b1, B2_SSSSM_b1, C1_SSSSM_b1, C2_SSSSM_b1) 115 !$OMP THREADPRIVATE(A1_ASSSM_b2, A2_ASSSM_b2, A3_ASSSM_b2) 116 !$OMP THREADPRIVATE(B1_ASSSM_b2, B2_ASSSM_b2, C1_ASSSM_b2, C2_ASSSM_b2) 117 !$OMP THREADPRIVATE(A1_CSSSM_b2, A2_CSSSM_b2, A3_CSSSM_b2) 118 !$OMP THREADPRIVATE(B1_CSSSM_b2, B2_CSSSM_b2, C1_CSSSM_b2, C2_CSSSM_b2) 119 !$OMP THREADPRIVATE(A1_SSSSM_b2, A2_SSSSM_b2, A3_SSSSM_b2) 120 !$OMP THREADPRIVATE(B1_SSSSM_b2, B2_SSSSM_b2, C1_SSSSM_b2, C2_SSSSM_b2) 121 122 REAL,PARAMETER :: RH_tab(nbre_RH)=(/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./) 95 123 REAL, PARAMETER :: RH_MAX=95. 96 124 REAL:: DELTA, rh, H … … 98 126 REAL:: piz_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of Single scattering albedo 99 127 REAL:: cg_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of Assymetry parameter 100 DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./101 128 REAL :: zrho 102 129 REAL :: fac -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_5wv.F90
r1246 r1249 88 88 INTEGER, PARAMETER :: nb_level = 19 ! number of vertical levels 89 89 LOGICAL, SAVE :: firstcall=.TRUE. 90 !$OMP THREADPRIVATE(firstcall) 90 91 91 92 REAL :: zrho 92 93 93 94 ! Coefficient optiques sur 19 niveaux 94 REAL, DIMENSION(nb_level) :: presnivs_19 ! Pression milieux couche pour 19 niveaux (nb_level) 95 REAL, DIMENSION(nb_level) :: A1_ASSSM_19, A2_ASSSM_19, A3_ASSSM_19,& 95 REAL, SAVE, DIMENSION(nb_level) :: presnivs_19 ! Pression milieux couche pour 19 niveaux (nb_level) 96 !$OMP THREADPRIVATE(presnivs_19) 97 98 REAL, SAVE, DIMENSION(nb_level) :: A1_ASSSM_19, A2_ASSSM_19, A3_ASSSM_19,& 96 99 B1_ASSSM_19, B2_ASSSM_19, C1_ASSSM_19, C2_ASSSM_19,& 97 100 A1_CSSSM_19, A2_CSSSM_19, A3_CSSSM_19,& … … 99 102 A1_SSSSM_19, A2_SSSSM_19, A3_SSSSM_19,& 100 103 B1_SSSSM_19, B2_SSSSM_19, C1_SSSSM_19, C2_SSSSM_19 104 !$OMP THREADPRIVATE(A1_ASSSM_19, A2_ASSSM_19, A3_ASSSM_19) 105 !$OMP THREADPRIVATE(B1_ASSSM_19, B2_ASSSM_19, C1_ASSSM_19, C2_ASSSM_19) 106 !$OMP THREADPRIVATE(A1_CSSSM_19, A2_CSSSM_19, A3_CSSSM_19) 107 !$OMP THREADPRIVATE(B1_CSSSM_19, B2_CSSSM_19, C1_CSSSM_19, C2_CSSSM_19) 108 !$OMP THREADPRIVATE(A1_SSSSM_19, A2_SSSSM_19, A3_SSSSM_19) 109 !$OMP THREADPRIVATE(B1_SSSSM_19, B2_SSSSM_19, C1_SSSSM_19, C2_SSSSM_19) 101 110 102 111 ! Coefficient optiques interpole sur le nombre de niveau du modele … … 108 117 A1_SSSSM, A2_SSSSM, A3_SSSSM,& 109 118 B1_SSSSM, B2_SSSSM, C1_SSSSM, C2_SSSSM 110 111 REAL :: RH_tab(nbre_RH) 119 !$OMP THREADPRIVATE(A1_ASSSM, A2_ASSSM, A3_ASSSM) 120 !$OMP THREADPRIVATE(B1_ASSSM, B2_ASSSM, C1_ASSSM, C2_ASSSM) 121 !$OMP THREADPRIVATE(A1_CSSSM, A2_CSSSM, A3_CSSSM) 122 !$OMP THREADPRIVATE(B1_CSSSM, B2_CSSSM, C1_CSSSM, C2_CSSSM) 123 !$OMP THREADPRIVATE(A1_SSSSM, A2_SSSSM, A3_SSSSM) 124 !$OMP THREADPRIVATE(B1_SSSSM, B2_SSSSM, C1_SSSSM, C2_SSSSM) 125 126 127 REAL,PARAMETER :: RH_tab(nbre_RH)=(/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./) 112 128 REAL :: DELTA, rh, H 113 129 REAL :: tau_ae5wv_int(KLON,KLEV,las) ! Intermediate computation of epaisseur optique aerosol … … 115 131 REAL :: cg_ae5wv_int(KLON,KLEV,las) ! Intermediate asymmetry parameter aerosol 116 132 REAL, PARAMETER :: RH_MAX=95. 117 DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./118 133 REAL :: taue670(KLON) ! epaisseur optique aerosol absorption 550 nm 119 134 REAL :: taue865(KLON) ! epaisseur optique aerosol extinction 865 nm -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/carbon_cycle_mod.F90
r1227 r1249 9 9 10 10 ! Variables read from parmeter file physiq.def 11 LOGICAL, PUBLIC :: carbon_cycle_tr ! 3D transport of CO2 in the atmosphere, parameter read in conf_phys 12 LOGICAL, PUBLIC :: carbon_cycle_cpl ! Coupling of CO2 fluxes between LMDZ/ORCHIDEE and LMDZ/OCEAN(PISCES) 11 LOGICAL, SAVE, PUBLIC :: carbon_cycle_tr ! 3D transport of CO2 in the atmosphere, parameter read in conf_phys 12 !$OMP THREADPRIVATE(carbon_cycle_tr) 13 LOGICAL, SAVE,PUBLIC :: carbon_cycle_cpl ! Coupling of CO2 fluxes between LMDZ/ORCHIDEE and LMDZ/OCEAN(PISCES) 14 !$OMP THREADPRIVATE(carbon_cycle_cpl) 13 15 LOGICAL :: carbon_cycle_emis_comp=.FALSE. ! Calculation of emission compatible 14 16 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/conf_phys.F90
r1244 r1249 147 147 LOGICAL,SAVE :: ok_strato_omp 148 148 LOGICAL,SAVE :: ok_hines_omp 149 LOGICAL :: carbon_cycle_tr_omp150 LOGICAL :: carbon_cycle_cpl_omp149 LOGICAL,SAVE :: carbon_cycle_tr_omp 150 LOGICAL,SAVE :: carbon_cycle_cpl_omp 151 151 152 152 logical, intent(out):: read_climoz ! read ozone climatology, OpenMP shared -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/mod_phys_lmdz_omp_transfert.F90
r1001 r1249 10 10 11 11 CHARACTER(LEN=size_min),SAVE :: buffer_c 12 INTEGER,SAVE :: size_c 12 ! INTEGER,SAVE :: size_c=0 13 13 INTEGER,SAVE,ALLOCATABLE,DIMENSION(:) :: buffer_i 14 INTEGER,SAVE :: size_i 14 INTEGER,SAVE :: size_i=0 15 15 REAL,SAVE,ALLOCATABLE,DIMENSION(:) :: buffer_r 16 INTEGER,SAVE :: size_r 16 INTEGER,SAVE :: size_r=0 17 17 LOGICAL,SAVE,ALLOCATABLE,DIMENSION(:) :: buffer_l 18 INTEGER,SAVE :: size_l 18 INTEGER,SAVE :: size_l=0 19 19 20 20 … … 56 56 INTEGER :: buff_size 57 57 58 IF (buff_size>size_i) THEN59 58 !$OMP BARRIER 60 59 !$OMP MASTER 60 IF (buff_size>size_i) THEN 61 61 IF (ALLOCATED(buffer_i)) DEALLOCATE(buffer_i) 62 62 size_i=MAX(size_min,INT(grow_factor*buff_size)) 63 63 ALLOCATE(buffer_i(size_i)) 64 ENDIF 64 65 !$OMP END MASTER 65 66 !$OMP BARRIER 66 ENDIF67 67 68 68 END SUBROUTINE check_buffer_i … … 72 72 INTEGER :: buff_size 73 73 74 IF (buff_size>size_r) THEN75 74 !$OMP BARRIER 76 75 !$OMP MASTER 76 IF (buff_size>size_r) THEN 77 77 IF (ALLOCATED(buffer_r)) DEALLOCATE(buffer_r) 78 78 size_r=MAX(size_min,INT(grow_factor*buff_size)) 79 79 ALLOCATE(buffer_r(size_r)) 80 ENDIF 80 81 !$OMP END MASTER 81 82 !$OMP BARRIER 82 ENDIF83 83 84 84 END SUBROUTINE check_buffer_r … … 88 88 INTEGER :: buff_size 89 89 90 IF (buff_size>size_l) THEN91 90 !$OMP BARRIER 92 91 !$OMP MASTER 92 IF (buff_size>size_l) THEN 93 93 IF (ALLOCATED(buffer_l)) DEALLOCATE(buffer_l) 94 94 size_l=MAX(size_min,INT(grow_factor*buff_size)) 95 95 ALLOCATE(buffer_l(size_l)) 96 ENDIF 96 97 !$OMP END MASTER 97 98 !$OMP BARRIER 98 ENDIF99 99 100 100 END SUBROUTINE check_buffer_l … … 521 521 REAL,INTENT(IN),DIMENSION(:,:,:,:) :: VarIn 522 522 REAL,INTENT(OUT),DIMENSION(:,:,:,:) :: VarOut 523 523 524 CALL Check_buffer_r(size(VarOut)) 524 525 CALL gather_omp_rgen(VarIn,Varout,Size(VarIn,2)*Size(VarIn,3)*Size(VarIn,4),buffer_r) 525 526 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/moy_undefSTD.F
r1234 r1249 53 53 DO k=1, nlevSTD 54 54 DO i=1, klon 55 IF (tnondef(i,k,1).NE.(ecrit_day/dtime)) THEN55 IF (NINT(tnondef(i,k,1)).NE.NINT(ecrit_day/dtime)) THEN 56 56 tsumSTD(i,k,1)=tsumSTD(i,k,1)/ 57 57 $ (ecrit_day/dtime-tnondef(i,k,1)) -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/oasis.F90
r1227 r1249 68 68 END TYPE FLD_CPL 69 69 70 TYPE(FLD_CPL), DIMENSION(maxsend), PUBLIC :: infosend ! Information for sending coupling fields 71 TYPE(FLD_CPL), DIMENSION(maxrecv), PUBLIC :: inforecv ! Information for receiving coupling fields 72 73 LOGICAL :: cpl_current 70 TYPE(FLD_CPL), DIMENSION(maxsend), SAVE, PUBLIC :: infosend ! Information for sending coupling fields 71 TYPE(FLD_CPL), DIMENSION(maxrecv), SAVE, PUBLIC :: inforecv ! Information for receiving coupling fields 72 73 LOGICAL,SAVE :: cpl_current 74 !$OMP THREADPRIVATE(cpl_current) 74 75 75 76 #ifdef CPP_COUPLE … … 140 141 ! Atmospheric variables to send 141 142 143 !$OMP MASTER 142 144 infosend(:)%action = .FALSE. 143 145 … … 288 290 WRITE(lunout,*) 'inicma : endef psmile ok ' 289 291 ENDIF 292 293 !$OMP END MASTER 290 294 291 295 END SUBROUTINE inicma -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
r1246 r1249 1099 1099 ! ascending order 1100 1100 1101 integer :: co3i = 0 ! time index in NetCDF file of current ozone field1101 integer,save:: co3i = 0 ! time index in NetCDF file of current ozone field 1102 1102 c$OMP THREADPRIVATE(co3i) 1103 1103 … … 3232 3232 d_t_ec(i,k)=0.5/ZRCPD 3233 3233 $ *(u(i,k)**2+v(i,k)**2-u_seri(i,k)**2-v_seri(i,k)**2) 3234 ENDDO 3235 ENDDO 3236 3237 DO k = 1, klev 3238 DO i = 1, klon 3234 3239 t_seri(i,k)=t_seri(i,k)+d_t_ec(i,k) 3235 3240 d_t_ec(i,k) = d_t_ec(i,k)/dtime … … 3482 3487 ! write(97) u_seri,v_seri,t_seri,q_seri 3483 3488 ! close(97) 3484 C$OMP single3489 C$OMP MASTER 3485 3490 if (read_climoz) then 3486 3491 if (is_mpi_root) then … … 3489 3494 deallocate(press_climoz) ! pointer 3490 3495 end if 3491 C$OMP end single nowait3496 C$OMP END MASTER 3492 3497 ENDIF 3493 3498 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol.F90
r1223 r1249 228 228 IF (ASSOCIATED(pt_b)) DEALLOCATE(pt_b) 229 229 230 !$OMP MASTER 231 IF (is_mpi_root) THEN 230 IF (is_mpi_root .AND. is_omp_root) THEN 232 231 233 232 ! 1) Open file … … 508 507 CALL grid2Dto1D_glo(psurf_glo2D,psurf_glo1D) 509 508 CALL grid2Dto1D_glo(load_glo2D,load_glo1D) 510 511 END IF ! is_mpi_root 512 !$OMP END MASTER 509 510 ELSE 511 ALLOCATE(varyear_glo1D(0,0,0)) 512 END IF ! is_mpi_root .AND. is_omp_root 513 513 514 !$OMP BARRIER 514 515 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_interp.F90
r1246 r1249 93 93 ! Calculation to find if it is a new day 94 94 95 IF(mpi_rank == 0 )then95 IF(mpi_rank == 0 .AND. debug )then 96 96 PRINT*,'CONTROL PANEL REGARDING TIME STEPING' 97 97 ENDIF … … 110 110 IF(MOD(itap-1,NINT(86400./pdtphys)) == 0)THEN 111 111 lnewday=.TRUE. 112 ELSE 113 lnewday=.FALSE. 112 114 ENDIF 113 115 114 IF(mpi_rank == 0 )then116 IF(mpi_rank == 0 .AND. debug)then 115 117 ! 0.02 is about 0.5/24, namly less than half an hour 116 118 OLDNEWDAY = (r_day-FLOAT(iday) < 0.02) -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/surf_land_orchidee_noopenmp_mod.F90
r1227 r1249 663 663 displs(i)=displs(i-1)+knon_nb(i-1) 664 664 ENDDO 665 ENDIF 665 ELSE 666 ALLOCATE(neighbours_g(1,8)) 667 ENDIF 666 668 667 669 ktindex_p(1:knon)=ktindex(1:knon)+klon_mpi_begin-1+iim-1 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/sw_aeroAR4.F90
r1246 r1249 183 183 ! 3: feedback according to natural aerosol direct effect used for climate, diagnostics according to ok_ade_ok_aie 184 184 185 INTEGER :: AEROSOLFEEDBACK_ACTIVE = 0 185 INTEGER,SAVE :: AEROSOLFEEDBACK_ACTIVE = 0 186 !$OMP THREADPRIVATE(AEROSOLFEEDBACK_ACTIVE) 186 187 187 188 IF ((.not. ok_ade) .and. (AEROSOLFEEDBACK_ACTIVE .ge. 2)) THEN -
LMDZ4/branches/LMDZ4-dev/makelmdz_fcm
r1228 r1249 225 225 echo "Usually, parallelization with OpenMP requires some optimization." 226 226 echo "We suggest switching to \"-dev\"." 227 exit 1228 ##COMPIL_FFLAGS="%DEV_FFLAGS"229 227 fi 230 228 … … 385 383 ./build_gcm 386 384 387 rm - f tmp_src388 rm - f config385 rm -rf tmp_src 386 rm -rf config 389 387 ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config config 390 388 ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config/tmp tmp_src
Note: See TracChangeset
for help on using the changeset viewer.