Closed HyunChaeJung closed 1 year ago
디버깅 해야 할 사항 (USE, ONLY 문을 컨트롤 하는 코드 - delete_use.py)
# 수정 전
MODULE eg_sl_full_wind_mod
MODULE final_inlined_eg_sl_full_wind_mod
---
2.
```fortran
# 수정 전
END MODULE eg_sl_full_wind_mod
# 수정 후
END MODULE final_inlined_eg_sl_full_wind_mod
MODULE eg_v_at_poles_mod
USE global_2d_sums_mod, ONLY: & global_2d_sums
IMPLICIT NONE CHARACTER(LEN=*), PARAMETER, PRIVATE :: ModuleName = 'EG_V_AT_POLES_MOD'
CONTAINS SUBROUTINE eg_v_at_poles(u,v, pole_sgn_flip, & jj_u_pole, jj_v_pole, udim_in,vdim_in,u_pole_v,u_pole_u, & v_pole_out,xi1_pole_out)
USE parkind1, ONLY: jpim, jprb !DrHook USE yomhook, ONLY: lhook, dr_hook !DrHook
...
IF (lhook) CALL dr_hook(ModuleName//':'//RoutineName,zhook_out,zhook_handle) RETURN END SUBROUTINE eg_v_at_poles
SUBROUTINE eg_uv_at_poles_Bgrid & (u, row_length, rows, n_rows, & offx, offy, pole_consts, pole_sgn_flip, & j_pole_src, j_pole_dest, v)
...
END SUBROUTINE eg_uv_at_poles_Bgrid
IMPLICIT NONE
TYPE array_dims INTEGER :: i_start =-HUGE(INT(1)) INTEGER :: i_end = HUGE(INT(1)) INTEGER :: j_start =-HUGE(INT(1)) INTEGER :: j_end = HUGE(INT(1)) INTEGER :: k_start =-HUGE(INT(1)) INTEGER :: k_end = HUGE(INT(1)) INTEGER :: halo_i = HUGE(INT(1)) INTEGER :: halo_j = HUGE(INT(1)) END TYPE array_dims
CONTAINS SUBROUTINE eg_v_at_poles(u,v,xi1_u, xi1_p, xi2_p, pole_sgn_flip, & jj_u_pole, jj_v_pole, udim_in,vdim_in) USE conversions_mod, ONLY: pi
...
END SUBROUTINE eg_v_at_poles
END MODULE eg_v_at_poles_mod
---
- 수정 후
```fortran
MODULE eg_v_at_poles_mod
IMPLICIT NONE
CHARACTER(LEN=*), PARAMETER, PRIVATE :: ModuleName = 'EG_V_AT_POLES_MOD'
CONTAINS
SUBROUTINE eg_v_at_poles &
#if !defined(RECON)
(u,v, pole_sgn_flip, &
jj_u_pole, jj_v_pole, udim_in,vdim_in,u_pole_v,u_pole_u, &
v_pole_out,xi1_pole_out)
USE global_2d_sums_mod, ONLY: global_2d_sums
USE parkind1, ONLY: jpim, jprb !DrHook
USE yomhook, ONLY: lhook, dr_hook !DrHook
...
END DO
!$OMP END PARALLEL DO
#else
(u,v,xi1_u, xi1_p, xi2_p, pole_sgn_flip, &
jj_u_pole, jj_v_pole, udim_in,vdim_in)
TYPE array_dims
INTEGER :: i_start =-HUGE(INT(1))
INTEGER :: i_end = HUGE(INT(1))
INTEGER :: j_start =-HUGE(INT(1))
INTEGER :: j_end = HUGE(INT(1))
INTEGER :: k_start =-HUGE(INT(1))
INTEGER :: k_end = HUGE(INT(1))
INTEGER :: halo_i = HUGE(INT(1))
INTEGER :: halo_j = HUGE(INT(1))
END TYPE array_dims
...
END DO
#endif
IF (lhook) CALL dr_hook('EG_V_AT_POLES_MOD_inline'//':'//RoutineName,zhook_out,zhook_handle)
RETURN
END SUBROUTINE eg_v_at_poles
#if !defined(RECON)
SUBROUTINE eg_uv_at_poles_Bgrid &
...
END SUBROUTINE eg_uv_at_poles_Bgrid
#endif
END MODULE eg_v_at_poles_mod
atmos_physics1.F90 인라인 버전 코드 수정 사항
수정 후
MODULE final_inlined_atmos_physics1_mod
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
수정 후
END MODULE final_inlined_atmos_physics1_mod