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 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/SBC/sbcclo.F90 – NEMO

Ignore:
Timestamp:
2021-11-26T12:27:56+01:00 (3 years ago)
Author:
sparonuz
Message:

Mixed precision version, tested up to 30 years on ORCA2.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/SBC/sbcclo.F90

    r14652 r15540  
    3939   PUBLIC sbc_clo_init 
    4040   ! 
    41    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: rsurfsrcg, rsurftrgg      !: closed sea source/target glo surface areas  
    42    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: rsurfsrcr, rsurftrgr      !: closed sea source/target rnf surface areas  
    43    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: rsurfsrce, rsurftrge      !: closed sea source/target emp surface areas  
     41   REAL(dp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: rsurfsrcg, rsurftrgg      !: closed sea source/target glo surface areas  
     42   REAL(dp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: rsurfsrcr, rsurftrgr      !: closed sea source/target rnf surface areas  
     43   REAL(dp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: rsurfsrce, rsurftrge      !: closed sea source/target emp surface areas  
    4444   ! 
    4545   INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:)  :: mcsgrpg, mcsgrpr, mcsgrpe !: closed sea group for glo, rnf and emp 
     
    105105      INTEGER         , INTENT(in   ) ::   kt       ! ocean model time step 
    106106      ! 
    107       REAL(wp), DIMENSION(jpi,jpj) :: zwcs, zqcs    ! water flux and heat flux correction due to closed seas 
     107      REAL(dp), DIMENSION(jpi,jpj) :: zwcs, zqcs    ! water flux and heat flux correction due to closed seas 
    108108      !!---------------------------------------------------------------------- 
    109109      ! 
     
    139139      INTEGER ,                 INTENT(in   ) :: kncs          ! closed sea number 
    140140      INTEGER , DIMENSION(:,:), INTENT(in   ) :: kmaskcs       ! closed sea mask 
    141       REAL(wp), DIMENSION(:)  , INTENT(  out) :: psurfsrc      ! source surface area 
     141      REAL(dp), DIMENSION(:)  , INTENT(  out) :: psurfsrc      ! source surface area 
    142142 
    143143      ! local variables 
     
    175175      ! output 
    176176      INTEGER , DIMENSION(:)  , INTENT(  out) :: kcsgrp              ! closed sea group number 
    177       REAL(wp), DIMENSION(:)  , INTENT(  out) :: psurftrg            ! target surface area 
     177      REAL(dp), DIMENSION(:)  , INTENT(  out) :: psurftrg            ! target surface area 
    178178 
    179179      ! local variables 
     
    224224      INTEGER, DIMENSION(:) , INTENT(in   ) :: kcsgrp              ! closed sea group number 
    225225      ! 
    226       REAL(wp), DIMENSION(:), INTENT(in   ) :: psurfsrc, psurftrg  ! source and target surface area 
     226      REAL(dp), DIMENSION(:), INTENT(in   ) :: psurfsrc, psurftrg  ! source and target surface area 
    227227      ! 
    228228      CHARACTER(LEN=3)      , INTENT(in   ) :: cdcstype            ! closed sea scheme used for redistribution 
     
    262262      INTEGER, DIMENSION(:,:), INTENT(in)     :: kmsk_src, kmsk_grp, kmsk_opnsea      ! source, target, open ocean mask 
    263263       
    264       REAL(wp), DIMENSION(:)  , INTENT(in   ) :: psurfsrc, psurftrg, psurf_opnsea ! source, target and open ocean surface area 
    265       REAL(wp), DIMENSION(:,:), INTENT(inout) :: pwcs, pqcs                       ! water and heat flux correction due to closed seas 
     264      REAL(dp), DIMENSION(:)  , INTENT(in   ) :: psurfsrc, psurftrg, psurf_opnsea ! source, target and open ocean surface area 
     265      REAL(dp), DIMENSION(:,:), INTENT(inout) :: pwcs, pqcs                       ! water and heat flux correction due to closed seas 
    266266 
    267267 
     
    270270      INTEGER, DIMENSION(jpi,jpj) :: imsk_src, imsk_trg  ! tmp array source and target closed sea masks 
    271271       
    272       REAL(wp) :: zcsfw, zcsh        ! total fresh water and associated heat over one closed sea 
    273       REAL(wp) :: zcsfwf             ! mean fresh water flux over one closed sea 
    274       REAL(wp) :: zsurftrg, zsurfsrc ! total target surface area 
     272      REAL(dp) :: zcsfw, zcsh        ! total fresh water and associated heat over one closed sea 
     273      REAL(dp) :: zcsfwf             ! mean fresh water flux over one closed sea 
     274      REAL(dp) :: zsurftrg, zsurfsrc ! total target surface area 
    275275      !!---------------------------------------------------------------------- 
    276276      ! 
     
    329329      INTEGER,  INTENT(in) :: klen 
    330330      INTEGER,  ALLOCATABLE, DIMENSION(:), INTENT(  out) :: kvargrp 
    331       REAL(wp), ALLOCATABLE, DIMENSION(:), INTENT(  out) :: pvarsrc, pvartrg  
     331      REAL(dp), ALLOCATABLE, DIMENSION(:), INTENT(  out) :: pvarsrc, pvartrg  
    332332      ! 
    333333      ! local variables 
Note: See TracChangeset for help on using the changeset viewer.