Changeset 15161


Ignore:
Timestamp:
2021-07-29T18:58:32+02:00 (3 months ago)
Author:
dbruciaferri
Message:

adding initial condition for Iceland-Faroe Ridge

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.4_idealised_ovf/src/OCE/USR/usrdef_istate.F90

    r15156 r15161  
    5252      ! 
    5353      INTEGER                                              ::   ji, jj, kk, num_pnt, ierr0, ierr1 
    54       INTEGER, ALLOCATABLE                 , DIMENSION(:)  ::   ovf_ji, ovf_jj ! arrays for overflow 
     54      INTEGER , DIMENSION(38)                              ::   dst_ji, dst_jj ! arrays for overflow 
     55      INTEGER , DIMENSION(164)                             ::   ifr_ji, ifr_jj ! arrays for overflow 
     56      INTEGER , ALLOCATABLE                , DIMENSION(:)  ::   ovf_ji, ovf_jj ! arrays for overflow 
    5557      !!---------------------------------------------------------------------- 
    5658      ! 
     
    6870      pts(:, :, :, jp_sal) = rn_sal_env 
    6971      ! 
    70       SELECT CASE(nn_ovf_loc) 
     72      ! Denmark Strait idealised overflow 
     73      dst_ji = (/ & 
     74                  & 1041, 1041, 1041, 1042, 1039, 1040, 1041, 1042, & 
     75                  & 1039, 1040, 1041, 1042, 1043, 1041, 1042, 1043, & 
     76                  & 1044, 1042, 1043, 1044, 1045, 1043, 1044, 1045, & 
     77                  & 1046, 1043, 1044, 1045, 1046, 1047, 1048, 1043, & 
     78                  & 1044, 1045, 1046, 1047, 1044, 1045              & 
     79                  & /) 
     80 
     81      dst_jj = (/ & 
     82                  & 1012, 1013, 1014, 1014, 1015, 1015, 1015, 1015, & 
     83                  & 1016, 1016, 1016, 1016, 1016, 1017, 1017, 1017, & 
     84                  & 1017, 1018, 1018, 1018, 1018, 1019, 1019, 1019, & 
     85                  & 1019, 1020, 1020, 1020, 1020, 1020, 1020, 1021, & 
     86                  & 1021, 1021, 1021, 1021, 1022, 1022              & 
     87                  & /) 
     88 
     89      ! Iceland-Faroe Ridge idealised overflow 
     90      ifr_ji = (/ & 
     91                  & 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1091, & 
     92                  & 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, & 
     93                  & 1101, 1102, 1103, 1104, 1089, 1090, 1091, 1092, 1093, & 
     94                  & 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, & 
     95                  & 1103, 1104, 1089, 1090, 1091, 1092, 1093, 1094, 1095, & 
     96                  & 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, & 
     97                  & 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, & 
     98                  & 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1089, 1090, & 
     99                  & 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, & 
     100                  & 1100, 1101, 1102, 1103, 1089, 1090, 1091, 1092, 1093, & 
     101                  & 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, & 
     102                  & 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, & 
     103                  & 1098, 1099, 1087, 1088, 1089, 1090, 1091, 1092, 1093, & 
     104                  & 1094, 1095, 1096, 1097, 1088, 1089, 1090, 1091, 1092, & 
     105                  & 1093, 1094, 1095, 1096, 1089, 1090, 1091, 1092, 1093, & 
     106                  & 1094, 1095, 1096, 1090, 1091, 1092, 1093, 1094, 1095, & 
     107                  & 1096, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, & 
     108                  & 1091, 1092, 1093, 1094, 1095, 1096, 1091, 1092, 1093, & 
     109                  & 1094, 1095                                            & 
     110                  & /) 
     111 
     112      ifr_jj = (/ & 
     113                  & 996 , 996 , 996 , 996 , 996 , 996 , 996 , 996 , 997 , & 
     114                  & 997 , 997 , 997 , 997 , 997 , 997 , 997 , 997 , 997 , & 
     115                  & 997 , 997 , 997 , 997 , 998 , 998 , 998 , 998 , 998 , & 
     116                  & 998 , 998 , 998 , 998 , 998 , 998 , 998 , 998 , 998 , & 
     117                  & 998 , 998 , 999 , 999 , 999 , 999 , 999 , 999 , 999 , & 
     118                  & 999 , 999 , 999 , 999 , 999 , 999 , 999 , 999 , 999 , & 
     119                  & 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, & 
     120                  & 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1001, 1001, & 
     121                  & 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, & 
     122                  & 1001, 1001, 1001, 1001, 1002, 1002, 1002, 1002, 1002, & 
     123                  & 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, & 
     124                  & 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, & 
     125                  & 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1004, 1004, & 
     126                  & 1004, 1004, 1004, 1004, 1005, 1005, 1005, 1005, 1005, & 
     127                  & 1005, 1005, 1005, 1005, 1006, 1006, 1006, 1006, 1006, & 
     128                  & 1006, 1006, 1006, 1007, 1007, 1007, 1007, 1007, 1007, & 
     129                  & 1007, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, & 
     130                  & 1009, 1009, 1009, 1009, 1009, 1009, 1010, 1010, 1010, & 
     131                  & 1010, 1010                                            & 
     132                  & /) 
     133 
     134       SELECT CASE(nn_ovf_loc) 
    71135 
    72136         CASE(0) ! Denmark Strait 
    73             num_pnt = 17 
     137            num_pnt = SIZE(dst_ji) 
    74138            ALLOCATE( ovf_ji(num_pnt), STAT=ierr0 ) 
    75139            ALLOCATE( ovf_jj(num_pnt), STAT=ierr1 ) 
     
    77141               CALL ctl_stop( 'dta_tsd : unable to allocate T & S data arrays' );   RETURN 
    78142            ENDIF 
    79             ovf_ji = (/ & 
    80                         &       1045, 1046, & 
    81                         & 1044, 1045, 1046, & 
    82                         & 1043, 1044, 1045, & 
    83                         & 1042, 1043, 1044, & 
    84                         & 1041, 1042, 1043, & 
    85                         & 1040, 1041, 1042  & 
    86                         & /) 
    87             ovf_jj = (/ & 
    88                         &       1020, 1020, & 
    89                         & 1019, 1019, 1019, & 
    90                         & 1018, 1018, 1018, & 
    91                         & 1017, 1017, 1017, & 
    92                         & 1016, 1016, 1016, & 
    93                         & 1015, 1015, 1015  & 
    94                         & /) 
     143            ovf_ji(:) = dst_ji(:)  
     144            ovf_jj(:) = dst_jj(:) 
     145 
     146         CASE(1) ! Iceland-Faroe Ridge 
     147            num_pnt = SIZE(ifr_ji) 
     148            ALLOCATE( ovf_ji(num_pnt), STAT=ierr0 ) 
     149            ALLOCATE( ovf_jj(num_pnt), STAT=ierr1 ) 
     150            IF( ierr0 + ierr1 > 0 ) THEN 
     151               CALL ctl_stop( 'dta_tsd : unable to allocate T & S data arrays');   RETURN 
     152            ENDIF 
     153            ovf_ji(:) = ifr_ji(:) 
     154            ovf_jj(:) = ifr_jj(:) 
     155 
     156         CASE(2) ! Both 
     157            num_pnt = SIZE(dst_ji) + SIZE(ifr_ji) 
     158            ALLOCATE( ovf_ji(num_pnt), STAT=ierr0 ) 
     159            ALLOCATE( ovf_jj(num_pnt), STAT=ierr1 ) 
     160            IF( ierr0 + ierr1 > 0 ) THEN 
     161               CALL ctl_stop( 'dta_tsd : unable to allocate T & S data arrays'); RETURN 
     162            ENDIF 
     163            ovf_ji(1              : SIZE(dst_ji)) = dst_ji(:) 
     164            ovf_ji(SIZE(dst_ji)+1 : num_pnt     ) = ifr_ji(:) 
     165            ovf_jj(1              : SIZE(dst_jj)) = dst_jj(:) 
     166            ovf_jj(SIZE(dst_jj)+1 : num_pnt     ) = ifr_jj(:) 
     167  
    95168      END SELECT 
    96169      ! 
Note: See TracChangeset for help on using the changeset viewer.