arrays or data structures in shared memory!

If we have a structure like the following!!

typedef struct align(16)
{
float theta [100] [16];
float taw2pi [100] [16];
float freq2pi [100] [16];
float T_Vec [100] [2] [16];
float F_Vec [100] [2] [16];
}lablabla;

and a shared object of this structure is defined,
share lablabla obj;

assuming we have the 16 threads of a half warp each is accessing this shared variable for example as follows:
obj.theta[i][threadIdx.x] = xyz;

is this access is bank conflict free or not?

What I’m asking about is how multidimentional arrays are allocated in shared memory? will it have 100 rows for theta, each with 16 columns in the 16 banks? or it should be reversed as follows?

typedef struct align(16)
{
float theta [16] [100];
float taw2pi [16] [100];
float freq2pi [16] [100];
float T_Vec [16] [2] [100];
float F_Vec [16] [2] [100];
}lablabla;

Best Regards,
Ahmed