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/DIA/diahth.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/DIA/diahth.F90

    r14219 r15540  
    3131    
    3232   ! note: following variables should move to local variables once iom_put is always used  
    33    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hth    !: depth of the max vertical temperature gradient [m] 
    34    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd20   !: depth of 20 C isotherm                         [m] 
    35    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd26   !: depth of 26 C isotherm                         [m] 
    36    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd28   !: depth of 28 C isotherm                         [m] 
    37    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc3   !: heat content of first 300 m                    [W] 
    38    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc7   !: heat content of first 700 m                    [W] 
    39    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc20  !: heat content of first 2000 m                   [W] 
     33   REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hth    !: depth of the max vertical temperature gradient [m] 
     34   REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd20   !: depth of 20 C isotherm                         [m] 
     35   REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd26   !: depth of 26 C isotherm                         [m] 
     36   REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd28   !: depth of 28 C isotherm                         [m] 
     37   REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc3   !: heat content of first 300 m                    [W] 
     38   REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc7   !: heat content of first 700 m                    [W] 
     39   REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc20  !: heat content of first 2000 m                   [W] 
    4040 
    4141 
     
    262262         IF( iom_use ('hc300') ) THEN   
    263263            zzdep = 300. 
    264             CALL  dia_hth_htc( Kmm, zzdep, CASTWP(ts(:,:,:,jp_tem,Kmm)), htc3 ) 
     264            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc3 ) 
    265265            CALL iom_put( 'hc300', rho0_rcp * htc3 )  ! vertically integrated heat content (J/m2) 
    266266         ENDIF 
     
    271271         IF( iom_use ('hc700') ) THEN   
    272272            zzdep = 700. 
    273             CALL  dia_hth_htc( Kmm, zzdep, CASTWP(ts(:,:,:,jp_tem,Kmm)), htc7 ) 
     273            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc7 ) 
    274274            CALL iom_put( 'hc700', rho0_rcp * htc7 )  ! vertically integrated heat content (J/m2) 
    275275   
     
    281281         IF( iom_use ('hc2000') ) THEN   
    282282            zzdep = 2000. 
    283             CALL  dia_hth_htc( Kmm, zzdep, CASTWP(ts(:,:,:,jp_tem,Kmm)), htc20 ) 
     283            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc20 ) 
    284284            CALL iom_put( 'hc2000', rho0_rcp * htc20 )  ! vertically integrated heat content (J/m2)   
    285285         ENDIF 
     
    296296      INTEGER , INTENT(in) :: Kmm      ! ocean time level index 
    297297      REAL(wp), INTENT(in) :: ptem 
    298       REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: pdept      
     298      REAL(dp), DIMENSION(jpi,jpj), INTENT(out) :: pdept      
    299299      ! 
    300300      INTEGER  :: ji, jj, jk, iid 
    301       REAL(wp) :: zztmp, zzdep 
     301      REAL(dp) :: zztmp, zzdep 
    302302      INTEGER, DIMENSION(jpi,jpj) :: iktem 
    303303       
     
    337337      INTEGER , INTENT(in) :: Kmm      ! ocean time level index 
    338338      REAL(wp), INTENT(in) :: pdep     ! depth over the heat content 
    339       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: pt    
    340       REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) :: phtc   
     339      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: pt    
     340      REAL(dp), DIMENSION(jpi,jpj), INTENT(inout) :: phtc   
    341341      ! 
    342342      INTEGER  :: ji, jj, jk, ik 
    343       REAL(wp), DIMENSION(jpi,jpj) :: zthick 
     343      REAL(dp), DIMENSION(jpi,jpj) :: zthick 
    344344      INTEGER , DIMENSION(jpi,jpj) :: ilevel 
    345345 
Note: See TracChangeset for help on using the changeset viewer.