New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/LBC/lbcnfd.F90 – NEMO

Ignore:
Timestamp:
2020-09-14T17:40:34+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2195:update to trunk 13461

Location:
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@13382        sette 
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/LBC/lbcnfd.F90

    r10425 r13463  
    2020   USE dom_oce        ! ocean space and time domain  
    2121   USE in_out_manager ! I/O manager 
     22   USE lib_mpp        ! MPP library 
    2223 
    2324   IMPLICIT NONE 
     
    2526 
    2627   INTERFACE lbc_nfd 
    27       MODULE PROCEDURE   lbc_nfd_2d    , lbc_nfd_3d    , lbc_nfd_4d 
    28       MODULE PROCEDURE   lbc_nfd_2d_ptr, lbc_nfd_3d_ptr, lbc_nfd_4d_ptr 
    29       MODULE PROCEDURE   lbc_nfd_2d_ext 
     28      MODULE PROCEDURE   lbc_nfd_2d_sp    , lbc_nfd_3d_sp    , lbc_nfd_4d_sp 
     29      MODULE PROCEDURE   lbc_nfd_2d_ptr_sp, lbc_nfd_3d_ptr_sp, lbc_nfd_4d_ptr_sp 
     30      MODULE PROCEDURE   lbc_nfd_2d_ext_sp 
     31      MODULE PROCEDURE   lbc_nfd_2d_dp    , lbc_nfd_3d_dp    , lbc_nfd_4d_dp 
     32      MODULE PROCEDURE   lbc_nfd_2d_ptr_dp, lbc_nfd_3d_ptr_dp, lbc_nfd_4d_ptr_dp 
     33      MODULE PROCEDURE   lbc_nfd_2d_ext_dp 
    3034   END INTERFACE 
    3135   ! 
    3236   INTERFACE lbc_nfd_nogather 
    3337!                        ! Currently only 4d array version is needed 
    34      MODULE PROCEDURE   lbc_nfd_nogather_2d    , lbc_nfd_nogather_3d 
    35      MODULE PROCEDURE   lbc_nfd_nogather_4d 
    36      MODULE PROCEDURE   lbc_nfd_nogather_2d_ptr, lbc_nfd_nogather_3d_ptr 
     38     MODULE PROCEDURE   lbc_nfd_nogather_2d_sp    , lbc_nfd_nogather_3d_sp 
     39     MODULE PROCEDURE   lbc_nfd_nogather_4d_sp 
     40     MODULE PROCEDURE   lbc_nfd_nogather_2d_ptr_sp, lbc_nfd_nogather_3d_ptr_sp 
     41     MODULE PROCEDURE   lbc_nfd_nogather_2d_dp    , lbc_nfd_nogather_3d_dp 
     42     MODULE PROCEDURE   lbc_nfd_nogather_4d_dp 
     43     MODULE PROCEDURE   lbc_nfd_nogather_2d_ptr_dp, lbc_nfd_nogather_3d_ptr_dp 
    3744!     MODULE PROCEDURE   lbc_nfd_nogather_4d_ptr 
    3845   END INTERFACE 
    3946 
    40    TYPE, PUBLIC ::   PTR_2D   !: array of 2D pointers (also used in lib_mpp) 
    41       REAL(wp), DIMENSION (:,:)    , POINTER ::   pt2d 
    42    END TYPE PTR_2D 
    43    TYPE, PUBLIC ::   PTR_3D   !: array of 3D pointers (also used in lib_mpp) 
    44       REAL(wp), DIMENSION (:,:,:)  , POINTER ::   pt3d 
    45    END TYPE PTR_3D 
    46    TYPE, PUBLIC ::   PTR_4D   !: array of 4D pointers (also used in lib_mpp) 
    47       REAL(wp), DIMENSION (:,:,:,:), POINTER ::   pt4d 
    48    END TYPE PTR_4D 
     47   TYPE, PUBLIC ::   PTR_2D_dp   !: array of 2D pointers (also used in lib_mpp) 
     48      REAL(dp), DIMENSION (:,:)    , POINTER ::   pt2d 
     49   END TYPE PTR_2D_dp 
     50   TYPE, PUBLIC ::   PTR_3D_dp   !: array of 3D pointers (also used in lib_mpp) 
     51      REAL(dp), DIMENSION (:,:,:)  , POINTER ::   pt3d 
     52   END TYPE PTR_3D_dp 
     53   TYPE, PUBLIC ::   PTR_4D_dp   !: array of 4D pointers (also used in lib_mpp) 
     54      REAL(dp), DIMENSION (:,:,:,:), POINTER ::   pt4d 
     55   END TYPE PTR_4D_dp 
     56 
     57   TYPE, PUBLIC ::   PTR_2D_sp   !: array of 2D pointers (also used in lib_mpp) 
     58      REAL(sp), DIMENSION (:,:)    , POINTER ::   pt2d 
     59   END TYPE PTR_2D_sp 
     60   TYPE, PUBLIC ::   PTR_3D_sp   !: array of 3D pointers (also used in lib_mpp) 
     61      REAL(sp), DIMENSION (:,:,:)  , POINTER ::   pt3d 
     62   END TYPE PTR_3D_sp 
     63   TYPE, PUBLIC ::   PTR_4D_sp   !: array of 4D pointers (also used in lib_mpp) 
     64      REAL(sp), DIMENSION (:,:,:,:), POINTER ::   pt4d 
     65   END TYPE PTR_4D_sp 
     66 
    4967 
    5068   PUBLIC   lbc_nfd            ! north fold conditions 
     
    5270 
    5371   INTEGER, PUBLIC, PARAMETER            ::   jpmaxngh = 3               !: 
    54    INTEGER, PUBLIC                       ::   nsndto, nfsloop, nfeloop   !: 
     72   INTEGER, PUBLIC                       ::   nsndto                     !: 
    5573   INTEGER, PUBLIC, DIMENSION (jpmaxngh) ::   isendto                    !: processes to which communicate 
     74   INTEGER, PUBLIC                       ::   ijpj 
    5675 
    5776   !!---------------------------------------------------------------------- 
     
    7493   !!---------------------------------------------------------------------- 
    7594   ! 
    76    !                       !==  2D array and array of 2D pointer  ==! 
    77    ! 
    78 #  define DIM_2d 
    79 #     define ROUTINE_NFD           lbc_nfd_2d 
    80 #     include "lbc_nfd_generic.h90" 
    81 #     undef ROUTINE_NFD 
    82 #     define MULTI 
    83 #     define ROUTINE_NFD           lbc_nfd_2d_ptr 
     95   !                       !==  SINGLE PRECISION VERSIONS 
     96   ! 
     97   ! 
     98   !                       !==  2D array and array of 2D pointer  ==! 
     99   ! 
     100#  define SINGLE_PRECISION 
     101#  define DIM_2d 
     102#     define ROUTINE_NFD           lbc_nfd_2d_sp 
     103#     include "lbc_nfd_generic.h90" 
     104#     undef ROUTINE_NFD 
     105#     define MULTI 
     106#     define ROUTINE_NFD           lbc_nfd_2d_ptr_sp 
    84107#     include "lbc_nfd_generic.h90" 
    85108#     undef ROUTINE_NFD 
     
    90113   ! 
    91114#  define DIM_2d 
    92 #     define ROUTINE_NFD           lbc_nfd_2d_ext 
     115#     define ROUTINE_NFD           lbc_nfd_2d_ext_sp 
    93116#     include "lbc_nfd_ext_generic.h90" 
    94117#     undef ROUTINE_NFD 
     
    98121   ! 
    99122#  define DIM_3d 
    100 #     define ROUTINE_NFD           lbc_nfd_3d 
    101 #     include "lbc_nfd_generic.h90" 
    102 #     undef ROUTINE_NFD 
    103 #     define MULTI 
    104 #     define ROUTINE_NFD           lbc_nfd_3d_ptr 
    105 #     include "lbc_nfd_generic.h90" 
    106 #     undef ROUTINE_NFD 
    107 #     undef MULTI 
    108 #  undef DIM_3d 
    109    ! 
    110    !                       !==  4D array and array of 4D pointer  ==! 
    111    ! 
    112 #  define DIM_4d 
    113 #     define ROUTINE_NFD           lbc_nfd_4d 
    114 #     include "lbc_nfd_generic.h90" 
    115 #     undef ROUTINE_NFD 
    116 #     define MULTI 
    117 #     define ROUTINE_NFD           lbc_nfd_4d_ptr 
     123#     define ROUTINE_NFD           lbc_nfd_3d_sp 
     124#     include "lbc_nfd_generic.h90" 
     125#     undef ROUTINE_NFD 
     126#     define MULTI 
     127#     define ROUTINE_NFD           lbc_nfd_3d_ptr_sp 
     128#     include "lbc_nfd_generic.h90" 
     129#     undef ROUTINE_NFD 
     130#     undef MULTI 
     131#  undef DIM_3d 
     132   ! 
     133   !                       !==  4D array and array of 4D pointer  ==! 
     134   ! 
     135#  define DIM_4d 
     136#     define ROUTINE_NFD           lbc_nfd_4d_sp 
     137#     include "lbc_nfd_generic.h90" 
     138#     undef ROUTINE_NFD 
     139#     define MULTI 
     140#     define ROUTINE_NFD           lbc_nfd_4d_ptr_sp 
    118141#     include "lbc_nfd_generic.h90" 
    119142#     undef ROUTINE_NFD 
     
    126149   ! 
    127150#  define DIM_2d 
    128 #     define ROUTINE_NFD           lbc_nfd_nogather_2d 
    129 #     include "lbc_nfd_nogather_generic.h90" 
    130 #     undef ROUTINE_NFD 
    131 #     define MULTI 
    132 #     define ROUTINE_NFD           lbc_nfd_nogather_2d_ptr 
    133 #     include "lbc_nfd_nogather_generic.h90" 
    134 #     undef ROUTINE_NFD 
    135 #     undef MULTI 
    136 #  undef DIM_2d 
    137    ! 
    138    !                       !==  3D array and array of 3D pointer  ==! 
    139    ! 
    140 #  define DIM_3d 
    141 #     define ROUTINE_NFD           lbc_nfd_nogather_3d 
    142 #     include "lbc_nfd_nogather_generic.h90" 
    143 #     undef ROUTINE_NFD 
    144 #     define MULTI 
    145 #     define ROUTINE_NFD           lbc_nfd_nogather_3d_ptr 
    146 #     include "lbc_nfd_nogather_generic.h90" 
    147 #     undef ROUTINE_NFD 
    148 #     undef MULTI 
    149 #  undef DIM_3d 
    150    ! 
    151    !                       !==  4D array and array of 4D pointer  ==! 
    152    ! 
    153 #  define DIM_4d 
    154 #     define ROUTINE_NFD           lbc_nfd_nogather_4d 
     151#     define ROUTINE_NFD           lbc_nfd_nogather_2d_sp 
     152#     include "lbc_nfd_nogather_generic.h90" 
     153#     undef ROUTINE_NFD 
     154#     define MULTI 
     155#     define ROUTINE_NFD           lbc_nfd_nogather_2d_ptr_sp 
     156#     include "lbc_nfd_nogather_generic.h90" 
     157#     undef ROUTINE_NFD 
     158#     undef MULTI 
     159#  undef DIM_2d 
     160   ! 
     161   !                       !==  3D array and array of 3D pointer  ==! 
     162   ! 
     163#  define DIM_3d 
     164#     define ROUTINE_NFD           lbc_nfd_nogather_3d_sp 
     165#     include "lbc_nfd_nogather_generic.h90" 
     166#     undef ROUTINE_NFD 
     167#     define MULTI 
     168#     define ROUTINE_NFD           lbc_nfd_nogather_3d_ptr_sp 
     169#     include "lbc_nfd_nogather_generic.h90" 
     170#     undef ROUTINE_NFD 
     171#     undef MULTI 
     172#  undef DIM_3d 
     173   ! 
     174   !                       !==  4D array and array of 4D pointer  ==! 
     175   ! 
     176#  define DIM_4d 
     177#     define ROUTINE_NFD           lbc_nfd_nogather_4d_sp 
    155178#     include "lbc_nfd_nogather_generic.h90" 
    156179#     undef ROUTINE_NFD 
     
    161184!#     undef MULTI 
    162185#  undef DIM_4d 
    163  
    164    !!---------------------------------------------------------------------- 
     186#  undef SINGLE_PRECISION 
     187 
     188   !!---------------------------------------------------------------------- 
     189   ! 
     190   !                       !==  DOUBLE PRECISION VERSIONS 
     191   ! 
     192   ! 
     193   !                       !==  2D array and array of 2D pointer  ==! 
     194   ! 
     195#  define DIM_2d 
     196#     define ROUTINE_NFD           lbc_nfd_2d_dp 
     197#     include "lbc_nfd_generic.h90" 
     198#     undef ROUTINE_NFD 
     199#     define MULTI 
     200#     define ROUTINE_NFD           lbc_nfd_2d_ptr_dp 
     201#     include "lbc_nfd_generic.h90" 
     202#     undef ROUTINE_NFD 
     203#     undef MULTI 
     204#  undef DIM_2d 
     205   ! 
     206   !                       !==  2D array with extra haloes  ==! 
     207   ! 
     208#  define DIM_2d 
     209#     define ROUTINE_NFD           lbc_nfd_2d_ext_dp 
     210#     include "lbc_nfd_ext_generic.h90" 
     211#     undef ROUTINE_NFD 
     212#  undef DIM_2d 
     213   ! 
     214   !                       !==  3D array and array of 3D pointer  ==! 
     215   ! 
     216#  define DIM_3d 
     217#     define ROUTINE_NFD           lbc_nfd_3d_dp 
     218#     include "lbc_nfd_generic.h90" 
     219#     undef ROUTINE_NFD 
     220#     define MULTI 
     221#     define ROUTINE_NFD           lbc_nfd_3d_ptr_dp 
     222#     include "lbc_nfd_generic.h90" 
     223#     undef ROUTINE_NFD 
     224#     undef MULTI 
     225#  undef DIM_3d 
     226   ! 
     227   !                       !==  4D array and array of 4D pointer  ==! 
     228   ! 
     229#  define DIM_4d 
     230#     define ROUTINE_NFD           lbc_nfd_4d_dp 
     231#     include "lbc_nfd_generic.h90" 
     232#     undef ROUTINE_NFD 
     233#     define MULTI 
     234#     define ROUTINE_NFD           lbc_nfd_4d_ptr_dp 
     235#     include "lbc_nfd_generic.h90" 
     236#     undef ROUTINE_NFD 
     237#     undef MULTI 
     238#  undef DIM_4d 
     239   ! 
     240   !  lbc_nfd_nogather routines 
     241   ! 
     242   !                       !==  2D array and array of 2D pointer  ==! 
     243   ! 
     244#  define DIM_2d 
     245#     define ROUTINE_NFD           lbc_nfd_nogather_2d_dp 
     246#     include "lbc_nfd_nogather_generic.h90" 
     247#     undef ROUTINE_NFD 
     248#     define MULTI 
     249#     define ROUTINE_NFD           lbc_nfd_nogather_2d_ptr_dp 
     250#     include "lbc_nfd_nogather_generic.h90" 
     251#     undef ROUTINE_NFD 
     252#     undef MULTI 
     253#  undef DIM_2d 
     254   ! 
     255   !                       !==  3D array and array of 3D pointer  ==! 
     256   ! 
     257#  define DIM_3d 
     258#     define ROUTINE_NFD           lbc_nfd_nogather_3d_dp 
     259#     include "lbc_nfd_nogather_generic.h90" 
     260#     undef ROUTINE_NFD 
     261#     define MULTI 
     262#     define ROUTINE_NFD           lbc_nfd_nogather_3d_ptr_dp 
     263#     include "lbc_nfd_nogather_generic.h90" 
     264#     undef ROUTINE_NFD 
     265#     undef MULTI 
     266#  undef DIM_3d 
     267   ! 
     268   !                       !==  4D array and array of 4D pointer  ==! 
     269   ! 
     270#  define DIM_4d 
     271#     define ROUTINE_NFD           lbc_nfd_nogather_4d_dp 
     272#     include "lbc_nfd_nogather_generic.h90" 
     273#     undef ROUTINE_NFD 
     274!#     define MULTI 
     275!#     define ROUTINE_NFD           lbc_nfd_nogather_4d_ptr 
     276!#     include "lbc_nfd_nogather_generic.h90" 
     277!#     undef ROUTINE_NFD 
     278!#     undef MULTI 
     279#  undef DIM_4d 
     280 
     281   !!---------------------------------------------------------------------- 
     282 
    165283 
    166284 
Note: See TracChangeset for help on using the changeset viewer.