Changeset 802 for codes/icosagcm/devel/src/unstructured
- Timestamp:
- 01/21/19 11:34:04 (5 years ago)
- Location:
- codes/icosagcm/devel/src/unstructured
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/unstructured/data_unstructured.F90
r796 r802 12 12 INDEX, BIND(C) :: caldyn_thermo=thermo_theta, caldyn_eta=eta_lag, & 13 13 caldyn_vert_variant=caldyn_vert_cons, nb_threads=0, nb_stage=0 14 LOGICAL(C_BOOL), BIND(C) :: hydrostatic=.TRUE. 14 LOGICAL(C_BOOL), BIND(C) :: hydrostatic=.TRUE., is_mpi_master=.TRUE., debug_on=.FALSE. 15 15 LOGICAL(C_BOOL), BIND(C, NAME='debug_hevi_solver') :: debug_hevi_solver_=.TRUE. 16 16 … … 42 42 NUM2(:,:), ALLOCATABLE :: centroid, xyz_v, Riv2, wee, ap,bp, mass_bl, mass_dak, mass_dbk 43 43 44 INTEGER(C_INT), BIND(C) :: comm_icosa , dynamico_mpi_rank=044 INTEGER(C_INT), BIND(C) :: comm_icosa 45 45 46 46 INTEGER, PARAMETER :: id_dev1=1, id_dev2=2, & … … 82 82 TIME :: total_spent 83 83 total_spent=SUM(time_spent) 84 IF( dynamico_mpi_rank==0) THEN84 IF(is_mpi_master) THEN 85 85 PRINT *, '========================= Performance metrics =========================' 86 86 PRINT *, 'Total time spent in instrumented code (seconds) :', total_spent … … 139 139 INDEX, DIMENSION(edge_num) :: left_, right_, down_, up_ 140 140 141 PRINT *, 'init_mesh ...' 142 PRINT *, 'Primal mesh : ', primal_num, max_primal_deg 143 PRINT *, 'Dual mesh : ', dual_num, max_dual_deg 144 PRINT *, 'Edge mesh : ', edge_num, max_trisk_deg 145 PRINT *, 'Vertical levels :', llm 141 IF(is_mpi_master) THEN 142 PRINT *, 'init_mesh ...' 143 PRINT *, 'Primal mesh : ', primal_num, max_primal_deg 144 PRINT *, 'Dual mesh : ', dual_num, max_dual_deg 145 PRINT *, ' Edge mesh : ', edge_num, max_trisk_deg 146 PRINT *, 'Vertical levels :', llm 147 END IF 146 148 ALLOC1(primal_deg, primal_num) 147 149 ALLOC2(primal_edge, max_primal_deg,primal_num) … … 153 155 ALLOC1(trisk_deg, edge_num) 154 156 ALLOC2(trisk, max_trisk_deg, edge_num) 155 PRINT *, SHAPE(trisk), edge_num156 157 ALLOC1(left, edge_num) 157 158 ALLOC1(right, edge_num) … … 177 178 trisk_deg(:)=trisk_deg_(:) 178 179 trisk(:,:)=trisk_(:,:) 179 PRINT *, MAXVAL(primal_edge), edge_num 180 PRINT *, MAXVAL(dual_edge), edge_num 181 PRINT *, MAXVAL(dual_vertex), dual_num 182 PRINT *, MAXVAL(trisk), edge_num 183 PRINT *, MAX(MAXVAL(left),MAXVAL(right)), primal_num 184 PRINT *, MAX(MAXVAL(up),MAXVAL(down)), dual_num 185 PRINT *, SHAPE(trisk), edge_num 186 PRINT *,' ... Done.' 180 IF(is_mpi_master) THEN 181 PRINT *, MAXVAL(primal_edge), edge_num 182 PRINT *, MAXVAL(dual_edge), edge_num 183 PRINT *, MAXVAL(dual_vertex), dual_num 184 PRINT *, MAXVAL(trisk), edge_num 185 PRINT *, MAX(MAXVAL(left),MAXVAL(right)), primal_num 186 PRINT *, MAX(MAXVAL(up),MAXVAL(down)), dual_num 187 PRINT *, SHAPE(trisk), edge_num 188 PRINT *,' ... Done.' 189 END IF 187 190 END SUBROUTINE init_mesh 188 191 … … 194 197 DBL :: Ai_(primal_num), Av_(dual_num), fv_(dual_num), le_de_(edge_num), & 195 198 Riv2_(max_dual_deg,dual_num), wee_(max_trisk_deg,edge_num) 196 PRINT *, 'init_metric ...'199 IF(is_mpi_master) PRINT *, 'init_metric ...' 197 200 ALLOC1(Ai,primal_num) 198 201 ALLOC1(Av,dual_num) … … 207 210 Riv2(:,:)=Riv2_(:,:) 208 211 wee(:,:) = wee_(:,:) 209 PRINT *, 'Max Ai : ', MAXVAL(ABS(Ai)) 210 PRINT *, 'Max Av : ', MAXVAL(ABS(Av)) 211 PRINT *, 'Max fv : ', MAXVAL(ABS(fv)) 212 PRINT *, 'Max le_de : ', MAXVAL(ABS(le_de)) 213 PRINT *, 'Max Riv2 : ', MAXVAL(ABS(Riv2)) 214 PRINT *, 'Max wee : ', MAXVAL(ABS(wee)) 215 PRINT *, MINVAL(right), MAXVAL(right) 216 PRINT *, MINVAL(right), MAXVAL(left) 217 PRINT *,' ... Done.' 218 IF(nb_threads==0) nb_threads=OMP_GET_MAX_THREADS() 219 PRINT *,'OpenMP : max_threads, num_procs, nb_threads', OMP_GET_MAX_THREADS(), OMP_GET_NUM_PROCS(), nb_threads 212 IF(is_mpi_master) THEN 213 PRINT *, 'Max Ai : ', MAXVAL(ABS(Ai)) 214 PRINT *, 'Max Av : ', MAXVAL(ABS(Av)) 215 PRINT *, 'Max fv : ', MAXVAL(ABS(fv)) 216 PRINT *, 'Max le_de : ', MAXVAL(ABS(le_de)) 217 PRINT *, 'Max Riv2 : ', MAXVAL(ABS(Riv2)) 218 PRINT *, 'Max wee : ', MAXVAL(ABS(wee)) 219 PRINT *, MINVAL(right), MAXVAL(right) 220 PRINT *, MINVAL(right), MAXVAL(left) 221 PRINT *,' ... Done.' 222 IF(nb_threads==0) nb_threads=OMP_GET_MAX_THREADS() 223 PRINT *,'OpenMP : max_threads, num_procs, nb_threads', OMP_GET_MAX_THREADS(), OMP_GET_NUM_PROCS(), nb_threads 224 END IF 220 225 END SUBROUTINE init_metric 221 226 ! … … 225 230 ! 226 231 SUBROUTINE init_params() BINDC(init_params) 227 PRINT *, 'Setting physical parameters ...'228 IF(hydrostatic) THEN229 PRINT *, 'Hydrostatic dynamics (HPE)'230 ELSE231 PRINT *, 'Non-hydrostatic dynamics (Euler)'232 END IF233 232 kappa = Rd/cpp 234 PRINT *, 'g = ',g 235 PRINT *, 'preff = ',preff 236 PRINT *, 'Treff = ',Treff 237 PRINT *, 'Rd = ',Rd 238 PRINT *, 'cpp = ',cpp 239 PRINT *, 'kappa = ',kappa 240 PRINT *, '... Done' 233 IF(is_mpi_master) THEN 234 PRINT *, 'Setting physical parameters ...' 235 IF(hydrostatic) THEN 236 PRINT *, 'Hydrostatic dynamics (HPE)' 237 ELSE 238 PRINT *, 'Non-hydrostatic dynamics (Euler)' 239 END IF 240 PRINT *, 'g = ',g 241 PRINT *, 'preff = ',preff 242 PRINT *, 'Treff = ',Treff 243 PRINT *, 'Rd = ',Rd 244 PRINT *, 'cpp = ',cpp 245 PRINT *, 'kappa = ',kappa 246 PRINT *, '... Done' 247 END IF 241 248 CALL init_trace 242 249 END SUBROUTINE init_params … … 245 252 DBL :: bl(llm+1, primal_num), & 246 253 dak(llm, primal_num), dbk(llm, primal_num) 247 PRINT *, 'Setting hybrid coefficients ...'254 IF(is_mpi_master) PRINT *, 'Setting hybrid coefficients ...' 248 255 ALLOC2(mass_bl, llm+1, primal_num) 249 256 ALLOC2(mass_dak, llm, primal_num) … … 252 259 mass_dak(:,:) = dak(:,:) 253 260 mass_dbk(:,:) = dbk(:,:) 254 PRINT *, '... Done, llm = ', llm261 IF(is_mpi_master) PRINT *, '... Done, llm = ', llm 255 262 END SUBROUTINE Init_hybrid 256 263 -
codes/icosagcm/devel/src/unstructured/timestep_unstructured.F90
r792 r802 305 305 ! This is the case when calling from Python after importing mpi4py 306 306 INTEGER :: ierr, mpi_threading_mode 307 308 307 PRINT *, 'Initialize XIOS and obtain our communicator' 309 308 CALL xios_initialize("icosagcm",return_comm=comm_icosa) 310 311 PRINT *, 'Initialize our XIOS context'312 313 309 CALL xios_context_initialize("icosagcm",comm_icosa) 314 310 CALL xios_get_handle("icosagcm",ctx_hdl) -
codes/icosagcm/devel/src/unstructured/transfer_unstructured.F90
r700 r802 37 37 INTEGER(C_INT) :: send_rank(send_num), send_len(send_num), send_list(send_size), & 38 38 recv_rank(recv_num), recv_len(recv_num), recv_list(recv_size) 39 PRINT *, 'init_transfer', index, &39 IF(debug_on) PRINT *, 'init_transfer', index, & 40 40 send_num, send_size, '/', send_rank, '/', send_len, '/', & 41 41 recv_num, recv_size, '/', recv_rank, '/', recv_len, '/'
Note: See TracChangeset
for help on using the changeset viewer.