Oasis3 4.0.2
|
00001 SUBROUTINE alloc (id_flag) 00002 ! 00003 ! 00004 !**** INIALLOC 00005 ! 00006 ! Purpose: 00007 ! Allocate arrays defined in the modules 00008 ! 00009 ! Interface: 00010 ! none 00011 ! 00012 ! Method: 00013 ! Uses run parameters read in "inipar_alloc" routine to 00014 ! allocate arrays. 00015 ! 00016 ! External: 00017 ! none 00018 ! 00019 ! Files: 00020 ! none 00021 ! 00022 ! References: 00023 ! 00024 ! History: 00025 ! -------- 00026 ! Version Programmer Date Description 00027 ! ------------------------------------------------ 00028 ! 2.5 A.Caubel 2002/03/18 created 00029 ! 00030 !*----------------------------------------------------------------------- 00031 ! 00032 !** + DECLARATIONS 00033 ! 00034 !** ++ Use of modules 00035 ! 00036 USE mod_unit 00037 USE mod_parameter 00038 USE mod_printing 00039 ! 00040 !* ---------------------------- Local declarations ---------------------- 00041 ! 00042 INTEGER (kind=ip_intwp_p) :: id_flag 00043 ! 00044 !*----------------------------------------------------------------------- 00045 ! 00046 IF (nlogprt .GE. 2) THEN 00047 WRITE (UNIT = nulou,FMT = *) ' ' 00048 WRITE (UNIT = nulou,FMT = *) '****** * Entering ROUTINE alloc' 00049 WRITE (UNIT = nulou,FMT = *) '*******************************' 00050 WRITE (UNIT = nulou,FMT = *) ' ' 00051 call flush(nulou) 00052 ENDIF 00053 ! 00054 IF (id_flag .EQ. 1) THEN 00055 !** + Module mod_experiment 00056 ! 00057 ! CALL alloc_experiment 00058 ! 00059 !** + Module mod_string 00060 ! 00061 CALL alloc_string 00062 ! 00063 !** + Following routines will be called only if one field (at least) goes 00064 ! through Oasis 00065 ! 00066 IF (lg_oasis_field) THEN 00067 ! 00068 !** + Module mod_anais 00069 ! 00070 CALL alloc_anais1 00071 ! 00072 !** + Module mod_analysis 00073 ! 00074 CALL alloc_analysis 00075 ! 00076 !** + Module mod_coast 00077 ! 00078 CALL alloc_coast 00079 ! 00080 !** + Module mod_extrapol 00081 ! 00082 CALL alloc_extrapol1 00083 ! 00084 !** + Module mod_memory 00085 ! 00086 CALL alloc_memory1 00087 ! 00088 !** + Module mod_nproc 00089 ! 00090 CALL alloc_nproc 00091 ! 00092 !** + Module mod_parallel 00093 ! 00094 CALL alloc_parallel 00095 ! 00096 !** + Module mod_pipe 00097 ! 00098 #ifdef use_comm_PIPE 00099 CALL alloc_pipe 00100 #endif 00101 ! 00102 !** + Module mod_rainbow 00103 ! 00104 CALL alloc_rainbow1 00105 ! 00106 !** + Module mod_sipc 00107 ! 00108 #ifdef use_comm_SIPC 00109 CALL alloc_sipc 00110 #endif 00111 ! 00112 !** + Module mod_gsip 00113 ! 00114 #ifdef use_comm_GSIP 00115 CALL alloc_gsip 00116 #endif 00117 ! 00118 !!** + Module mod_timestep 00119 ! 00120 CALL alloc_timestep 00121 ! 00122 !** + Module mod_unitncdf 00123 ! 00124 CALL alloc_unitncdf 00125 ! 00126 ENDIF 00127 ELSE 00128 IF (lg_oasis_field) THEN 00129 ! 00130 !** + Module mod_anais 00131 ! 00132 CALL alloc_anais2 00133 ! 00134 !** + Module mod_extrapol 00135 ! 00136 CALL alloc_extrapol2 00137 ! 00138 !** + Module mod_memory 00139 ! 00140 CALL alloc_memory2 00141 ! 00142 !** + Module mod_rainbow 00143 ! 00144 CALL alloc_rainbow2 00145 ! 00146 ENDIF 00147 ENDIF 00148 IF (nlogprt .GE. 2) THEN 00149 WRITE (UNIT = nulou,FMT = *) ' ' 00150 WRITE (UNIT = nulou,FMT = *) '********* Leaving ROUTINE alloc' 00151 WRITE (UNIT = nulou,FMT = *) '*******************************' 00152 WRITE (UNIT = nulou,FMT = *) ' ' 00153 call flush(nulou) 00154 ENDIF 00155 !*------------------------------------------------------------------------ 00156 ! 00157 END SUBROUTINE alloc 00158 ! 00159 !*======================================================================== 00160