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 5956 for branches/2015/dev_r5151_UKMO_ISF/NEMOGCM/TOOLS/SIREN/src/function.f90 – NEMO

Ignore:
Timestamp:
2015-11-30T20:55:41+01:00 (8 years ago)
Author:
mathiot
Message:

ISF : merged trunk (5936) into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5151_UKMO_ISF/NEMOGCM/TOOLS/SIREN/src/function.f90

    r5037 r5956  
    5151!> @endcode 
    5252!> 
     53!>  to check if character is real 
     54!> @code 
     55!>  ll_is_real=fct_is_real(cd_var) 
     56!> @endcode 
     57!> 
    5358!>  to split string into substring and return one of the element:<br/>   
    5459!> @code 
     
    8994! REVISION HISTORY: 
    9095!> @date November, 2013 - Initial Version 
    91 !> @date September, 2014 - add header 
     96!> @date September, 2014  
     97!> - add header 
    9298! 
    9399!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    106112   PUBLIC :: fct_lower    !< convert character from upper to lower case 
    107113   PUBLIC :: fct_is_num   !< check if character is numeric 
     114   PUBLIC :: fct_is_real  !< check if character is real 
    108115   PUBLIC :: fct_split    !< split string into substring 
    109116   PUBLIC :: fct_basename !< return basename (name without path) 
     
    153160   !  
    154161   !> @author J.Paul  
    155    !> - September, 2014- Initial Version  
     162   !> @date September, 2014 - Initial Version  
    156163   !  
    157164   !> @param[in] cd_char   string character 
     
    177184   !  
    178185   !> @author J.Paul  
    179    !> - September, 2014- Initial Version  
     186   !> @date September, 2014 - Initial Version  
    180187   !  
    181188   !> @param[in] cd_char   string character 
     
    201208   !  
    202209   !> @author J.Paul  
    203    !> - Nov, 2013- Initial Version  
     210   !> @date November, 2013 - Initial Version  
    204211   !  
    205212   !> @param[in] cd_char   string character 
     
    225232   !  
    226233   !> @author J.Paul  
    227    !> - November, 2013- Initial Version  
     234   !> @date November, 2013 - Initial Version  
    228235   !  
    229236   !> @param[in] cd_char   string character 
     
    249256   !  
    250257   !> @author J.Paul  
    251    !> - November, 2013- Initial Version  
     258   !> @date November, 2013 - Initial Version  
    252259   !  
    253260   !> @param[in] cd_char   string character 
     
    273280   !> 
    274281   !> @author J.Paul  
    275    !> - November, 2013- Initial Version  
     282   !> @date November, 2013 - Initial Version  
    276283   !> 
    277284   !> @param[in] cd_char   string character 
     
    297304   !> 
    298305   !> @author J.Paul  
    299    !> - November, 2013- Initial Version  
     306   !> @date November, 2013 - Initial Version  
    300307   !> 
    301308   !> @param[in] cd_char   string character 
     
    321328   !> 
    322329   !> @author J.Paul  
    323    !> - November, 2013- Initial Version  
     330   !> @date November, 2013 - Initial Version  
    324331   !> 
    325332   !> @return file id  
     
    344351   ! 
    345352   !> @author J.Paul 
    346    !> - November, 2013- Initial Version 
     353   !> @date November, 2013 - Initial Version 
    347354   !> 
    348355   !> @param[in] id_status 
     
    365372   ! 
    366373   !> @author J.Paul 
    367    !> - November, 2014- Initial Version 
     374   !> @date November, 2014 - Initial Version 
    368375   !> 
    369376   !> @param[in] cd_msg optional message to be added 
     
    387394   !> 
    388395   !> @author J.Paul 
    389    !> - November, 2013- Initial Version 
     396   !> @date November, 2013 - Initial Version 
    390397   ! 
    391398   !> @param[in] ld_var logical variable 
     
    409416   !> 
    410417   !> @author J.Paul 
    411    !> - November, 2013- Initial Version 
     418   !> @date November, 2013 - Initial Version 
    412419   ! 
    413420   !> @param[in] bd_var integer(1) variable 
     
    431438   !> 
    432439   !> @author J.Paul 
    433    !> - November, 2013- Initial Version 
     440   !> @date November, 2013 - Initial Version 
    434441   ! 
    435442   !> @param[in] sd_var integer(2) variable 
     
    453460   !> 
    454461   !> @author J.Paul 
    455    !> - November, 2013- Initial Version 
     462   !> @date November, 2013 - Initial Version 
    456463   ! 
    457464   !> @param[in] id_var integer(4) variable 
     
    475482   !> 
    476483   !> @author J.Paul 
    477    !> - November, 2013- Initial Version 
     484   !> @date November, 2013 - Initial Version 
    478485   ! 
    479486   !> @param[in] kd_var integer(8) variable 
     
    497504   !> 
    498505   !> @author J.Paul 
    499    !> - November, 2013- Initial Version 
     506   !> @date November, 2013 - Initial Version 
    500507   ! 
    501508   !> @param[in] rd_var real(4) variable 
     
    519526   !> 
    520527   !> @author J.Paul 
    521    !> - November, 2013- Initial Version 
     528   !> @date November, 2013 - Initial Version 
    522529   ! 
    523530   !> @param[in] dd_var real(8) variable 
     
    544551   !> 
    545552   !> @author J.Paul 
    546    !> - November, 2013- Initial Version 
     553   !> @date November, 2013 - Initial Version 
    547554   ! 
    548555   !> @param[in] cd_arr array of character 
     
    590597   ! 
    591598   !> @author J.Paul 
    592    !> - November, 2013- Initial Version 
     599   !> @date November, 2013 - Initial Version 
    593600   ! 
    594601   !> @param[in] cd_var character 
     
    647654   ! 
    648655   !> @author J.Paul 
    649    !> - November, 2013- Initial Version 
     656   !> @date November, 2013 - Initial Version 
    650657   ! 
    651658   !> @param[in] cd_var character 
     
    697704   ! 
    698705   !> @author J.Paul 
    699    !> - November, 2013- Initial Version 
     706   !> @date November, 2013 - Initial Version 
    700707   ! 
    701708   !> @param[in] cd_var character 
     
    723730   END FUNCTION fct_is_num 
    724731   !------------------------------------------------------------------- 
     732   !> @brief This function check if character is real number. 
     733   ! 
     734   !> @details 
     735   !> it allows exponantial and decimal number 
     736   !> exemple :  1e6, 2.3 
     737   !> 
     738   !> @author J.Paul 
     739   !> @date June, 2015 - Initial Version 
     740   ! 
     741   !> @param[in] cd_var character 
     742   !> @return character is numeric 
     743   !------------------------------------------------------------------- 
     744   PURE LOGICAL FUNCTION fct_is_real(cd_var) 
     745      IMPLICIT NONE 
     746      ! Argument       
     747      CHARACTER(LEN=*), INTENT(IN) :: cd_var 
     748    
     749      ! local variables 
     750      LOGICAL :: ll_exp 
     751      LOGICAL :: ll_dec 
     752    
     753      ! loop indices 
     754      INTEGER :: ji 
     755      !---------------------------------------------------------------- 
     756    
     757      ll_exp=.TRUE. 
     758      ll_dec=.FALSE. 
     759      DO ji=1,LEN(TRIM(cd_var)) 
     760         IF( IACHAR(cd_var(ji:ji)) >= IACHAR('0') .AND. & 
     761         &   IACHAR(cd_var(ji:ji)) <= IACHAR('9') )THEN 
     762    
     763            fct_is_real=.TRUE. 
     764            ll_exp=.FALSE. 
     765       
     766         ELSEIF( TRIM(cd_var(ji:ji))=='e' )THEN 
     767          
     768            IF( ll_exp .OR. ji== LEN(TRIM(cd_var)) )THEN 
     769               fct_is_real=.FALSE. 
     770               EXIT 
     771            ELSE  
     772               ll_exp=.TRUE. 
     773            ENDIF 
     774    
     775         ELSEIF( TRIM(cd_var(ji:ji))=='.' )THEN 
     776    
     777            IF( ll_dec )THEN 
     778               fct_is_real=.FALSE. 
     779               EXIT 
     780            ELSE 
     781               fct_is_real=.TRUE. 
     782               ll_dec=.TRUE. 
     783            ENDIF 
     784    
     785         ELSE 
     786    
     787            fct_is_real=.FALSE. 
     788            EXIT 
     789    
     790         ENDIF 
     791      ENDDO 
     792    
     793   END FUNCTION fct_is_real 
     794   !------------------------------------------------------------------- 
    725795   !> @brief This function split string of character  
    726796   !> using separator character, by default '|', 
     
    728798   ! 
    729799   !> @author J.Paul 
    730    !> - November, 2013- Initial Version 
     800   !> @date November, 2013 - Initial Version 
    731801   ! 
    732802   !> @param[in] cd_string string of character 
     
    808878   ! 
    809879   !> @author J.Paul 
    810    !> - November, 2013- Initial Version 
     880   !> @date November, 2013 - Initial Version 
    811881   ! 
    812882   !> @param[in] cd_string string of character 
     
    873943   !> Optionally you could specify another separator. 
    874944   !> @author J.Paul 
    875    !> - November, 2013- Initial Version 
     945   !> @date November, 2013 - Initial Version 
    876946   ! 
    877947   !> @param[in] cd_string filename 
     
    914984   !> Optionally you could specify another separator. 
    915985   !> @author J.Paul 
    916    !> - November, 2013- Initial Version 
     986   !> @date November, 2013 - Initial Version 
    917987   ! 
    918988   !> @param[in] cd_string filename 
Note: See TracChangeset for help on using the changeset viewer.