@@ -63,21 +63,19 @@ SUBROUTINE cp_para_env_create(para_env, group, source,mepos, num_pe,&
6363 CPPrecondition(.NOT. ASSOCIATED(para_env),cp_failure_level,routineP,error,failure)
6464 ALLOCATE(para_env,stat= stat)
6565 CPPostcondition(stat==0 ,cp_failure_level,routineP,error,failure)
66- IF (.NOT. failure) THEN
67- para_env%group= group
68- para_env%source= 0
69- para_env%ref_count= 1
70- para_env%owns_group= .TRUE.
71- IF (PRESENT (source)) para_env%source= source
72- IF (PRESENT (owns_group)) para_env%owns_group= owns_group
73- IF (.NOT. (PRESENT (mepos).AND. PRESENT (num_pe))) THEN
74- CALL cp_para_env_update(para_env,error= error)
75- ELSE
76- para_env%mepos= mepos
77- para_env%num_pe= num_pe
78- END IF
79- para_env%ionode= para_env%mepos==para_env%source
66+ para_env%group= group
67+ para_env%source= 0
68+ para_env%ref_count= 1
69+ para_env%owns_group= .TRUE.
70+ IF (PRESENT (source)) para_env%source= source
71+ IF (PRESENT (owns_group)) para_env%owns_group= owns_group
72+ IF (.NOT. (PRESENT (mepos).AND. PRESENT (num_pe))) THEN
73+ CALL cp_para_env_update(para_env,error= error)
74+ ELSE
75+ para_env%mepos= mepos
76+ para_env%num_pe= num_pe
8077 END IF
78+ para_env%ionode= para_env%mepos==para_env%source
8179 END SUBROUTINE cp_para_env_create
8280
8381! *****************************************************************************
@@ -102,10 +100,8 @@ SUBROUTINE cp_para_env_retain(para_env, error)
102100 failure= .FALSE.
103101
104102 CPPrecondition(ASSOCIATED(para_env),cp_failure_level,routineP,error,failure)
105- IF (.NOT. failure) THEN
106- CPPrecondition(para_env%ref_count>0 ,cp_failure_level,routineP,error,failure)
107- para_env%ref_count= para_env%ref_count+1
108- END IF
103+ CPPrecondition(para_env%ref_count>0 ,cp_failure_level,routineP,error,failure)
104+ para_env%ref_count= para_env%ref_count+1
109105 END SUBROUTINE cp_para_env_retain
110106
111107! *****************************************************************************
@@ -168,14 +164,10 @@ SUBROUTINE cp_para_env_update(para_env, error)
168164 failure=.FALSE.
169165
170166 CPPrecondition(ASSOCIATED(para_env),cp_failure_level,routineP,error,failure)
171- IF (.NOT.failure) THEN
172- CPPrecondition(para_env%ref_count>0,cp_failure_level,routineP,error,failure)
173- END IF
174- IF (.NOT.failure) THEN
175- CALL mp_environ(taskid=para_env%mepos,numtask=para_env%num_pe,&
176- groupid=para_env%group)
177- para_env%ionode=para_env%mepos==para_env%source
178- END IF
167+ CPPrecondition(para_env%ref_count>0,cp_failure_level,routineP,error,failure)
168+ CALL mp_environ(taskid=para_env%mepos,numtask=para_env%num_pe,&
169+ groupid=para_env%group)
170+ para_env%ionode=para_env%mepos==para_env%source
179171 END SUBROUTINE cp_para_env_update
180172
181173! *****************************************************************************
@@ -253,23 +245,21 @@ SUBROUTINE cp_cart_create(cart, group, ndims,owns_group, error)
253245 CPPrecondition(.NOT.ASSOCIATED(cart),cp_failure_level,routineP,error,failure)
254246 ALLOCATE(cart,stat=stat)
255247 CPPostcondition(stat==0,cp_failure_level,routineP,error,failure)
256- IF (.NOT.failure) THEN
257- cart%owns_group=.TRUE.
258- IF (PRESENT(owns_group)) cart%owns_group=owns_group
259- cart%ndims=ndims
260- cart%group=group
261-
262- ALLOCATE(cart%source(ndims),cart%periodic(ndims),cart%mepos(ndims),&
263- cart%num_pe(ndims),stat=stat)
264- CPPostcondition(stat==0,cp_fatal_level,routineP,error,failure)
265-
266- cart%source=0
267- cart%mepos=0
268- cart%periodic=.FALSE.
269- cart%ref_count=1
270- cart%ntask=1
271- CALL cp_cart_update(cart,error=error)
272- END IF
248+ cart%owns_group=.TRUE.
249+ IF (PRESENT(owns_group)) cart%owns_group=owns_group
250+ cart%ndims=ndims
251+ cart%group=group
252+
253+ ALLOCATE(cart%source(ndims),cart%periodic(ndims),cart%mepos(ndims),&
254+ cart%num_pe(ndims),stat=stat)
255+ CPPostcondition(stat==0,cp_fatal_level,routineP,error,failure)
256+
257+ cart%source=0
258+ cart%mepos=0
259+ cart%periodic=.FALSE.
260+ cart%ref_count=1
261+ cart%ntask=1
262+ CALL cp_cart_update(cart,error=error)
273263 END SUBROUTINE cp_cart_create
274264
275265! *****************************************************************************
@@ -292,11 +282,9 @@ SUBROUTINE cp_cart_update(cart,error)
292282
293283 CPPrecondition(ASSOCIATED(cart),cp_failure_level,routineP,error,failure)
294284 CPPrecondition(cart%ref_count>0,cp_failure_level,routineP,error,failure)
295- IF (.NOT. failure) THEN
296- CALL mp_environ( cart%group, cart%ndims, cart%num_pe, task_coor=cart%mepos, &
297- periods=cart%periodic)
298- CALL mp_environ( numtask=cart%ntask, taskid=cart%rank, groupid=cart%group)
299- END IF
285+ CALL mp_environ( cart%group, cart%ndims, cart%num_pe, task_coor=cart%mepos, &
286+ periods=cart%periodic)
287+ CALL mp_environ( numtask=cart%ntask, taskid=cart%rank, groupid=cart%group)
300288END SUBROUTINE cp_cart_update
301289
302290! *****************************************************************************
@@ -353,10 +341,8 @@ SUBROUTINE cp_cart_retain(cart,error)
353341 failure=.FALSE.
354342
355343 CPPrecondition(ASSOCIATED(cart),cp_failure_level,routineP,error,failure)
356- IF (.NOT. failure) THEN
357- CPPrecondition(cart%ref_count>0,cp_failure_level,routineP,error,failure)
358- cart%ref_count=cart%ref_count+1
359- END IF
344+ CPPrecondition(cart%ref_count>0,cp_failure_level,routineP,error,failure)
345+ cart%ref_count=cart%ref_count+1
360346END SUBROUTINE cp_cart_retain
361347
362348! *****************************************************************************
0 commit comments