Changeset 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/ASM/asminc.F90
- Timestamp:
- 2021-11-26T12:27:56+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/ASM/asminc.F90
r14986 r15540 69 69 INTEGER, PUBLIC :: nn_divdmp !: Apply divergence damping filter nn_divdmp times 70 70 71 REAL( wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: t_bkg , s_bkg !: Background temperature and salinity72 REAL( wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: u_bkg , v_bkg !: Background u- & v- velocity components73 REAL( wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: t_bkginc, s_bkginc !: Increment to the background T & S74 REAL( wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: u_bkginc, v_bkginc !: Increment to the u- & v-components75 REAL( wp), PUBLIC, DIMENSION(:) , ALLOCATABLE :: wgtiau !: IAU weights for each time step71 REAL(dp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: t_bkg , s_bkg !: Background temperature and salinity 72 REAL(dp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: u_bkg , v_bkg !: Background u- & v- velocity components 73 REAL(dp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: t_bkginc, s_bkginc !: Increment to the background T & S 74 REAL(dp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: u_bkginc, v_bkginc !: Increment to the u- & v-components 75 REAL(dp), PUBLIC, DIMENSION(:) , ALLOCATABLE :: wgtiau !: IAU weights for each time step 76 76 #if defined key_asminc 77 77 REAL(wp), PUBLIC, DIMENSION(:,:) , ALLOCATABLE :: ssh_iau !: IAU-weighted sea surface height increment … … 85 85 INTEGER , PUBLIC :: niaufn !: Type of IAU weighing function: = 0 Constant weighting 86 86 ! !: = 1 Linear hat-like, centred in middle of IAU interval 87 REAL( wp), PUBLIC :: salfixmin !: Ensure that the salinity is larger than this value if (ln_salfix)88 89 REAL( wp), DIMENSION(:,:), ALLOCATABLE :: ssh_bkg, ssh_bkginc ! Background sea surface height and its increment90 REAL( wp), DIMENSION(:,:), ALLOCATABLE :: seaice_bkginc ! Increment to the background sea ice conc87 REAL(dp), PUBLIC :: salfixmin !: Ensure that the salinity is larger than this value if (ln_salfix) 88 89 REAL(dp), DIMENSION(:,:), ALLOCATABLE :: ssh_bkg, ssh_bkginc ! Background sea surface height and its increment 90 REAL(dp), DIMENSION(:,:), ALLOCATABLE :: seaice_bkginc ! Increment to the background sea ice conc 91 91 #if defined key_cice && defined key_asminc 92 92 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ndaice_da ! ice increment tendency into CICE … … 127 127 REAL(KIND=dp) :: ditiaufin_date ! Date YYYYMMDD.HHMMSS of IAU interval final time step 128 128 129 REAL( wp) :: znorm ! Normalization factor for IAU weights130 REAL( wp) :: ztotwgt ! Value of time-integrated IAU weights (should be equal to one)131 REAL( wp) :: z_inc_dateb ! Start date of interval on which increment is valid132 REAL( wp) :: z_inc_datef ! End date of interval on which increment is valid133 REAL( wp) :: zdate_bkg ! Date in background state file for DI134 REAL( wp) :: zdate_inc ! Time axis in increments file135 ! 136 REAL( wp), ALLOCATABLE, DIMENSION(:,:) :: zhdiv ! 2D workspace129 REAL(dp) :: znorm ! Normalization factor for IAU weights 130 REAL(dp) :: ztotwgt ! Value of time-integrated IAU weights (should be equal to one) 131 REAL(dp) :: z_inc_dateb ! Start date of interval on which increment is valid 132 REAL(dp) :: z_inc_datef ! End date of interval on which increment is valid 133 REAL(dp) :: zdate_bkg ! Date in background state file for DI 134 REAL(dp) :: zdate_inc ! Time axis in increments file 135 ! 136 REAL(dp), ALLOCATABLE, DIMENSION(:,:) :: zhdiv ! 2D workspace 137 137 !! 138 138 NAMELIST/nam_asminc/ ln_bkgwri, & … … 520 520 INTEGER :: ji, jj, jk 521 521 INTEGER :: it 522 REAL( wp) :: zincwgt ! IAU weight for current time step523 REAL( wp), DIMENSION(A2D(nn_hls),jpk) :: fzptnz ! 3d freezing point values522 REAL(dp) :: zincwgt ! IAU weight for current time step 523 REAL(dp), DIMENSION(A2D(nn_hls),jpk) :: fzptnz ! 3d freezing point values 524 524 !!---------------------------------------------------------------------- 525 525 ! … … 528 528 IF( ln_temnofreeze ) THEN 529 529 DO jk = 1, jpkm1 530 CALL eos_fzp( CASTWP(pts(:,:,jk,jp_sal,Kmm)), fzptnz(:,:,jk), CASTWP(gdept(:,:,jk,Kmm)) )530 CALL eos_fzp( pts(:,:,jk,jp_sal,Kmm), fzptnz(:,:,jk), gdept(:,:,jk,Kmm) ) 531 531 END DO 532 532 ENDIF … … 613 613 pts(:,:,:,:,Kbb) = pts(:,:,:,:,Kmm) ! Update before fields 614 614 615 CALL eos( CASTWP(pts(:,:,:,:,Kbb)), rhd, rhop, gdept_0(:,:,:) ) ! Before potential and in situ densities615 CALL eos( pts(:,:,:,:,Kbb), rhd, rhop, gdept_0(:,:,:) ) ! Before potential and in situ densities 616 616 !!gm fabien 617 617 ! CALL eos( pts(:,:,:,:,Kbb), rhd, rhop ) ! Before potential and in situ densities … … 654 654 INTEGER :: ji, jj, jk 655 655 INTEGER :: it 656 REAL( wp) :: zincwgt ! IAU weight for current time step656 REAL(dp) :: zincwgt ! IAU weight for current time step 657 657 !!---------------------------------------------------------------------- 658 658 ! … … 729 729 INTEGER :: it 730 730 INTEGER :: ji, jj, jk 731 REAL( wp) :: zincwgt ! IAU weight for current time step731 REAL(dp) :: zincwgt ! IAU weight for current time step 732 732 !!---------------------------------------------------------------------- 733 733 ! … … 813 813 INTEGER, INTENT(IN) :: kt ! ocean time-step index 814 814 INTEGER, INTENT(IN) :: Kbb, Kmm ! time level indices 815 REAL( wp), DIMENSION(:,:,:), INTENT(inout) :: phdivn ! horizontal divergence815 REAL(dp), DIMENSION(:,:,:), INTENT(inout) :: phdivn ! horizontal divergence 816 816 !! 817 817 INTEGER :: ji, jj, jk ! dummy loop index 818 REAL( wp), DIMENSION(:,:) , POINTER :: ztim ! local array818 REAL(dp), DIMENSION(:,:) , POINTER :: ztim ! local array 819 819 !!---------------------------------------------------------------------- 820 820 ! … … 858 858 INTEGER :: ji, jj 859 859 INTEGER :: it 860 REAL( wp) :: zincwgt ! IAU weight for current time step860 REAL(dp) :: zincwgt ! IAU weight for current time step 861 861 #if defined key_si3 862 862 REAL(wp), DIMENSION(A2D(nn_hls)) :: zofrld, zohicif, zseaicendg, zhicifinc
Note: See TracChangeset
for help on using the changeset viewer.