MODULE transport_unstructured_mod USE ISO_C_BINDING USE OMP_LIB USE data_unstructured_mod IMPLICIT NONE PRIVATE SAVE CONTAINS #include "unstructured.h90" #define HASNAN(field) (ANY(.NOT.ABS(field)<1e20)) SUBROUTINE remap_unstructured(rhodz, thetarhodz, u) BINDC(remap) FIELD_MASS :: rhodz, thetarhodz ! INOUT FIELD_U :: u ! INOUT ! DIAG FIELD_PS :: new_rhodz_cum, mass_col FIELD_MASS :: old_rhodz FIELD_GEOPOT :: eta, rhodz_cum, thetarhodz_cum, new_thetarhodz_cum FIELD_U :: urhodz FIELD_UL :: urhodz_cum, new_urhodz_cum INTEGER, DIMENSION(primal_num) :: cur_lev NUM :: rhodz_cum_target, rhodz_cum_lev, rhodz_cum_levp1, X TIME :: time1,time2 INTEGER :: ij, l, level, edge, ij_left, ij_right time1=OMP_GET_WTIME() #include "../kernels_unst/remap_eta.k90" #include "../kernels_unst/remap_theta.k90" #include "../kernels_unst/remap_u.k90" time2=OMP_GET_WTIME() ! CALL CPU_TIME(time2) IF(time2>time1) elapsed = elapsed + time2-time1 CALL print_trace() END SUBROUTINE remap_unstructured END MODULE transport_unstructured_mod