Ignore:
Timestamp:
2022-04-14T10:01:23+02:00 (2 years ago)
Author:
josefine.ghattas
Message:

Integrate routing scheme "highres" developped by Jan Polcher, tested and integrated in ORCHIDEE_2_2 by Lucia Rinchiuso. This corresponds to the revision 7574 of perso/lucia.rinchiuso/myORCHIDEE_2_2_r7481. The developements of the routing scheme from branches/ORCHIDEE-ROUTING at revision 7545 are taken into account.

See also ticket #842

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ORCHIDEE_2_2/ORCHIDEE/src_parallel/ioipsl_para.f90

    r5811 r7576  
    4646  USE mod_orchidee_para_var 
    4747  USE mod_orchidee_transfert_para 
     48  USE constantes_var, ONLY: val_exp 
    4849!- 
    4950  IMPLICIT NONE 
     
    8687     MODULE PROCEDURE & 
    8788          restput_p_r3d, restput_p_r2d, restput_p_r1d, & 
    88           restput_p_opp_r2d, restput_p_opp_r1d 
     89          restput_p_opp_r2d, restput_p_opp_r1d, & 
     90          restput_p_nogrid_r_scal, restput_p_nogrid_i_scal 
    8991  END INTERFACE 
    9092!- 
     
    98100  !! \n 
    99101  !_ ================================================================================================================================ 
    100  INTERFACE restget_p 
     102  INTERFACE restget_p 
    101103     MODULE PROCEDURE & 
    102104          restget_p_r3d, restget_p_r2d, restget_p_r1d, & 
    103           restget_p_opp_r2d, restget_p_opp_r1d 
     105          restget_p_opp_r2d, restget_p_opp_r1d, & 
     106          restget_p_nogrid_r_scal, restget_p_nogrid_i_scal 
    104107  END INTERFACE 
    105108 
     
    971974  END SUBROUTINE histwrite_r3d_p 
    972975 
     976  !!  ============================================================================================================================= 
     977!! SUBROUTINE:   restput_p_nogrid_r_scal 
     978!! 
     979!>\BRIEF          save real scalar (non-grid) data into the restart file 
     980!! 
     981!! DESCRIPTION:  Need to be call by all process 
     982!! 
     983!! \n 
     984!_ ============================================================================================================================== 
     985  SUBROUTINE restput_p_nogrid_r_scal (fid,vname_q,itau,var) 
     986    IMPLICIT NONE 
     987!- 
     988    INTEGER :: fid 
     989    CHARACTER(LEN=*) :: vname_q 
     990    INTEGER :: itau 
     991    REAL :: var 
     992    !----------------------------- 
     993    REAL :: xtmp(1) 
     994 
     995    IF (is_root_prc) THEN 
     996       xtmp(1) = var 
     997       CALL restput (fid, vname_q, 1, 1, 1, itau, xtmp) 
     998    ENDIF 
     999 
     1000  END SUBROUTINE restput_p_nogrid_r_scal 
     1001 
     1002  !!  ============================================================================================================================= 
     1003!! SUBROUTINE:   restput_p_nogrid_i_scal 
     1004!! 
     1005!>\BRIEF          save integer scalar (non-grid) data into the restart file 
     1006!! 
     1007!! DESCRIPTION:  Need to be call by all process 
     1008!! 
     1009!! \n 
     1010!_ ============================================================================================================================== 
     1011  SUBROUTINE restput_p_nogrid_i_scal (fid,vname_q,itau,var) 
     1012    IMPLICIT NONE 
     1013!- 
     1014    INTEGER :: fid 
     1015    CHARACTER(LEN=*) :: vname_q 
     1016    INTEGER :: itau 
     1017    INTEGER :: var 
     1018    !----------------------------- 
     1019    REAL :: xtmp(1) 
     1020    REAL :: realvar 
     1021 
     1022    IF (is_root_prc) THEN 
     1023       realvar = REAL(var,r_std) 
     1024       xtmp(1) = realvar 
     1025       CALL restput (fid, vname_q, 1, 1, 1, itau, xtmp) 
     1026    ENDIF 
     1027 
     1028  END SUBROUTINE restput_p_nogrid_i_scal 
     1029 
     1030!!  ============================================================================================================================= 
     1031!! SUBROUTINE:   restget_p_nogrid_r_scal 
     1032!! 
     1033!>\BRIEF        Transform the data (real scalar) from the restart file onto the model grid 
     1034!! 
     1035!! DESCRIPTION:  
     1036!! \n 
     1037!_ ============================================================================================================================== 
     1038  SUBROUTINE restget_p_nogrid_r_scal & 
     1039  (fid,vname_q,itau,def_beha,def_val,var) 
     1040! 
     1041    IMPLICIT NONE 
     1042!- 
     1043    INTEGER, INTENT(in)             :: fid 
     1044    CHARACTER(LEN=*), INTENT(in)    :: vname_q 
     1045    INTEGER, INTENT(in)             :: itau 
     1046    LOGICAL, INTENT(in)             :: def_beha 
     1047    REAL, INTENT(in)                :: def_val 
     1048    REAL, INTENT(out) :: var 
     1049    !------------------------- 
     1050    REAL, DIMENSION(1) :: tmp 
     1051 
     1052    tmp(1) = var 
     1053    IF (is_root_prc) THEN 
     1054       var = val_exp 
     1055       CALL restget (fid, vname_q, 1 ,1  , 1, itau, def_beha, tmp) 
     1056       var = tmp(1) 
     1057       IF(var == val_exp) var = def_val 
     1058    ENDIF 
     1059    CALL bcast(var) 
     1060 
     1061  END SUBROUTINE restget_p_nogrid_r_scal 
     1062 
     1063  !!  ============================================================================================================================= 
     1064!! SUBROUTINE:   restget_p_nogrid_i_scal 
     1065!! 
     1066!>\BRIEF        Transform the data (integer scalar) from the restart file onto the model grid 
     1067!! 
     1068!! DESCRIPTION: 
     1069!! \n 
     1070!_ ============================================================================================================================== 
     1071  SUBROUTINE restget_p_nogrid_i_scal & 
     1072  (fid,vname_q,itau,def_beha,def_val,varint) 
     1073! 
     1074    IMPLICIT NONE 
     1075!- 
     1076    INTEGER, INTENT(in)             :: fid 
     1077    CHARACTER(LEN=*), INTENT(in)    :: vname_q 
     1078    INTEGER, INTENT(in)             :: itau 
     1079    LOGICAL, INTENT(in)             :: def_beha 
     1080    REAL, INTENT(in)                :: def_val 
     1081    INTEGER, INTENT(out) :: varint 
     1082    !------------------------- 
     1083    REAL :: tmp 
     1084 
     1085    CALL restget_p_nogrid_r_scal(fid, vname_q, itau, def_beha, def_val, tmp) 
     1086    varint = INT(tmp) 
     1087  END SUBROUTINE restget_p_nogrid_i_scal 
     1088 
    9731089 
    9741090END MODULE ioipsl_para 
Note: See TracChangeset for help on using the changeset viewer.