- Timestamp:
- 2016-10-28T11:13:57+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/variable.f90
r6393 r7153 34 34 !> Note:<br/> 35 35 !> - others optionals arguments could be added, see var_init. 36 !> - to put variable 0D, use td_dim with all dimension unused36 !> - to put scalar variable (OD), use td_dim with all dimension unused 37 37 !> (td_dim(:)%l_use=.FALSE.) 38 38 !> … … 267 267 !> - cd_varinfo is variable information from namelist 268 268 !> 269 !> to clean global array of variable structure:<br/> 270 !>@code 271 !> CALL var_clean_extra( ) 272 !>@endcode 273 !> 269 274 !> to check variable dimension expected, as defined in file 'variable.cfg':<br/> 270 275 !>@code … … 287 292 !> @date Spetember, 2015 288 293 !> - manage useless (dummy) variable 289 ! 294 !> @date October, 2016 295 !> - add subroutine to clean global array of extra information. 296 !> - define logical for variable to be used 297 !> 290 298 !> @note Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 291 299 !---------------------------------------------------------------------- … … 337 345 PUBLIC :: var_def_extra !< read variable configuration file, and save extra information. 338 346 PUBLIC :: var_chg_extra !< read variable namelist information, and modify extra information. 347 PUBLIC :: var_clean_extra !< clean gloabl array of extra information. 339 348 PUBLIC :: var_check_dim !< check variable dimension expected 340 349 PUBLIC :: var_get_dummy !< fill dummy variable array … … 416 425 TYPE(TDIM), DIMENSION(ip_maxdim) :: t_dim !< variable dimension 417 426 418 LOGICAL :: l_file = .FALSE. !< variable read in a file 427 LOGICAL :: l_file = .FALSE. !< variable read in a file 428 LOGICAL :: l_use = .TRUE. !< variable to be used 419 429 420 430 ! highlight some attributes … … 451 461 !< fill when running var_def_extra() 452 462 453 CHARACTER(LEN=lc), DIMENSION(ip_maxdum ), SAVE :: cm_dumvar !< dummy variable463 CHARACTER(LEN=lc), DIMENSION(ip_maxdumcfg), SAVE :: cm_dumvar !< dummy variable 454 464 455 465 INTERFACE var_init … … 593 603 CALL att_clean(tl_att) 594 604 ENDIF 605 606 var__copy_unit%l_file = td_var%l_file 607 var__copy_unit%l_use = td_var%l_use 595 608 596 609 ! copy highlight attribute … … 6669 6682 ! check if variable is in array of variable structure 6670 6683 DO ji=1,il_size 6684 6671 6685 ! look for variable name 6672 6686 IF( fct_lower(td_var(ji)%c_name) == fct_lower(cd_name) )THEN … … 6683 6697 6684 6698 ELSE IF( PRESENT(cd_stdname) )THEN 6699 6685 6700 IF( fct_lower(td_var(ji)%c_stdname) == fct_lower(cd_stdname) .AND.& 6686 6701 & TRIM(fct_lower(td_var(ji)%c_stdname)) /= '' )THEN … … 6690 6705 ENDIF 6691 6706 6707 ENDIF 6708 6692 6709 ! look for variable longname 6693 ELSEIF( fct_lower(td_var(ji)%c_longname) == fct_lower(cd_name) .AND.&6694 & 6710 IF( fct_lower(td_var(ji)%c_longname) == fct_lower(cd_name) .AND.& 6711 & TRIM(fct_lower(td_var(ji)%c_longname)) /= '' )THEN 6695 6712 6696 6713 var_get_index=ji 6697 6714 EXIT 6715 6716 ELSE IF( PRESENT(cd_stdname) )THEN 6717 6718 IF( fct_lower(td_var(ji)%c_longname) == fct_lower(cd_stdname) .AND.& 6719 & TRIM(fct_lower(td_var(ji)%c_longname)) /= '' )THEN 6720 6721 var_get_index=ji 6722 EXIT 6723 ENDIF 6698 6724 6699 6725 ENDIF … … 6734 6760 ! check if variable is in array of variable structure 6735 6761 DO ji=1,il_size 6762 6736 6763 ! look for variable name 6737 6764 IF( fct_lower(td_var(ji)%c_name) == fct_lower(cd_name) )THEN … … 6747 6774 EXIT 6748 6775 6749 ! look for variable long name 6750 ELSE IF( fct_lower(td_var(ji)%c_longname) == fct_lower(cd_name) .AND.& 6751 & TRIM(fct_lower(td_var(ji)%c_longname)) /= '' )THEN 6752 6753 var_get_id=td_var(ji)%i_id 6754 EXIT 6755 6756 ELSE IF( PRESENT(cd_stdname) )THEN 6776 ELSE IF( PRESENT(cd_stdname) )THEN 6777 6757 6778 IF( fct_lower(td_var(ji)%c_stdname) == fct_lower(cd_stdname) .AND.& 6758 6779 & TRIM(fct_lower(td_var(ji)%c_stdname)) /= '' )THEN … … 6761 6782 EXIT 6762 6783 ENDIF 6784 6785 ENDIF 6786 6787 ! look for variable long name 6788 IF( fct_lower(td_var(ji)%c_longname) == fct_lower(cd_name) .AND.& 6789 & TRIM(fct_lower(td_var(ji)%c_longname)) /= '' )THEN 6790 6791 var_get_id=td_var(ji)%i_id 6792 EXIT 6793 6794 ELSE IF( PRESENT(cd_stdname) )THEN 6795 6796 IF( fct_lower(td_var(ji)%c_longname) == fct_lower(cd_stdname) .AND.& 6797 & TRIM(fct_lower(td_var(ji)%c_longname)) /= '' )THEN 6798 6799 var_get_id=td_var(ji)%i_id 6800 EXIT 6801 ENDIF 6802 6763 6803 ENDIF 6764 6804 … … 7176 7216 !------------------------------------------------------------------- 7177 7217 !> @brief 7218 !> This subroutine clean global array of variable structure 7219 !> with extra information: tg_varextra. 7220 !> 7221 !> @author J.Paul 7222 !> @date October, 2016 - Initial Version 7223 !------------------------------------------------------------------- 7224 SUBROUTINE var_clean_extra( ) 7225 IMPLICIT NONE 7226 ! Argument 7227 !---------------------------------------------------------------- 7228 7229 CALL var_clean(tg_varextra(:)) 7230 DEALLOCATE(tg_varextra) 7231 7232 END SUBROUTINE var_clean_extra 7233 !------------------------------------------------------------------- 7234 !> @brief 7178 7235 !> This subroutine read matrix value from character string in namelist 7179 7236 !> and fill variable strucutre value. … … 8463 8520 ! loop indices 8464 8521 ! namelist 8465 CHARACTER(LEN=lc), DIMENSION(ip_maxdum ) :: cn_dumvar8466 CHARACTER(LEN=lc), DIMENSION(ip_maxdum ) :: cn_dumdim8467 CHARACTER(LEN=lc), DIMENSION(ip_maxdum ) :: cn_dumatt8522 CHARACTER(LEN=lc), DIMENSION(ip_maxdumcfg) :: cn_dumvar 8523 CHARACTER(LEN=lc), DIMENSION(ip_maxdumcfg) :: cn_dumdim 8524 CHARACTER(LEN=lc), DIMENSION(ip_maxdumcfg) :: cn_dumatt 8468 8525 8469 8526 !---------------------------------------------------------------- … … 8526 8583 8527 8584 var_is_dummy=.FALSE. 8528 DO ji=1,ip_maxdum 8585 DO ji=1,ip_maxdumcfg 8529 8586 IF( fct_lower(td_var%c_name) == fct_lower(cm_dumvar(ji)) )THEN 8530 8587 var_is_dummy=.TRUE.
Note: See TracChangeset
for help on using the changeset viewer.