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 9168 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DIU/diurnal_bulk.F90 – NEMO

Ignore:
Timestamp:
2017-12-23T13:27:17+01:00 (6 years ago)
Author:
gm
Message:

dev_merge_2017: OPA_SRC & CONFIG: remove useless warning when reading namelist_cfg

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DIU/diurnal_bulk.F90

    r6010 r9168  
    1919    
    2020   IMPLICIT NONE 
     21   PRIVATE 
    2122    
    2223   ! Namelist parameters 
     
    3435   !                                                           ! absorbed radiation 
    3536 
    36    PRIVATE 
    3737   PUBLIC diurnal_sst_bulk_init, diurnal_sst_takaya_step 
    3838    
    39    CONTAINS  
     39   !!---------------------------------------------------------------------- 
     40CONTAINS  
    4041    
    4142   SUBROUTINE diurnal_sst_bulk_init 
     
    4344      !! *** ROUTINE diurnal_sst_init *** 
    4445      !! 
    45       !! ** Purpose : Initialise the Takaya diurnal model 
    46        
    47       !!---------------------------------------------------------------------- 
    48        
    49       IMPLICIT NONE 
    50        
    51       INTEGER :: ios 
    52        
     46      !! ** Purpose : Initialise the Takaya diurnal model    
     47      !!----------------------------------------------------------------------       
     48      INTEGER ::   ios   ! local integer 
     49      !! 
    5350      NAMELIST /namdiu/ ln_diurnal, ln_diurnal_only 
    54        
     51      !!----------------------------------------------------------------------       
     52 
    5553      ! Read the namelist 
    5654      REWIND( numnam_ref ) 
    57       READ( numnam_ref, namdiu, IOSTAT = ios, ERR = 901 ) 
    58 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdiu in reference namelist', lwp ) 
     55      READ  ( numnam_ref, namdiu, IOSTAT = ios, ERR = 901 ) 
     56901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namdiu in reference namelist', lwp ) 
    5957      REWIND( numnam_cfg ) 
    60       READ( numnam_cfg, namdiu, IOSTAT = ios, ERR = 902 ) 
    61 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdiu in configuration namelist', lwp )       
    62        
    63       IF ( ln_diurnal_only .AND. ( .NOT. ln_diurnal ) ) THEN 
     58      READ  ( numnam_cfg, namdiu, IOSTAT = ios, ERR = 902 ) 
     59902   IF( ios >  0 )  CALL ctl_nam ( ios , 'namdiu in configuration namelist', lwp )       
     60      ! 
     61      IF( ln_diurnal_only .AND. ( .NOT. ln_diurnal ) ) THEN 
    6462         CALL ctl_stop( "ln_diurnal_only set, but ln_diurnal = FALSE !" ) 
    6563      ENDIF 
    6664       
    67       IF ( ln_diurnal ) THEN       
    68           
    69          ! Allocate arrays 
     65      IF( ln_diurnal ) THEN       
     66         !          
    7067         ALLOCATE( x_dsst(jpi,jpj), x_solfrac(jpi,jpj) ) 
    71           
    72          ! Initialise the solar fraction 
    73          x_solfrac = 0._wp 
    74          x_dsst = 0._wp 
    75  
    76          IF ( ln_diurnal_only ) THEN 
     68         ! 
     69         x_solfrac = 0._wp         ! Initialise the solar fraction 
     70         x_dsst    = 0._wp 
     71         ! 
     72         IF( ln_diurnal_only ) THEN 
    7773            CALL ctl_warn( "ln_diurnal_only set; only the diurnal component of SST will be calculated" ) 
    7874         ENDIF 
     
    8076       
    8177   END SUBROUTINE diurnal_sst_bulk_init 
    82     
    83    SUBROUTINE diurnal_sst_takaya_step(kt, psolflux, pqflux, ptauflux, prho, p_rdt,& 
     78 
     79 
     80   SUBROUTINE diurnal_sst_takaya_step(kt, psolflux, pqflux, ptauflux, prho, p_rdt,   & 
    8481            &                  pla, pthick, pcoolthick, pmu, & 
    8582            &                  p_fvel_bkginc, p_hflux_bkginc) 
     
    9693      !!                temperature, Takaya et al, JGR, 2010  
    9794      !!---------------------------------------------------------------------- 
    98        
    99       IMPLICIT NONE 
    100        
    101       ! Dummy variables 
    102       REAL(wp), INTENT(IN), DIMENSION(jpi,jpj) :: psolflux  ! solar flux (Watts) 
    103       REAL(wp), INTENT(IN), DIMENSION(jpi,jpj) :: pqflux    ! heat (non-solar)  
    104       !                                                     ! flux (Watts) 
    105       REAL(wp), INTENT(IN), DIMENSION(jpi,jpj) :: ptauflux  ! wind stress  
    106       !                                                     ! (kg/ m s^2) 
    107       REAL(wp), INTENT(IN), DIMENSION(jpi,jpj) :: prho      ! water density  
    108       !                                                     ! (kg/m^3) 
    109       REAL(wp), OPTIONAL, INTENT(IN), DIMENSION(jpi,jpj) :: pLa     
    110       !                                                     ! Langmuir number 
    111       REAL(wp), OPTIONAL, INTENT(IN), DIMENSION(jpi,jpj) :: pthick  
    112       !                                                     ! warm layer thickness (m) 
    113       REAL(wp), OPTIONAL, INTENT(IN), DIMENSION(jpi,jpj) :: pcoolthick  
    114       !                                                     ! cool skin thickness (m) 
    115       REAL(wp), OPTIONAL, INTENT(IN), DIMENSION(jpi,jpj) :: pmu     
    116       !                                                     ! mu parameter 
    117       REAL(wp), OPTIONAL, INTENT(IN), DIMENSION(jpi,jpj) :: p_hflux_bkginc   
    118       !                                                     ! optional increment to the 
    119       !                                                     ! heat flux 
    120       REAL(wp), OPTIONAL, INTENT(IN), DIMENSION(jpi,jpj) :: p_fvel_bkginc   
    121       !                                                     ! optional increment to the 
    122       !                                                     ! friction velocity 
    123       REAL(wp), INTENT(IN) :: p_rdt                         ! time-step 
    124        
    125       ! Local variables  
     95      INTEGER                               , INTENT(in) ::   kt             ! time step 
     96      REAL(wp), DIMENSION(jpi,jpj)          , INTENT(in) ::   psolflux       ! solar flux (Watts) 
     97      REAL(wp), DIMENSION(jpi,jpj)          , INTENT(in) ::   pqflux         ! heat (non-solar) flux (Watts) 
     98      REAL(wp), DIMENSION(jpi,jpj)          , INTENT(in) ::   ptauflux       ! wind stress  (kg/ m s^2) 
     99      REAL(wp), DIMENSION(jpi,jpj)          , INTENT(in) ::   prho           ! water density  (kg/m^3) 
     100      REAL(wp)                              , INTENT(in) ::   p_rdt          ! time-step 
     101      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) ::   pLa            ! Langmuir number 
     102      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) ::   pthick         ! warm layer thickness (m) 
     103      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) ::   pcoolthick     ! cool skin thickness (m) 
     104      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) ::   pmu            ! mu parameter 
     105      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) ::   p_hflux_bkginc ! increment to the heat flux 
     106      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) ::   p_fvel_bkginc  ! increment to the friction velocity 
     107      ! 
     108      INTEGER :: ji,jj 
     109      LOGICAL  :: ll_calcfrac 
    126110      REAL(wp), DIMENSION(jpi,jpj) :: z_fvel              ! friction velocity      
    127111      REAL(wp), DIMENSION(jpi,jpj) :: zthick, zcoolthick, zmu, zla 
    128112      REAL(wp), DIMENSION(jpi,jpj) :: z_abflux            ! absorbed flux            
    129113      REAL(wp), DIMENSION(jpi,jpj) :: z_fla               ! Langmuir function value  
    130        
    131       LOGICAL  :: ll_calcfrac 
    132        
    133       INTEGER :: ji,jj 
    134       INTEGER, INTENT(IN) :: kt                           ! time step 
     114      !!---------------------------------------------------------------------- 
    135115 
    136116      ! Set optional arguments to their defaults 
    137       IF ( .NOT. PRESENT(pthick) ) THEN  
    138          zthick(:,:) = 3._wp 
    139       ELSE 
    140          zthick(:,:) = pthick(:,:) 
    141       ENDIF 
    142       IF ( .NOT. PRESENT(pcoolthick) ) THEN  
    143          zcoolthick(:,:) = 0._wp 
    144       ELSE 
    145          zcoolthick(:,:) = pcoolthick(:,:) 
    146       ENDIF 
    147       IF ( .NOT. PRESENT(pmu) ) THEN 
    148          zmu(:,:) = 0.3_wp 
    149       ELSE 
    150          zmu(:,:) = pmu(:,:) 
    151       ENDIF 
    152       IF ( .NOT. PRESENT(pla) ) THEN 
    153          zla(:,:) = 0.3_wp 
    154       ELSE 
    155          zla(:,:) = pla(:,:) 
     117      IF( .NOT. PRESENT( pthick )   ) THEN   ;   zthick(:,:) = 3._wp 
     118      ELSE                                   ;   zthick(:,:) = pthick(:,:) 
     119      ENDIF 
     120      IF( .NOT. PRESENT(pcoolthick) ) THEN   ;   zcoolthick(:,:) = 0._wp 
     121      ELSE                                   ;   zcoolthick(:,:) = pcoolthick(:,:) 
     122      ENDIF 
     123      IF( .NOT. PRESENT( pmu )      ) THEN   ;   zmu(:,:) = 0.3_wp 
     124      ELSE                                   ;   zmu(:,:) = pmu(:,:) 
     125      ENDIF 
     126      IF( .NOT. PRESENT(pla) ) THEN          ;   zla(:,:) = 0.3_wp 
     127      ELSE                                   ;   zla(:,:) = pla(:,:) 
    156128      ENDIF 
    157129       
     
    161133            DO ji = 1, jpi 
    162134               IF(  ( x_solfrac(ji,jj) == 0._wp ) .AND. ( tmask(ji,jj,1) == 1._wp ) ) & 
    163                &   x_solfrac(ji,jj) = solfrac( zcoolthick(ji,jj),zthick(ji,jj) ) 
     135                  &   x_solfrac(ji,jj) = solfrac( zcoolthick(ji,jj),zthick(ji,jj) ) 
    164136            END DO 
    165137         END DO    
     
    195167       
    196168      ! Increment the temperature using the implicit solution 
    197       x_dsst(:,:) = t_imp( x_dsst(:,:), p_rdt, z_abflux(:,:), z_fvel(:,:), & 
    198                                  z_fla(:,:), zmu(:,:), zthick(:,:), prho(:,:)) 
    199        
    200                                  
    201        
     169      x_dsst(:,:) = t_imp( x_dsst(:,:), p_rdt, z_abflux(:,:), z_fvel(:,:),   & 
     170         &                       z_fla(:,:), zmu(:,:), zthick(:,:), prho(:,:) ) 
     171      ! 
    202172   END SUBROUTINE diurnal_sst_takaya_step 
    203173 
Note: See TracChangeset for help on using the changeset viewer.